欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

dede rss

shiping1 的头像

[安装使用]简单实现Dedecms RSS全站输出 [复制链接]

上一主题 下一主题
 

  
  • 发帖

  • 31

  • 贡献值

  • 72

  • 威望值

  • 13

  • 技术分

  • 0

  • 织梦币

  • 0

只看楼主 倒序阅读 使用道具 0 发表于: 2010-07-23
 
— 本帖被 越界 从 DedeCMS 安装使用 移动到本区(2010-08-11) —
 
在制作城市地摊网的 时候,我发现织梦Dedecms程序只具有各个分栏目的RSS输出功能,但这个功能不利于搜索引擎蜘蛛程序的爬行,甚至有时候会检测不到,而且不能全站 RSS输出,也非常也不利于抓虾、鲜果、飞鸽等RSS阅读会员对本网站的订阅。经过搜索,也没能找到像Wordpress、ZBLOG中那样具有整站 RSS输出功能的插件。我曾一度为无法实现这个功能而遗憾不已。后来结合网络上一些介绍,竟然成功的实现了这个RSS全站输出的功能,很是高兴,下面把方 法大致介绍一下,不是太复杂,只需要上传两个文件即可。
  
第一步:你先用记事本新建一个rss.php文件,把下面的代码拷贝到其中:
-----------------------------------------------
<?php
require_once (dirname(__FILE__) . "/include/common.inc.php");
require_once DEDEINC."/arc.partview.class.php";
$pv = new PartView();
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/default/rss.htm");
header("Content-type:application/xml");
$pv->Display();
?>
---------------------------------------------------- 
之后保存文件,并将该文件上传到站点根目录下,即可。
  
第二步:制作一个rss.htm模板输出文件,把下面的代码拷贝到其中:
-----------------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
<channel>
<title>{dede:global.cfg_webname/}</title>
<link>{dede:global.cfg_basehost/}</link>
<description>{dede:global.cfg_description/}</description>
<language>zh-cn</language>
<generator>{dede:global.cfg_webname/}</generator>
<webmaster>{dede:global.cfg_adminemail/}</webmaster>
{dede:arclist row='60' col='1' titlelen='100' orderby='pubdate'}
<item>
<link>http://www.guohs.com[field:arcurl/]</link>
<title><![CDATA[[field:title function='html2text(@me)'/]]]></title>
<author>[field:writer/]</author>
<category>[field:typename/]</category>
<pubDate>[field:pubdate function='strftime("%a, %d %b %Y %H:%M:%S +0800",@me)'/]</pubDate>
<guid>http://www.guohs.com[field:arcurl/]</guid>
<description><![CDATA[[field:description function='html2text(@me)'/] ... <br /><b>文章分类</b>:[field:typename/]<br /><a href="http://www.guohs.com[field:arcurl/]" target="_blank">阅读全文</a> | <a href="http://www.guohs.com/plus/recommend.php?aid=[field:id/]" target="_blank">邮件推荐</a> | <a href="http://www.guohs.com[field:arcurl/]" target="_blank">评论回复</a>]]></description>
</item>
{/dede:arclist}
</channel>
</rss>
-----------------------------------------------
请将上面代码中的http://www.guohs.com替换为你的网址,保存文件并上传到和你的主页模板index.htm相同的目录下。
(PS: 这里注意,如果你的Dedecms程序系统设置是使用绝对地址的话,就要将上面代码中的http://www.guohs.com去掉。才能正确输出URL)

第三步:登陆织梦后台管理,清理缓存,然后一键更新网站,更新所有,就可以实现全站RSS输出了。RSS访问的网址就是:http://你的域名/rss.php。

第四步:修改模板目录中的head.htm中RSS订阅的地址指向为http://你的域名/rss.php即可。

第五步:如想让你的RSS更完美,并方便抓虾、鲜果、飞鸽等RSS阅读会员订阅的话,可以到feedsky.com上去申请一个帐号,然后添加一个管理,就可申请到一个永久的FEED地址,并把它设置指向你的rss.php链接:http://你的域名/rss.php
然后修改head.htm 中RSS订阅指向为:http://feed.feedsky.com/xxx
大家可以看看这个演示效果:城市地摊网-》RSS订阅



来自 http://bbs.dedecms.com/261237.html



dedecms RSS全站静态输出和RSS订阅的步骤详细解答

分类: 二次开发 CMS php 95人阅读 评论(0) 收藏 举报
首先,你新建一个rss.php文件,把下面的代码拷贝到其中: 

复制代码代码如下:

<?php 
require_once (dirname(__FILE__) . "/include/common.inc.php"); 
require_once DEDEINC."/arc.partview.class.php"; 
$pv = new PartView(); 
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/default/rss.htm"); 
header("Content-type:application/xml"); 
$pv->Display(); 
?> 

保存该文件到站点根目录下。 

  然后,再制作一个rss.htm模板输出文件,把下面的代码拷贝到其中: 

复制代码代码如下:

<?xml version="1.0" encoding="gb2312" ?> 
<rss version="2.0"> 
<channel> 
<title>{dede:global.cfg_webname/}</title> 
<link>{dede:global.cfg_basehost/}</link> 
<description>{dede:global.cfg_description/}</description> 
copyright dedecms 
<language>zh-cn</language> 
<generator>{dede:global.cfg_webname/}</generator> 
<webmaster>{dede:global.cfg_adminemail/}</webmaster> 
{dede:arclist row='60' col='1' titlelen='100' orderby='pubdate'} 
<item> 
<link>http://www.jb51.net[field:arcurl/]</link> 
<title><![CDATA[[field:title function='html2text(@me)'/]]]></title> 
<author>[field:writer/]</author> 
<category>[field:typename/]</category> 
<pubDate>[field:pubdate function='strftime("%a, %d %b %Y %H:%M:%S +0800",@me)'/]</pubDate> 
<guid>http://www.jb51.net[field:arcurl/]</guid> 
<description><![CDATA[[field:description function='html2text(@me)'/] ... 
<b>文章分类</b>:[field:typename/]
<a href="http://www.jb51.net[field:arcurl/]" target="_blank">阅读全文</a> | <a href="http://www.jb51.net/plus/recommend.php?aid=[field:id/]" target="_blank">邮件推荐</a> | <a href="http://www.jb51.net[field:arcurl/]" target="_blank">评论回复</a>]]></description> 
织梦好,好织梦 
</item> 
{/dede:arclist} 
</channel> 
</rss> 

如果你自己的站点使用时,请把网址替换为你的网址即可。保存该文件与index.htm主页模板相同的目录下,登陆管理后台,清理一下缓存,更新下html就有了
--------------------------------------------- 
以上是动态输入,要想变为静态输出的话还要按下面说的做 
-------------------------------------- 
第一步:打开 频道模型 下的 单页文档管理 

点击 增加一个页面 

按照上图去建个这样的单页面文件就行了,但是名字不能用“全站RSS静输出” 最好使用英文名字,自己可以随便起的,点一下保存其它的不要管它 

最后更新一下缓存,最好在全站更新一下就行了 
rss的订阅 我是把dede中的原文件rssmap.html 重新做了一下,然后覆盖原始的文件 原始的文件在data文件夹中 
下面提供一些热门的rss订阅代码供大家参考使用 
<div class="indexContent"> 
<div><a href="http://www.google.com/reader/view/feed/http://www.shsui.cn/rss.xml" target="_blank" rel="nofollow"><img src="images/rss/o_sub_google.gif" style="border:0px;" alt="通过Google订阅本站" /></a></div> 
<div><a href="http://www.zhuaxia.com/add_channel.php?url=www.shsui.cn/rss.xml" target="_blank" rel="nofollow"><img src="images/o_sub_zhuaxia.gif" style="border:0px;" alt="通过抓虾订阅本站" /></a></div> 
织梦内容管理系统 

<div><a href="http://www.xianguo.com/subscribe.php?url=www.shsui.cn/rss.xml" target="_blank" rel="nofollow"><img src="images/rss/o_sub_xianguo.gif" style="border:0px;" alt="通过鲜果订阅本站" /></a></div> 
<div><a href="http://www.shsui.cn/rss.xml" target="_blank" rel="nofollow"><img src="images/rss/o_sub_hexun.gif" style="border:0px;" alt="通过和讯博揽订阅本站" /></a></div> 
<div><a href="http://add.my.yahoo.com/rss?url=www.shsui.cn/rss.xml" target="_blank" rel="nofollow"><img src="images/rss/o_sub_myyahoo.gif" style="border:0px;" alt="通过雅虎订阅本站" /></a></div> 
本文来自织梦 
<div><a href="http://reader.yodao.com/#url=http://www.shsui.cn/rss.xml" target="_blank" rel="nofollow"><img src="images/rss/o_yodaoresbutton.gif" style="border:0px;" alt="通过有道订阅本站" /></a></div> 
<div><a href="http://www.bloglines.com/sub/http://www.shsui.cn/rss.xml" target="_blank" rel="nofollow"><img src="images/rss/o_sub_bloglines.gif" style="border:0px;" alt="通过BlogLines订阅本站" /></a></div> </div>

来自 http://blog.csdn.net/ww122081351/article/details/12193531




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.     

  2. <?php

  3.     

  4. require_once (dirname(__FILE__) . "/include/common.inc.php");

  5.     

  6. require_once (DEDEINC."/arc.partview.class.php");

  7.     

  8. $pv = new PartView();

  9.     

  10. $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/default/rss.htm");

  11.     

  12. header("Content-type:application/xml");

  13.     

  14. $pv->Display();

  15.     

  16. ?>  
        

 

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

XML/HTML代码
  1.     

  2. <?xml version="1.0" encoding="{dede:global.cfg_soft_lang /}" ?>  

  3.     

  4. <rss version="2.0">  

  5.     

  6. <channel>  

  7.     

  8. <title>RSS订阅-{dede:global.cfg_webname/}</title>  

  9.     

  10. <link>{dede:global.cfg_basehost/}</link>  

  11.     

  12. <description>{dede:global.cfg_description/}</description>  

  13.     

  14. <language>zh-cn</language>  

  15.     

  16. <generator>{dede:global.cfg_webname/}</generator>  

  17.     

  18. <webmaster>{dede:global.cfg_adminemail/}</webmaster>  

  19.     

  20. {dede:arclist row='100' col='1' titlelen='200' orderby='pubdate'}  

  21.     

  22. <item>  

  23.     

  24. <link>/[field:arcurl/]</link>  

  25.     

  26. <title><![CDATA[[field:title function='html2text(@me)'/]]]></title>  

  27.     

  28. <author>[field:writer/]</author>  

  29.     

  30. <category>[field:typename/]</category>  

  31.     

  32. <pubDate>[field:pubdate function='strftime("%a, %d %b %Y %H:%M:%S +0800",@me)'/]</pubDate>  

  33.     

  34. <guid>/[field:arcurl/]</guid>  

  35.     

  36. <description><![CDATA[[field:description function='html2text(@me)'/]]]></description>  

  37.     

  38. </item>  

  39.     

  40. {/dede:arclist}

  41.     

  42. </channel>

  43.     

  44. </rss>  

 

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

 

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

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

XML/HTML代码
  1.     

  2. <?xml version="1.0" encoding="{dede:global.cfg_soft_lang /}" ?>  

  3.     

  4. <rss version="2.0">  

  5.     

  6. <channel>  

  7.     

  8. <title>RSS订阅-{dede:global.cfg_webname/}</title>  

  9.     

  10. <link>{dede:global.cfg_basehost/}</link>  

  11.     

  12. <description>{dede:global.cfg_description/}</description>  

  13.     

  14. <language>zh-cn</language>  

  15.     

  16. <generator>{dede:global.cfg_webname/}</generator>  

  17.     

  18. <webmaster>{dede:global.cfg_adminemail/}</webmaster>  

  19.     

  20. {dede:arclist row='100' col='1' titlelen='200' orderby='pubdate'}  

  21.     

  22. <item>  

  23.     

  24. <link>http://www.wlxs.com.cn[field:arcurl/]</link>  

  25.     

  26. <title><![CDATA[[field:title function='html2text(@me)'/]]]></title>  

  27.     

  28. <author>[field:writer/]</author>  

  29.     

  30. <category>[field:typename/]</category>  

  31.     

  32. <pubDate>[field:pubdate function='strftime("%a, %d %b %Y %H:%M:%S +0800",@me)'/]</pubDate>  

  33.     

  34. <guid>http://www.***.com[field:arcurl/]</guid>  

  35.     

  36. <description><![CDATA[[field:description function='html2text(@me)'/]]]></description>  

  37.     

  38. </item>  

  39.     

  40. {/dede:arclist}

  41.     

  42. /********调用单页的代码********/

  43.     

  44. {dede:sql sql='Select * from dede_sgpage order by uptime asc limit 48'}  

  45.     

  46. <item>  

  47.     

  48. <link>http://www.***.com/[field:filename/]</link>  

  49.     

  50. <title><![CDATA[[field:title function='html2text(@me)'/]]]></title>  

  51.     

  52. <author></author>  

  53.     

  54. <category></category>  

  55.     

  56. <pubDate>[field:uptime function='strftime("%a, %d %b %Y %H:%M:%S +0800",@me)'/]</pubDate>  

  57.     

  58. <guid>http://www.***.com/[field:filename/]</guid>  

  59.     

  60. <description><![CDATA[[field:body function='html2text(@me)'/]]]></description>  

  61.     

  62. </item>  

  63.     

  64. {/dede:sql}

  65.     

  66. /********调用单页的代码********/

  67.     

  68. </channel>  

  69.     

  70. </rss>  

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

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

说明
  1.     

  2. aid 文档号  

  3.     

  4. title 文档标题

  5.     

  6. ismake 静态页面生成
        

  7.     

  8. filename 单页文档的文件名

  9.     

  10. keywords 单页文档的关键字  

  11.     

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

  13.     

  14. likeid 文档分类  

  15.     

  16. description 单页文档的描述  

  17.     

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

  19.     

  20. body 文档文档内容  

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

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

XML/HTML代码
  1.     

  2. {dede:sql sql='Select * from dede_sgpage where aid=1'}

  3.     

  4. <div>

  5.     

  6. <ul>

  7.     

  8. <h5><a href="/[field:filename /]" title="[field:keywords /]">[field:title /]</a></h5>

  9.     

  10. <p>[field:content/]</p>
        

  11.     

  12. </ul>

  13.     

  14. </div>

  15.     

  16. {/dede:sql}  

 



最后编辑: 郝聪 编辑于2011/08/13 00:38
wlz0072 Email
2012/08/16 16:14
学习学习,真心不错!
钢结构 Email
2012/03/27 14:08
第一次来,DEDECMS这几个插件多不错,我喜欢,还在努力学习中,先支持下
福建seo
2012/02/13 22:41
fjseo org博主真了不起,做网站的贵在坚持,细节真的决定成败
heracles-sk Email
2012/02/06 11:59
这个好复杂,
北京婚纱摄影 Email
2011/12/12 10:15
呵呵 不错啊 来看看啊
识字 Email
2011/11/21 08:39
博主真了不起,做网站的贵在坚持,细节真的决定成败
叶子 Email
2011/11/08 00:45
我想问问这种方法如何实现全文输出rss
泰州SEO Email
2011/10/25 20:53
楼主真的是太厉害了,说得也很好
数码相机博客 Email
2011/08/20 22:38
数码相机博客支持博主,欢迎互访
北京SEO Email
2011/08/18 22:51
写的很专业,学习一下。

来自 http://www.bloghuman.com/dedecms-rss-export-single-page/
普通分类: