Joomla 扩展使用手记:F!BB 论坛引用回贴时的 Bug 解决

安装了 Joomla 1.5 的论坛组件 F!BB(Frenzy Bulletin Board) 1.5.96 RC,前台在针对贴子点击 Quote 按钮引用回贴时会出现错误

Fatal error: Call to a member function defaultPermCheck() on a non-object in E:\xampp\htdocs\joomla\components\com_fbb\template\default\post.php on line 1904

这是 F!BB  的一个 Bug,还好错误提示告诉了是哪段代码出问题(注:不同的版本可能指示的行号不一样)。打开那个 post.php 文件,找到错误是发生在方法 quote() 中

$can_reply  = $FbCatPermissions->defaultPermCheck($canpost,$permsArray['post_own'],$this->firstPostUid,$this->my_id,$permsArray['post_any'])?1:0;

行,比较显然的是 $FbCatPermissions 会是一个 null,把方法 quote() 对照着其他的像 doPost() 方法,就该发现,在上面的 defaultPermCheck() 方法之前必须加上两行:

$FbCatPermissions = $this->FbCatPermissions;
$permsArray = $this->permsArray;

用来初始化 $FbCatPermissions 和 $permsArray,不然在用 defaultPermCheck() 检查权限时它们都为 null。

还有,根据语义,能引用回贴的话应该是要有回复的权限,所以参考 reply() 方法,我们把上面的

$can_reply  = $FbCatPermissions->defaultPermCheck($canpost,$permsArray['post_own'],$this->firstPostUid,$this->my_id,$permsArray['post_any'])?1:0;

改为

$can_reply  = $FbCatPermissions->defaultPermCheck($canpost,$permsArray['post_reply_own'],$this->firstPostUid,$this->my_id,$permsArray['post_reply_any'])?1:0;

此时就可以正常引用回贴了。

另外,要看看关联数组 $permsArray 有些什么值可以用如下代码:

while(list($k,$v)=each($permsArray)){
       echo "$k=>$v<br>";
}

遍历。

OK 啦,F!BB 还有几个 Bug 要瞧瞧,如提示中的换行、图片的自适应等等。

本文链接 https://yanbin.blog/joomla-fbb-quote-bug/, 来自 隔叶黄莺 Yanbin Blog

[版权声明] Creative Commons License 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments