|
安裝了幾款視頻播放插件,但是一打開帖子頁就出現500,然后在網上找了一個答案不知道對不對
下面是找的答案
盡管目前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目錄中的內容清空。
修復完成!
在代碼$s = str_replace('<?', "\nEOF;\n", $s);下方加上一行:
$s = str_replace("\nphp ", "\n", $s); 這一行代碼里面已經有了
將\data\template目錄中的內容清空,這個我不敢清空,因為我不知道template目錄中的內容是干嘛的,清空會不會導致更嚴重
知道的老哥麻煩解答一下,謝謝!!
|
|