会员在论坛发链接帖子,无非就是给自己网站打广告。为了论坛人气,适当的广告互动是可以的,为了方便的控制好,我们可以设定一个预定值,只有达到发 帖数量后,才可以发带有超链接的帖子,这样论坛的总帖子数量和用户的一些特殊要求,两全其美。那么,我们的phpwind是否可以实现类?如何可以实现, 如何设置?这个功能,我们可以在phpwind后台直接设置,但是无忧主机小编在测试中,发现了一个bug,但是设置这项 选项后会员回复帖子会提示:你的发贴数未到x(帖子的数量),不能发表带有链接地址的帖子。而且已经在官方找到了解决方案,并确定是这是一个BUG,小编 现在分享一下这个bug的解决方案,让站长遇到同样问题少走弯路。
一、phpwind后台操作路径
Phpwind管理后台—>全局—>会员相关—>链接帖发帖限制
二、解决会员回复帖子提示:您的发帖数未到x(帖子的数量),不能发表带有链接地址的帖子方案
文件目录为:lib/forum/post.class.php将文件下载至本地
文本编辑器打开:post.class.php(修改前备份好原文件)
查找:(大约在660-669行)
function urlCheck($str) {
global $db_bbsurl;
if (strpos($str,'[/URL]') !== false || strpos($str,'[/url]') !== false) return true;
if (preg_match_all('/\[url=([^\]]+)]/is', $str ,$matches)){
foreach ($matches[1] as $v) {
if (strpos($v, $db_bbsurl) !== 0) return true;
}
}
return false;
}
修改为:
function urlCheck($str) {
global $db_bbsurl;
if (strpos($str,"[quote]") !== false && strpos($str,"[/quote]") !== false) {
$str = preg_replace("/\[quote\](.*?)\[\/quote\]/eis","",$str);
}
if (strpos($str,'[/URL]') !== false || strpos($str,'[/url]') !== false) return true;
if (preg_match_all('/\[url=([^\]]+)]/is', $str ,$matches)){
foreach ($matches[1] as $v) {
if (strpos($v, $db_bbsurl) !== 0) return true;
}
}
return false;
}
修改完成后,上传至php虚拟主机相应的目录,登陆管理后台更新缓存
来源:oschina
链接:https://my.oschina.net/u/878503/blog/95112