BlogEngine hổ trợ built-in widget framework, nên chúng ta có thể xây dựng 1 widget rất dể dàng, cách làm như sau:
Ở đây mình sẻ tạo 1 Widget Google Translate
Tạo 1 thư mục Google Translate trong thư mục widgets, tạo 1 user control đặt tên widget.ascx, user control này sẻ kế thừa từ WidgetBase, sau đó thực thi lại 1 số hàm của widget base, đoạn code look like this:
using System;
public partial class widgets_GoogleTranslare_widget : WidgetBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
public override string Name
{
get { return "Google Translate"; }
}
public override bool IsEditable
{
get { return false; }
}
public override void LoadWidget()
{
}
}
Chú ý: chúng ta override thuộc tính Name và trả về Google Translate là tên của thư mục chứ widget.
Copy script google translate tại: http://translate.google.com/translate_tools
Code của user control như sau:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="widget.ascx.cs" Inherits="widgets_GoogleTranslare_widget" %>
<div id="google_translate_element">
</div>
<script>
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'en'
}, 'google_translate_element');
}
</script>
<script src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
Vậy là xong 1 widget, chúng ta có thể render lại nội dụng của widget bằng cách override lại phương thức OnLoad của WidgetBase.
Rỏ rang hơn chúng ta có thể xem code của các Widget khác trong cùng Folder.
Regards,
Google_Translate.rar (737.00 bytes)