请选择 进入手机版 | 继续访问电脑版

Discuz站长论坛

 找回密码
 立即注册
查看: 50|回复: 0

Discuz!教程之Discuz!X2.5版本安装一些插件显示500错误,或页面打不开的问题修复

[复制链接]
发表于 7 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
尽管目前discuz已经升级到X3.4版本了,但是X2.5版本还有很多站长在使用。目前使用X2.5版本的站长面临的一个很头疼的问题就是好多插件不支持了,或者安装插件直接显示500错误,
具体表现为:安装没有前台界面的插件就可以正常使用,但是安装有前台界面的插件就打开报错!
这个问题一般是由于X2.5模板解析机制不同导致的,凡是在模板中调用系统函数或者自定义函数的都会出现此类错误,经过与高版本discuz!对比,发现修复方法如下:
打开文件 \source\class\class_template.php
找到代码
  1. function stripblock($var, $s) {

  2.                 $s = str_replace('\\"', '"', $s);

  3.                 $s = preg_replace("/<\?=\\\$(.+?)\?>/", "{\$\\1}", $s);

  4.                 preg_match_all("/<\?=(.+?)\?>/e", $s, $constary);

  5.                 $constadd = '';

  6.                 $constary[1] = array_unique($constary[1]);

  7.                 foreach($constary[1] as $const) {

  8.                         $constadd .= '$__'.$const.' = '.$const.';';

  9.                 }

  10.                 $s = preg_replace("/<\?=(.+?)\?>/", "{\$__\\1}", $s);

  11.                 $s = str_replace('?>', "\n\$var .= <<<EOF\n", $s);

  12.                 $s = str_replace('<?', "\nEOF;\n", $s);

  13.                 return "<?\n$constadd\$var = <<<EOF\n".$s."\nEOF;\n?>";

  14.         }
复制代码

在代码$s = str_replace('<?', "\nEOF;\n", $s);下方加上一行:
$s = str_replace("\nphp ", "\n", $s);
上传覆盖此文件,然后将 \data\template目录中的内容清空。
修复完成!


最近访问 头像模式 列表模式
回复 马甲回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|网站地图|小黑屋|手机浏览|简洁浏览|展会网|Discuz站长论坛 ( ICP12079930

GMT+8, 2018-2-18 15:15 , Processed in 0.167642 second(s), 22 queries .

Powered by Discuz! X3.2 Designed by AiLab.CN

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表