插件作者的标准出来了!Manyou诚邀开发者加盟!
“互联网平台开发者”特刊 有奖征集开发者
立即免费下载 Discuz!6.1.0正式版
Discuz! 6.1.0 使用说明
Discuz!NT2.5正式版发布
开放源码下载
UCenter Home 1.2 正式版发布
官方站 | 帮助文档
基于ECShop的网店托管-卖否
PHP就业培训直通车 | LAMP培训大连
Discuz!收费服务内容及价格
“感谢有你同行”手握手2008年数万元重奖志愿者
Discuz!/ECShop 专用官方虚拟主机
亿声传媒(Insenz)中秋祝福发送中
Comsenz 招聘信息
网店系统ECShop v2.6.0正式版火热发布
基于Discuz!的免费论坛空间5D6D
参与有奖社区调查 赢取台湾5日游
 12 12
发新话题
打印

[使用] 改善hide代码(包括回复和积分两种隐藏方法)将其他附件也隐藏掉的BUG For Discuz!6.x

改善hide代码(包括回复和积分两种隐藏方法)将其他附件也隐藏掉的BUG For Discuz!6.x

我在帖子上传两个图片,其中一个打水印开放给所有人察看,另一个无水印原图以hide=3的代码隐藏限制只有积分高于3的人才能查看。
复制内容到剪贴板
代码:
[attach]29912[/attach]

原图-->
[hide=3][attach]29949[/attach]
[/hide]
结果以普通会员身份浏览时两个附件都不能显示。帖子显示为
引用:
[attach]***[/attach]

原图-->
本帖隐藏的内容需要积分高于 3 才可浏览
附件: 本帖附件需要回复才可下载或查看
在论坛上搜索了很久,之前也有人反映过类似的问题,但是别人只反应 “回复可见”的问题,斑竹只给出回复可见问题的解答,例如如下帖子
http://www.discuz.net/viewthread ... B2%D8&page=1###
引用:
就是修改include文件夹下的 discuzcode.func.php
将238行的 $hideattach[$pid] = 1; 改成 $hideattach[$pid] = 0;
可是修改以后,更新缓存完全无效。普通会员依然不能浏览帖子内的任何附件图片。最后自己对照前后代码琢磨了一下,

将241行开始的这段代码
复制内容到剪贴板
代码:
                        if(strpos($message, '[hide=') !== FALSE) {
                                $message = preg_replace("/\[hide=(\d+)\]\s*(.+?)\s*\[\/hide\]/ies", "creditshide(\\1,'\\2', $pid)", $message);
                        }
替换成
复制内容到剪贴板
代码:
                        if(strpos($message, '[hide=') !== FALSE) {
                                $message = preg_replace("/\[hide=(\d+)\]\s*(.+?)\s*\[\/hide\]/ies", "creditshide(\\1,'\\2', $pid)", $message);
                $hideattach[$pid] = 0;
                        }
也就是根据hide(回复可见)代码的形式,在 hide=积分(积分高于设定可见)的隐藏代码下面,增加 $hideattach[$pid] = 0; 这条语句,即时解决了积分隐藏功能将代码以外的附件都隐藏掉的问题。

因为据说6.1已经修改好了(有朋友特别做了个测试),但对照过6.1的discuzcode.func.php,文件只是修改了第一部分(也就是解决了回复可见的问题),建议官方可以再加一句,使得积分隐藏的问题也解决掉。:) 第一次自己研究代码解决了点小问题,贴上来分享一下,希望对有同样问题的朋友有帮助。^_^


支持一下!有些用处!
^^ 谢谢楼上支持^^
情缘采集器 一次性采集论坛全部内容 全自动维护 论坛发帖采集【免费使用】
卓越的网站信息同步更新功能,有效百度优化功能,为您带来更多流量。
3杂CN 域名 免费送,数量有限!
你的支持是我的鼓励^^
好贴啊
支持
开心
這點才叫極品.....
http://ericzn.com/
免費提供安全、可靠繁體插件...
 12 12
发新话题
版块跳转