DEDE178模板网专注于织梦源码分享、织梦模板、dede模板源码、wordpress主题等网站模板,为广大站长提供完整无错的织梦源码。
用户名:
密码:
注册

织梦源码,DEDE178模板网

VIP

CMS教程

站长学院

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

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

	
  • function stripblock($var, $s) {  
  •     $s = str_replace('\"', '"', $s);  
  •     $s = preg_replace("/<\?=\\\$(.+?)\?>/", "{\$\\1}", $s);  
  •     preg_match_all("/<\?=(.+?)\?>/e", $s, $constary);  
  •     $constadd = '';  
  •     $constary[1] = array_unique($constary[1]);  
  •     foreach($constary[1] as $const) {  
  •         $constadd .= '$__'.$const.' = '.$const.';';  
  •     }  
  •     $s = preg_replace("/<\?=(.+?)\?>/", "{\$__\\1}", $s);  
  •     $s = str_replace('?>', "\n\$var .= <<<EOF\n", $s);  
  •     $s = str_replace('<?', "\nEOF;\n", $s);  
  •     return "<?\n$constadd\$var = <<<EOF\n".$s."\nEOF;\n?>";  
  • }  
复制代码
在代码

	
  • $s = str_replace('<?', "\nEOF;\n", $s);
复制代码
下方加上一行:

	
  • $s = str_replace("\nphp ", "\n", $s);
复制代码
上传覆盖此文件,然后将 \data\template目录中的内容清空。 修复完成!
下一篇:没有了
收缩