您的位置:首页 > 编程语言

源代码修改错,导致ecshop后台管理员权限显示空白

2015-10-18 16:22 489 查看
经过上一篇安装好ecshop后,在后台闲逛时,又发现一个异常,在导航栏上点击设置导航栏,然后点击管理员列表,随便选一个管理员点分派权限,你会发现权限名称全部没有,后来在admin\templates\privilege_allot.htm中找到{$lang[$priv.action_code]}改成{$lang.$priv.action_code},还有{$lang[$list.action_code]}改成{$lang.$list.action_code},搞定

后来经我问了群里的朋友,都说{$lang[$priv.action_code]}这样的语法是正确的,那就奇怪了,我就重新再安装了ecshop,发现权限名都有显示,那看来是我把源代码修改坏了。

经过我不断的调试,我终于发现了在includes\cls_templates.php里面的555行附近

原来是

$val = preg_replace("/\[([^\[\]]*)\]/eis", "'.'.str_replace('$','\$','\\1')", $val);

一开始我是这样修改

$val=preg_replace_callback("/\[([^\[\]]*)\]/is", function($r) { return '.'.str_replace('$','\$',$r[1]); }, $val);

最后经过调试得修改成这样

$val=preg_replace_callback("/\[([^\[\]]*)\]/is", function($r) { return '.'.$r[1]; }, $val);

这样就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ecshop 权限空白