找回密码
 快速注册
搜索
查看: 69|回复: 7

RSS订阅

[复制链接]

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2022-7-16 16:15 |阅读模式
本帖最后由 hbghlyj 于 2023-4-18 19:57 编辑 Discuz! 6.1.0 專區 » 幫助 » 我如何使用RSS訂閱
在論壇的首頁和進入版塊的頁面的右上角就會出現一個rss訂閱的小圖標
,鼠標點擊之後將出現本站點的rss地址,你可以將此rss地址放入到你的rss閱讀器中進行訂閱。


尝试添加 本论坛数学研发论坛 为Outlook的RSS源,均未成功
换成安卓上的RSS Reader和Feedly也都没有成功.
数学研发论坛本论坛
Feed ValidatorFeed Validator
freakedsmiley[1].png freakedsmiley[1].png

左边是发现了RSS源中的一些不符合规范的地方,但是右边根本没有识别出有效RSS


如何修改discuz论坛帖子RSS全文输出以及全图片输出
Discuz RSS 改为全文输出
Discuz!门户和论坛rss地址和相关文件。
门户地址:你的网址/portal.php?mod=rss
论坛地址:你的网址/forum.php?mod=rss

对应的控制rss输出内容的文件为:/source/module/portal/portal_rss.php和/source/module/forum/forum_rss.php。

论坛全文输出:
1.找到(大约106行)
  1. echo         "    <item>\n".
复制代码

之上添加查询语句
  1. $fdata = DB::fetch_first("SELECT * FROM ".DB::table('forum_post')." WHERE tid = '".$thread['tid']."' and first = 1");
复制代码

2.找到
  1. "      <![CDATA[".dhtmlspecialchars($thread['description'])."]]>\n\n".
复制代码

替换为
  1. "      <description><![CDATA[".dhtmlspecialchars($fdata['message'])."]]></description>\n".
复制代码

门户全文输出:
1.找到
  1. echo         "    <item>\n".
复制代码

之上添加查询语句
  1. $fdata = DB::fetch_first("SELECT * FROM ".DB::table('portal_article_content')." WHERE aid = ".$article['aid']);
复制代码

2.找到
  1. "      <description><![CDATA[".dhtmlspecialchars($article['description'])."]]></description>\n".
复制代码

替换为
  1. "      <description><![CDATA[".dhtmlspecialchars($fdata['content'])."]]></description>\n".
复制代码

730

主题

1万

回帖

9万

积分

积分
93613
QQ

显示全部楼层

kuing 发表于 2022-7-16 16:28
完全不知道这是啥东西😌

点评

数学研发论坛那边做过一些修改.例如页脚的订阅图标的链接指向http://feed.emath.ac.cn/,而不是Discuz默认的?mod=rss.Discuz默认的RSS是无效的.  发表于 2022-7-16 21:25
feed.php 以 xml 格式显示数据  发表于 2022-7-16 21:27
手机版貌似看不到点评  发表于 2022-7-17 05:10

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2022-7-17 05:11

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2022-7-19 05:28
本帖最后由 hbghlyj 于 2023-4-18 19:38 编辑 版块页右上角有RSS订阅按钮,这个链接是带auth参数的,
auth参数和cookie有关: 如果已登录,auth是很长的一串字符; 如果是游客, auth=0
看书.jpg
index.png

用validator检查,结果被InfinityFree搞得require javascript to work 没法直接使用
RSS Validator https://kuing.cjhb.site/forum.php?mod=rss&fid=5&auth=0
index.png

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2023-4-19 02:42

如何修改discuz论坛帖子RSS全文输出以及全图片输出

PHPStudy

由于目前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&amp;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输出的内容就是这个帖子的第一张图片和全文图片。以及还有字体的代码。

请问怎样修改代码,可以全文输出和所有的图片输出。

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 15:39

Powered by Discuz!

× 快速回复 返回顶部 返回列表