由于目前discuz的rss默认是输出一段description。而这样对于某些要求全文输出的工具(比如,QQ邮件栏目订阅或者扎克订阅)就无法使用了。
本人也在网上找了一些教程,但是还是无法全图片输出,只输出一张图片,而且还有字体格式代码。
网上教程如下:
找到文件:source/module/forum/forum_rss.php
找到位置:
if($attachfile) {
if($attachremote) {
$filename = $_G['setting']['ftp']['attachurl'].'forum/'.$attachfile;
} else {
$filename = (!strstr($_G['setting']['attachurl'], '://') ? $_G['siteurl'] : '').$_G['setting']['attachurl'].'forum/'.$attachfile;
}
}
在上述代码下面,添加如下代码:
$fdata = DB::fetch_first("SELECT * FROM ".DB::table('forum_post')." WHERE tid = '$thread[tid]' and first = 1");
$rss_img = DB::fetch_first("SELECT * FROM ".DB::table('forum_threadimage')." WHERE tid = '$thread[tid]'");
然后再找到下一段代码:
echo " <item>\n".
" <title>".$thread['subject']."</title>\n".
" <link>$_G[siteurl]".($trewriteflag ? rewriteoutput('forum_viewthread', 1, '', $thread['tid']) : "forum.php?mod=viewthread&tid=$thread[tid]")."</link>\n".
" <description><![CDATA[".dhtmlspecialchars($thread['description'])."]]></description>\n".
" <category>".dhtmlspecialchars($thread['forum'])."</category>\n".
" <author>".dhtmlspecialchars($thread['author'])."</author>\n".
($attachfile ? '<enclosure url="'.$filename.'" length="'.$attachsize.'" type="image/jpeg" />' : '').
" <pubDate>".gmdate('r', $thread['dateline'])."</pubDate>\n".
" </item>\n";
修改下面一段代码,如下:
<description><![CDATA[".dhtmlspecialchars($thread['message'])."<br><img src=http://网站网址/data/attachment/forum/".dhtmlspecialchars($rss_img['attachment'])."/>]]></description>\n".
这个方法的原理是建立一个$fdata的变量,然后赋值为查询forum_post这张数据表中tid=帖子tid那行的数据
然后输出message值的数据。
这样的弊端在于,输出的的内容都是discuz代码,比如一个链接就会显示为[url]xxx[/url]这样是在阅读中,问题很大。
解决的办法也很复杂,需要用正则表达式来写。
这样rss输出的内容就是这个帖子的第一张图片和全文图片。以及还有字体的代码。
请问怎样修改代码,可以全文输出和所有的图片输出。
大佬,问题解决了吗?