广

织梦CMS教程

  • 帝国cms教程
  • 织梦CMS教程
  • PHP CMS教程
  • ECSHOP教程
  • WordPress教程
  • Discuz教程
  • CMS学习

    DEDECMS RSS全站静态输出的实现方法

    2018-04-02 20:47:35 次阅读 稿源:互联网
    广告

    DedeCMS自带Rss功能,在管理后台可以生成出一个Rss地图页面,默认是/data/rssmap.html;这个Html地图文件会告知 用户每个栏目的rss订阅地址,这个功能很适合栏目及文章较多的网站,但不太适合文章页不多的小型站点;我偏向于使用统一的Rss地址来输出全站所有文 章,这样只需推广一个Rss订阅地址即可。

    DedeCMS Rss功能所需的程序文件是/plus/rss.php,模板文件是/templets/default/rss.html。

    实现DedeCMS Rss全站静态输出的方法:

    一、在CMS根目录下中新增rss.php文件,文件代码如下:

    PHP代码:

    1. <?php 
    2. require_once (diame(__FILE__) . "/include/common.inc.php");     
    3. require_once (DEDEINC."/arc.partview.class.php");   
    4. $pv = new PartView();    
    5. $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/default/rss.htm");   
    6. header("Content-type:application/xml");   
    7. $pv->Display();   
    8. ?> 

    二、在默认模板目录(/templetes/default)中新增rss.html模板文件,文件代码如下:

    XML/HTML代码:

    1. <?xml version="1.0" encoding="{dede:global.cfg_soft_lang /}" ?>       
    2. <rss version="2.0">       
    3. <channel>       
    4. <title>RSS订阅-{dede:global.cfg_webname/}</title>       
    5. <link>{dede:global.cfg_basehost/}</link>      
    6. <description>{dede:global.cfg_description/}</description>       
    7. <language>zh-cn</language>       
    8. <generator>{dede:global.cfg_webname/}</generator>      
    9. <webmaster>{dede:global.cfg_adminemail/}</webmaster>      
    10. {dede:arclist row='100' col='1' titlelen='200' orderby='pubdate'}       
    11. <item>       
    12. <link>/[field:arcurl/]</link>       
    13. <title><![CDATA[[field:title function='html2text(@me)'/]]]></title>      
    14. <author>[field:writer/]</author>     
    15. <category>[field:typename/]</category>     
    16. <pubDate>[field:pubdate function='strftime("%a, %d %b %Y %H:%M:%S +0800",@me)'/]</pubDate>     
    17. <guid>/[field:arcurl/]</guid>      
    18. <description><![CDATA[[field:description function='html2text(@me)'/]]]></description>     
    19. </item>      
    20. {/dede:arclist}   
    21. </channel>    
    22. </rss> 

    三、在后台增加一个单页面,“模板文件名”项中输入第2步中涉及的模板文件rss.htm,早“文件名”中输入未来Rss订阅地址,这里我就直接生成在CMS根目录下了。

     

     

     

     

    四、更新一下缓存,并更新刚刚新增的单页面,即可看到全站性的RSS输出,以后很方便的就可以用各种RSS软件去Submit rss地址了。

    用DedeCMS建设企业网站,产品页面往往都会直接生成在根目录,而不会生成在栏目目录内,这样操作不仅可以使URL长度变短,而且可以实现所有 页面都位于根目录下的扁平化结构,因此,用单页发布产品信息会很普遍;上面谈及的全站性RSS输出的方法是无法提取单页的,所以还需要对rss.html 的模板代码进行修改:

    XML/HTML代码

    1. <?xml version="1.0" encoding="{dede:global.cfg_soft_lang /}" ?>       
    2. <rss version="2.0">       
    3. <channel>       
    4. <title>RSS订阅-{dede:global.cfg_webname/}</title>       
    5. <link>{dede:global.cfg_basehost/}</link>       
    6. <description>{dede:global.cfg_description/}</description>       
    7. <language>zh-cn</language>       
    8. <generator>{dede:global.cfg_webname/}</generator>       
    9. <webmaster>{dede:global.cfg_adminemail/}</webmaster>       
    10. {dede:arclist row='100' col='1' titlelen='200' orderby='pubdate'}       
    11. <item>      
    12. <link>[field:arcurl/]</link>      
    13. <title><![CDATA[[field:title function='html2text(@me)'/]]]></title>       
    14. <author>[field:writer/]</author>      
    15. <category>[field:typename/]</category>      
    16. <pubDate>[field:pubdate function='strftime("%a, %d %b %Y %H:%M:%S +0800",@me)'/]</pubDate>      
    17. <guid>***.com[field:arcurl/]</guid>       
    18. <description><![CDATA[[field:description function='html2text(@me)'/]]]></description>       
    19. </item>       
    20. {/dede:arclist}     
    21. /********调用单页的代码********/     
    22. {dede:sql sql='Select * from dede_sgpage order by uptime asc limit 48'}       
    23. <item>       
    24. <link>***.com/[field:filename/]</link>       
    25. <title><![CDATA[[field:title function='html2text(@me)'/]]]></title>       
    26. <author></author>       
    27. <category></category>       
    28. <pubDate>[field:uptime function='strftime("%a, %d %b %Y %H:%M:%S +0800",@me)'/]</pubDate>       
    29. <guid>***.com/[field:filename/]</guid>       
    30. <description><![CDATA[[field:body function='html2text(@me)'/]]]></description>       
    31. </item>       
    32. {/dede:sql}     
    33. /********调用单页的代码********/     
    34. </channel>       
    35. </rss> 

    调用方式:调用后台建立的全部48个单页,并按照发布时间增序排列。

    扩展说明:DedeCMS单页文档所在的数据表dede_sgpage(不修改表前缀)包括以下字段:

    说明

    1.aid 文档号

    2.title 文档标题

    3.ismake 静态页面生成

    4.filename 单页文档的文件名

    5.keywords 单页文档的关键字

    6.template 单页文档所用的模板

    7.likeid 文档分类

    8.description 单页文档的描述

    9.uptime 文档文档生成或修改的时间

    10.body 文档文档内容

    利用上述标签,就可以修改模板里的标签代码,以调用不同的数据。

    这个方法是调用单页面的通用方法,因为sql方式调用是万能的,比如:你可以在首页调用所有的单页面,或者只调用一个或某几个单页面,只需简单修改下代码即可,比如:

    XML/HTML代码

    1. {dede:sql sql='Select * from dede_sgpage where aid=1'
    2. <div> 
    3. <ul> 
    4. <h5><a href="/[field:filename /]" title="[field:keywords /]">[field:title /]</a></h5> 
    5. <p>[field:content/]</p> 
    6. </ul> 
    7. </div> 
    8. {/dede:sql}  

     

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告