phpbb论坛语法高亮插件o0johntam0o产生空白行的解决方法

该插件会自动为代码添加一个空行;如果原代码有一空行,则它会在原来的基础上增加1个空行。经过查找需要修改一下“\ext\o0johntam0o\codeboxplus\event\main_listener.php”文件中的第99行内容:

  1. // 修改前
  2. return $this->codebox_template(preg_replace(‘#\<br\\s*/?\>#msi’, "\n", $arg[3]), $arg[1], $arg[2], $post_id, ++$part);
  3. // 修改后
  4. return $this->codebox_template(preg_replace(‘#\<br\\s*/?\>#msi’, "", $arg[3]), $arg[1], $arg[2], $post_id, ++$part);

原文作者: BG6RSH | 查看原帖

此条目发表在学习笔记分类目录。将固定链接加入收藏夹。

《phpbb论坛语法高亮插件o0johntam0o产生空白行的解决方法》有2条回应

  1. BG6RSH说:

    GeSHi 旧版用了 PHP 8 已经废弃的 create_function(),运行时爆致命错。修改/ext/o0johntam0o/codeboxplus/includes/geshi/geshi.php文件,手工改第 4746 行(以及后面若干行)
    原旧代码:

    1.         if (!$recursed) {
    2.             $list = preg_replace(‘#\(\?\:(.)\)\?#’, ‘\1?’, $list);
    3.             static $callback_2;
    4.             if (!isset($callback_2)) {
    5.                 $callback_2 = create_function(‘$matches’, ‘return "[" . str_replace("|", "", $matches[1]) . "]";’);
    6.             }
    7.             $list = preg_replace_callback(‘#\(\?\:((?:.\|)+.)\)#’, $callback_2, $list);
    8.         }

    修改后的代码:

    1. if (!$recursed) {
    2.     // 1. 把 (?:a|b|c) 改写成 [abc]
    3.     $list = preg_replace(‘#\(\?\:(.)\)\?#’, ‘\1?’, $list);
    4.  
    5.     static $callback_2;
    6.     if (!isset($callback_2)) {
    7.         $callback_2 = function ($matches) {
    8.             return ‘[‘ . str_replace(‘|’, ”, $matches[1]) . ‘]’;
    9.         };
    10.     }
    11.     $list = preg_replace_callback(‘#\(\?\:((?:.\|)+.)\)#’, $callback_2, $list);
    12. }
  2. BG6RSH说:

    错误原因分析
    从报错信息可以看出,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 的更新。

    1. o0johntam0o_codeboxplus_base_controller:
    2.     path: /codeboxplus
    3.     defaults: { _controller: o0johntam0o.codeboxplus.controller:base }
    4.  
    5. o0johntam0o_codeboxplus_download_controller:
    6.     path: /codeboxplus/download/{id}–{part}
    7.     defaults: { _controller: o0johntam0o.codeboxplus.controller:downloader, id:0, part:0 }
    8.     requirements:
    9.         id: \d+
    10.         part: \d+

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。