那,这个BUG是也是在Discuz!论坛里有个修复的提到的,测试了下发现确实有这个BUG,也就顺便就写个教程好了。
编辑合成,通过之前的学习,应该可以自己定位了吧,访问core/admin/admin_compose.php。
搜索editsave定位到35行的判定,能提示正常,那就说明这个部分都执行完了,倒着找吧,看到尾部的数据库语句
DB::query("update ".DB::table('wxcompose')." set composeitem='$composeitem',itemarr='$itemarr',itemarr2='$itemarr2',itemnumarr='$itemnumarr',randnum='$randnum',costcwb='$costcwb' where id='$id'");
老毛病,$id之前压根儿没获取的好吧~看下判定最初,下一行就是获取物品id的,正确的变量是$item,把$id改成$item后保存文件重新编辑合成配置。还是没有修改,
再回到之前的文件,发现获取变量的方式不对,修正
$item=intval($_REQUEST['item']);
为
$item=intval($_G['gp_item']);
再次提交,还是不对,难道是获取有问题?检查了下模板,发现压根儿没传递item这个值啊……看来是这里的问题,修改模板文件admin_compose.htm,在第26行后添加
<input type='hidden' value="$item" name="item">
保存模板文件,刷新合成配置,重新编辑提交,这回提示合成信息不存在。定位到后台文件admin_compose.php的第38行,查询到了会不存在,这个判定有问题,把
if($composeinfo){showmsg('合成物品信息不存在!', 'plugin.php id=wxpet:pet&index=admin&adminindex=compose');}
改成
if(!$composeinfo){showmsg('合成物品信息不存在!', 'plugin.php id=wxpet:pet&index=admin&adminindex=compose');}
保存文件。重新编辑提交,终于功能正常了。
问题解决。
本节教程结束。
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。