参考了whatsnew做了一个简单的补丁来解决RSS显示秘密论坛帖子的问题。
虽然无法智慧判断用户权限,但至少能够保护秘密论坛里的内容。
刚刚在我自己的论坛《箩棒帝国》测试过了没有问题。如果大家发现什么问题,请在这里回复提出:https://discuz.dismall.com/viewthread.php?tid=122093&pid=1456428&page=2&extra=#pid1456428
修改 rss.php:
找到
在下面加入
- /*
- ##################################
- # 补丁: 过滤隐蔽的论坛版面
- # 作者: LobangKing
- # 网站: http://www.Lobang2u.com
- # 用法: 将不要被RSS显示的论坛fid列出
- # 格式: $fidout = "25" //隐蔽一个论坛,25是论坛的fid
- # $fidout = "24_25_26_40_51" //隐蔽多个论坛,fid与fid之间使用底线 "_" 间隔
- ########################################################################################
- */
- $fidout = "20_21_22"; //设定所有不要显示的论坛fid,fid之间用底线“_”间隔
- $fidout_arr = explode("_", $fidout);
- if(in_array($fid, $fidout_arr)){
- $fid = "INVALID";
- }
- $SQL_fidout = $fidout ? ' WHERE `fid` NOT IN (\''.str_replace('_', '\',\'', $fidout).'\')': NULL;
- ////////////////////////////////////////////////////////////////////////////////////////////
复制代码
注意这一句,在这里设定要过滤的论坛fid:
$fidout = "20_21_22"; //设定所有不要显示的论坛fid,fid之间用底线“_”间隔
同样在rss.php
找到
- $strSQL="SELECT * FROM $table_threads t order by dateline DESC LIMIT 0,"
复制代码
整句用下面这段替代
- //$strSQL="SELECT * FROM $table_threads t order by dateline DESC LIMIT 0,"
- $strSQL="SELECT * FROM $table_threads t $SQL_fidout order by dateline DESC LIMIT 0,"
复制代码
关于有人说RSS无法显示帖子内容,这一点并不是BUG,而是故意的,RSS根本都不应该显示帖子内容的。如果能够显示帖子内容,大家通过RSS读帖就行了,还会有人访问你的论坛吗?
[ 本帖最后由 LobangKing 于 2005-11-16 14:11 编辑 ] |