该插件会自动为代码添加一个空行;如果原代码有一空行,则它会在原来的基础上增加1个空行。经过查找需要修改一下“\ext\o0johntam0o\codeboxplus\event\main_listener.php”文件中的第99行内容:
Code: [全选] [Expand/Collapse]
-
// 修改前
-
return $this->codebox_template(preg_replace(‘#\<br\\s*/?\>#msi’, "\n", $arg[3]), $arg[1], $arg[2], $post_id, ++$part);
-
// 修改后
-
return $this->codebox_template(preg_replace(‘#\<br\\s*/?\>#msi’, "", $arg[3]), $arg[1], $arg[2], $post_id, ++$part);
原文作者: BG6RSH | 查看原帖
GeSHi 旧版用了 PHP 8 已经废弃的 create_function(),运行时爆致命错。修改/ext/o0johntam0o/codeboxplus/includes/geshi/geshi.php文件,手工改第 4746 行(以及后面若干行)
原旧代码:
修改后的代码:
错误原因分析
从报错信息可以看出,Symfony 路由加载器在解析 /volume1/web/phpBB3/ext/o0johntam0o/codeboxplus/config/routing.yml 文件时,遇到了不支持的键名 pattern。
在较老版本的 Symfony 路由组件中,定义路由路径使用的是 pattern 键;但在 phpBB 3.2.x 及更高版本中,Symfony 路由组件进行了升级,废弃了 pattern,强制要求使用 path 键。由于该扩展没有更新以适配新版 phpBB,导致系统抛出异常并崩溃。
. 手动修改配置文件(临时应急)
如果你急需使用该插件且暂无更新版本,可以手动修复路由文件:
打开文件:/volume1/web/phpBB3/ext/o0johntam0o/codeboxplus/config/routing.yml
找到包含 pattern: 的那一行(例如 pattern: ‘/codeboxplus’)。
将 pattern: 修改为 path:。
保存文件,并清除 phpBB 缓存(删除 /cache 目录下的 cache_data 和 twig 文件夹内容,但保留 .htaccess 和 index.htm)。
建议: 修改核心配置文件只是临时手段,长远来看还是建议寻找该扩展的替代品或等待作者发布兼容新版 phpBB 的更新。