phpcms是开源的一套cms系统程序,目前也是vecms网站建设公司程序员使用最多的cms系统之一,在phpcms中有集成的会员系统,会员可以进行在线投稿,网站管理员可设置哪些栏目允许投稿,哪些栏目不允许投稿。当用户在个人中心进行投稿的过程中,选择需要投稿栏目,进行投稿。但是我们发现,phpcms v9自带的投稿功能,在选择栏目时,及时没有设置允许投稿的栏目,也会在下拉菜单中显示,用户点击不允许投稿的栏目,会提示“没有投稿权限”,这样很不方便,所以需要修改程序,让只有允许投稿的栏目才会显示,不允许投稿的栏目不显示。
一、先直接说明解决办法:
①、打开phpcms---libs---classes---form.class.php文件
②、找到“public static function select_category”函数
③、在该函数中,找到“”if($is_push=='1' and $r['child']=='0'){“这句话
④、把它下面一行修改为”$sql = array('catid'=>$r['catid'],'is_admin'=>'0','roleid'=>$user_groupid,'action'=>'add');“
⑤、进入后台,更新缓存,刷新用户中心
注:以下是分析原因,只修改问题的用户可忽略以下所有文字。
二、分析造成该情况的原因:
①、在后台添加了新的管理员,并对管理员设置了对应的管理栏目权限。
②、PHPCMS本身只是读取了”category_priv“这个表的所有内容,并没有对是否是管理员进行判断。
③、如果没有添加新的管理员,并没有为新管理员设置管理栏目权限,不会出现以上问题。
④、在$sql语句中加入”is_admin'=>'0'“是为了,增加一条SQL判断,区分是否为管理员还是用户组。