目錄
目錄X

[SF2.0版新功能揭秘]Widget的應(yīng)用介紹

在上一篇的SiteFactory? CMS 2.0 預(yù)覽中曾提到 Widget ,今天我將接著為大家?guī)泶朔矫娴慕榻B。Widget 在“我的工作臺(tái)”的應(yīng)用,將SiteFactory? CMS 1.0版本中“固死”的模塊“激活”起來。由原先動(dòng)易自身開發(fā)轉(zhuǎn)變?yōu)榇蠹覅⑴c的平臺(tái)式開發(fā),這也是SiteFactory? 進(jìn)一步融入開源精神的體現(xiàn)方式了。

下圖為系統(tǒng)默認(rèn)“我的工作臺(tái)”中顯示的widget,圖中紅框標(biāo)注1、2、3、4、5、6、7的位置,顯示的就是一個(gè)個(gè)獨(dú)立的widget模塊,可以通過拖拽、關(guān)閉和編輯排列他們的位置或者顯示的內(nèi)容。



Widget(中文名:微巨)簡(jiǎn)單的說是一個(gè)功能應(yīng)用的開放式平臺(tái),它的應(yīng)用包括:桌面Widget (Yahoo! Widget、魚魚桌面秀等)、個(gè)性化首頁Widget(igoogle)、博客Widgets(抓蝦RSS、博客側(cè)邊欄等)。Widget 的優(yōu)點(diǎn)是“軟件模塊化”和“易擴(kuò)展性”便于個(gè)性化界面;在SiteFactory? CMS 2.0 中可以為“我的工作臺(tái)”添加各種基于系統(tǒng)或者系統(tǒng)外的功能應(yīng)用,如:待處理訂單、歡迎界面、主題更換、訂閱RSS等。目前系統(tǒng)已經(jīng)預(yù)設(shè)了11種widget模塊,且后臺(tái)的所有widget模塊都可以在 Controls\Widgets 目錄下找到,如圖:



制作Widget需要擁有一定的編程基礎(chǔ)(不會(huì)?沒關(guān)系,動(dòng)易官方會(huì)定期推出一些實(shí)用的Widget模塊;同樣,開放式的開發(fā)平臺(tái)也將會(huì)涌現(xiàn)出一批非常好的Widget模塊,因此,并不需要著急 :)),排除了技術(shù)層面的東西,制作Widget就非常簡(jiǎn)單了,只要建立一個(gè)目錄,用戶控件命名為:widget.ascx (不可自定義),后臺(tái)就能自動(dòng)讀取控件的相關(guān)信息。

下面給大家介紹一下Widget的制作演示:以制作“用于讀取某網(wǎng)站RSS 信息的標(biāo)題和列表”widget模塊為例。

首先,建立一個(gè)用戶控件命名為“widget.ascx”(這個(gè)命名是固定的,不可以自定義):



前臺(tái)代碼如下:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="MYRSS.ascx.cs" Inherits="MYRSS" %>
<div runat="server" id="Content">
</div>


后臺(tái)代碼如下:

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.IO;
using System.Data;
using System.Xml;

public partial class MYRSS : PowerEasy.SiteFactory.Web.UI.BaseWidget
{
    protected void Page_Load(object sender, EventArgs e)
    {
        WebClient client = new WebClient();
        using (Stream rss = client.OpenRead(";))
        {
            StreamReader reRss = new StreamReader(rss, System.Text.Encoding.Default);
            string RssString = reRss.ReadToEnd();
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(RssString);
            XmlNodeList nodelist = doc.SelectNodes("http://channel/item");
            string Content = string.Empty;
            int i = 0;
            foreach (XmlNode node in nodelist)
            {
                if (i > 10)
                    break;
                Content+="<a href=" + node.ChildNodes[1].InnerText + " target=_brank>" + node.ChildNodes[0].InnerText+"</a><br />";
                i++;
            }
            Content.InnerHtml = MYContent;
        }
    }
}


得到如下兩個(gè)用戶控件文件:



然后,新建立一個(gè)目錄名為:MYRSS(名稱可自定義),將上述兩個(gè)文件放進(jìn)此目錄中



隨后,把“MYRSS文件夾”目錄放在Controls\Widgets 目錄下,如下圖:



最后,重新進(jìn)入網(wǎng)站后臺(tái),進(jìn)入到“我的工作臺(tái)”就會(huì)發(fā)現(xiàn)系統(tǒng)已經(jīng)自動(dòng)檢索到了剛才新添加的Widget模塊:



同樣,會(huì)發(fā)現(xiàn)后臺(tái)多了一個(gè)widget模板,再添加到左內(nèi)容中,顯示效果如下:



到此,一個(gè)widget模塊就添加完成了,簡(jiǎn)單吧?但是值得注意的是:控件類一定要繼承PowerEasy.SiteFactory.Web.UI.BaseWidget ,編寫測(cè)試時(shí)可用 System.Web.UI.UserControl 代替。

總之,Widget可以讓用戶更多自定義,更多個(gè)性化設(shè)置,讓用戶可以在不需要了解源代碼的情況下編寫個(gè)性插件,讓我們拭目以待吧。
【打印正文】 發(fā)布時(shí)間:2008-10-09 18:03:26 瀏覽次數(shù): 作者:bbsh 來源:本站原創(chuàng)
×

用戶登錄