本帖最后由 漫游¢饿狼 于 2012-5-22 18:41 编辑
首先,先说说这个BUG的形成。
很简单,只要你在“板块”中开启了主题“图片列表模式”功能。
然后你在这个板块中发帖(最好为特殊板主题,例如投票贴,辩论贴之类的。),然后不上图片,发帖过程中发生错误,这样这个BUG就形成了。
具体你可以具体尝试一下。
在跟踪过程中,看见了“feedid”错误,以为是帖子和广播推送表的问题,于是去修复了表。清空所有主题。
错误依旧。于是排除这个错误。
继续跟踪,发现其他板块可以正常发帖(PS:没有开启“图片列表模式” 功能的板块。)
以板块2的所有功能复制到板块1,在板块1继续发帖,没有提示feedid错误。
锁定了“图片列表” 功能。
板块1中再次开启 “图片列表模式” 功能 ,不在广播中发帖,到论坛发帖,发帖正常。
在广播中选择板块1发帖,继续提示错误。
于是搜索代码“picstyle”,最后锁定source\include\post\post_newthread.php中的控制过程- if($_G['forum']['picstyle']) {
- if(!setthreadcover($pid, 0, $threadimageaid)) {
- preg_match_all("/(\[img\]|\[img=\d{1,4}[x|\,]\d{1,4}\])\s*([^\[\<\r\n]+?)\s*\[\/img\]/is", $message, $imglist, PREG_SET_ORDER);
- $values['coverimg'] = "<p id="showsetcover">".lang('message', 'post_newthread_set_cover')."<span id="setcoverwait"></span></p><script>if($('forward_a')){\$('forward_a').style.display='none';setTimeout("$('forward_a').style.display=''", 5000);};ajaxget('forum.php?mod=ajax&action=setthreadcover&tid=$tid&pid=$pid&fid=$_G[fid]&imgurl={$imglist[0][2]}&newthread=1', 'showsetcover', 'setcoverwait')</script>";
- $param['clean_msgforward'] = 1;
- $param['timeout'] = $param['refreshtime'] = 15;
- }
- }
复制代码 把- $values['coverimg'] = "<p id="showsetcover">".lang('message', 'post_newthread_set_cover')."<span id="setcoverwait"></span></p><script>if($('forward_a')){\$('forward_a').style.display='none';setTimeout("$('forward_a').style.display=''", 5000);};ajaxget('forum.php?mod=ajax&action=setthreadcover&tid=$tid&pid=$pid&fid=$_G[fid]&imgurl={$imglist[0][2]}&newthread=1', 'showsetcover', 'setcoverwait')</script>";
- $param['clean_msgforward'] = 1;
- $param['timeout'] = $param['refreshtime'] = 15;
复制代码 注释后,再次在广播中用板块1发布,再没有错误提示。
既showmessage('post_newthread_mod_succeed', $returnurl, $values, $param);中的$values有问题。
我在官方中搜索到很多人都有这样的问题,但是官方人员给的答案是“请切换到默认模板”。
实在是不想怎么吐槽了。我也不知道为什么会提示那个错误,这个要靠官方的人员来解决了。
BUG的后续BUG。
只要是出现过这个BUG,就算你注释了上面那段代码。在广播中快速回复,转播该板块的贴的话,会出现许多问题。
还有另外一种方法,就是“全新安装”。我也不知道为什么全新安装后,再再次开启“图片列表模式”功能后发帖没有问题。
可能是必须要有一次发帖错误后,才会提示那个BUG吧!
|