Project1

标题: 关于代码框内 @ 被解析的问题 [打印本页]

作者: taroxd    时间: 2015-1-26 20:52
标题: 关于代码框内 @ 被解析的问题
本帖最后由 taroxd 于 2015-1-31 08:23 编辑

@小传子

注意,fuck_code 只修改了 code 代码框的内容,而没有考虑 pre 代码框。请小传子加上 pre 代码框的处理。

在 source/class/extend/extend_thread_allowat.php 中:

在每个
  1. foreach($this->atlist as $atuid => $atusername) {
复制代码
前面调用
  1. $this->fuck_code($parameters);
复制代码
在每个
  1. $this->param['message'] = substr($this->param['message'], 0, strlen($this->param['message']) - 1);
复制代码
后面调用
  1. $this->fuck_code_again();
复制代码
两个函数的定义如下:

  1.     public function fuck_code(&$param) {
  2.         $param['message'] = preg_replace_callback(
  3.             '/(\[code\][\s\S]+?\[\/code\])/i',
  4.             function ($matches) {
  5.                 return str_replace('@', 'The string serves as "at"', $matches[0]);
  6.             },
  7.             $param['message']
  8.         );
  9.     }

  10.     public function fuck_code_again() {
  11.         $this->param['message'] = str_replace('The string serves as "at"', '@', $this->param['message']);
  12.     }
复制代码

作者: 怪蜀黍    时间: 2015-1-26 22:16
本帖最后由 怪蜀黍 于 2015-1-26 22:18 编辑

能不能
$atreplace[] = 在代码框内 ?  "@{$atusername} "  : "[ur l=home.php?mod=space&uid=$atuid]@{$atusername}[/url]"
无视吾吾不懂这许多。
作者: taroxd    时间: 2015-1-30 08:29
另外,那个简单粗暴的修改方式有点问题,没有考虑到 $atusername 可以是大写。反正我也不推荐那个方法,就不改原帖了

希望传子尽快改好吧
作者: VIPArcher    时间: 2015-1-30 10:16
诶,我的想法是能不能在发帖的侧边栏加一个禁止解析@ 链接 的复选框呢?(类似于现在的禁止链接识别的那个那样子。
作者: taroxd    时间: 2015-1-30 17:20
本帖最后由 taroxd 于 2015-1-30 20:43 编辑

@小传子
已经实现。希望帮忙检查bug:如果没有的话,请使用吧。
作者: chd114    时间: 2015-1-30 21:03
0.0我是怎么被@到的···
作者: RyanBern    时间: 2015-11-13 23:47
下面pre lang的错误能不能修正下呢?
RUBY 代码复制
  1. @left_picture.y = [email]464-@left_picture.bitmap.height[/email]
  1. @left_picture.y = 464-@left_picture.bitmap.height
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1