Discuz x2插件可以安装和卸载,点击启用之后页面空白的解决办法

      问题表现现象是:插件可以正常安装和正常卸载,只有在点击启用的时候,页面会出现空白。  
      这个问题,网上、包括discuz论坛,很多朋友在问,但是都没有一个明确的解决答案,今天我也遇到了同样的问题,后来经过仔细检查,发现是因为插件编写不合理导致的。导致2个插件有冲突的函数名,才发生了有一个插件无法启动的情况。 
     discuz插件的加载机制是自动加载启动的插件的 '插件目录名.class.php' 文件,如果该插件文件中在类外使用函数,有可能会和其他的插件作者使用的函数名冲突,这样就造成了启动加载第二个插件的时候出现页面空白的问题。   
     具体解决方案打开插件目录下/source/plugin/插件名/插件名.class.php  文件,检查页面下部是否有不被class xxxx{ } 包含的函数名,类似于function xxxx(){ }。   如果有,恭喜你,discuz插件点击启用后页面空白的问题已经找到了。  将这些函数移动到使用该函数的类class { }中,并且将原来的函数调用方式由xxxx()修改为$this->xxxx()的形式,这样问题就可以解决了。 
 
    最后顺带说一遍,discuz的插件加载机制存在严重的加载问题,插件之间加载应该能相互独立,这么简单的函数问题就能造成插件相互冲突。   并且官方一直不给出明确的解决方法,真的是太不负责任了。 
 
 
转载请保留原链接,谢谢

Copyright © 2024 逍遥蓝枫叶
Powered by .NET 8.0 on Kubernetes