DeDeCMS RSS全站靜態(tài)輸出的實現(xiàn)方法
DedeCMS有自己的Rss功能,可以在管理后臺生成一個Rss地圖頁面。默認(rèn)為/data/RSS map . html;這個Html映射文件將通知用戶每一列的rss訂閱地址。這個功能非常適合欄目多、文章多的網(wǎng)站,但不適合文章頁面少的小網(wǎng)站;我更喜歡用一個統(tǒng)一的Rss地址輸出全站所有的文章和章節(jié),所以我只需要推廣一個Rss訂閱地址。
DedeCMS Rss函數(shù)需要的程序文件是/plus/rss.php,模板文件是/templates/default/rss.html。
實現(xiàn)DedeCMS Rss全站靜態(tài)輸出的方法:
一、在CMS根目錄下中新增rss.php文件,文件代碼如下:
PHP代碼:
?php需要_once (dirname(__FILE__)。/include/common . Inc . PHP ');require_once (DEDEINC。/arc . part view . class . PHP ');$ PV=new PartView();$pv-SetTemplet($cfg_basedir。$ cfg _ templets _ dir。/default/RSS . htm ');標(biāo)題(' Content-type : application/XML ');$ PV-Display();二、在默認(rèn)模板目錄(/templetes/default)中新增rss.html模板文件,文件代碼如下:
XML/HTML代碼:
?xml版本='1.0 '編碼=' { dede : global . CFG _ soft _ lang/} '?Rss版本=' 2.0 '頻道標(biāo)題rss訂閱-{ dede : global . CFG _ web name/}/title link { dede : global . CFG _ base host/}/link description { dede : global . CFG _ description/}/description language zh-cn/language generator { dede : global . CFG _ web name/}/generator網(wǎng)管{ dede : global . CFG _ admin email/}/網(wǎng)管{dede:arclist row='[CData[[field : title function=' html 2 text(@ me)'/]]/title author[field : writer/]/author category[field : typename/]/category PubDate[field : PubDate function=' str time '(% a,%d %b %Y %H:%M:%S 0800 ',@ me)'/]/PubDate guid/[field : arc URL/][CData[[field : description function=' html 2 text(@ me)'/]]/description/item {/dede : arclist }/channel/RSS三、在后臺增加一個單頁面,在“模板文件名”項中輸入步驟2涉及的模板文件rss.htm,在“文件名”項中輸入未來的rss訂閱地址,我將在此直接在CMS根目錄下生成。
四、更新一下緩存,和更新新增加的單頁,可以看到全站的rss輸出,方便以后使用各種RSS軟件提交RSS地址。
使用DedeCMS構(gòu)建企業(yè)網(wǎng)站時,產(chǎn)品頁面往往直接生成在根目錄下,而不是列目錄下。這個操作不僅可以縮短URL長度,還可以實現(xiàn)所有頁面都位于根目錄的扁平化結(jié)構(gòu)。所以用單個頁面發(fā)布產(chǎn)品信息是很常見的;上面提到的全站RSS輸出方式無法提取單個頁面,需要修改rss.html的模板代碼:
XML/HTML代碼
?xml版本='1.0 '編碼=' { dede : global。CFG _ soft _ lang/} '?rss版本='2.0 '頻道標(biāo)題RSS訂閱-{ dede : global。CFG _ web name/}/title鏈接{ dede : global。CFG _ base host/}/link描述{ dede : global。CFG _ description/}/description language zh-cn/language generator { dede : global。CFG _ web name/}/生成器網(wǎng)管{ dede : global。CFG _ admin電子郵件/}/網(wǎng)管{ dede : arclist row=' 100 ' col=' 1 ' title len=' 200[CData[[field : title function=' html 2 text(@ me)'/]/title author[field : writer/]/author category[field : typename/]/category PubDate[field : PubDate function=' str time '(% a,% d % b % Y % H: % M: % S 0800*** .com[field:arcurl/]/guid說明![Cdata[[field : description function=' html 2 text(@ me)'/]/description/item {/dede : arclist }/* * * * * * *調(diào)用單頁的代碼* * * * * * * */{ dede : SQL='從dede _ SG頁面順序中選擇*按正常運(yùn)行時間ASC限制48 ' }項目鏈接http://www。*** .com/[field : filename/]/link title![CData[[field : time function=' html 2 text(@ me '/]/title author/author category/category PubDate[field : uptime function=' str time(% a,%d %b %Y %H:%M:%S 0800 ',@ me ')/]/PubDate guid 3358 www .*** .com/[field:filename/]/guid描述![Cdata[[field : body function=' html 2 text(@ me ')/]/description/item {/dede : SQL }/* * * * * * * *調(diào)用單頁的代碼* * * * * * * *//頻道/RSS調(diào)用方式:調(diào)用后臺建立的全部48個單頁,并按照發(fā)布時間增序排列。
擴(kuò)展說明:單頁文檔所在的數(shù)據(jù)表dede_sgpage(不修改表前綴(包括以下字段:
說明
1 .援助文檔號
2 .標(biāo)題文檔標(biāo)題
3.ismake靜態(tài)頁面生成
4 .文件名單頁文檔的文件名
5 .關(guān)鍵詞單頁文檔的關(guān)鍵字
6 .模板單頁文檔所用的模板
likeid文檔分類
8 .描述單頁文檔的描述
9 .正常運(yùn)行時間文檔文檔生成或修改的時間
10 .身體文檔文檔內(nèi)容
利用上述標(biāo)簽,就可以修改模板里的標(biāo)簽代碼,以調(diào)用不同的數(shù)據(jù)。
這個方法是調(diào)用單頁面的通用方法,因為結(jié)構(gòu)化查詢語言方式調(diào)用是萬能的,比如:你可以在首頁調(diào)用所有的單頁面,或者只調(diào)用一個或某幾個單頁面,只需簡單修改下代碼即可,比如:
XML/HTML代碼:
{ dede : SQL=' Select * from dede _ SG頁面,其中aid=1 ' } div ul H5 a href='/[field : filename/]' title='[field : keywords/]'[field : title/]/a/H5 p[field : content/]/p/ul/div {/dede : SQL }