一、先直接说明解决办法:
①、打开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判断,区分是否为管理员还是用户组。
以上信息转自:腾飞网络 http://www.0531soso.com/wlzs/phpcms_tougao.html
【网上通用方法】 这种方法我没有设置成功 ,不知道是不是我修改的问题,大家也可以试一下!
把phpcms/modules/member/content.php第114行至121行
foreach ($CATEGORYS as $catid=>$cat) {
if($cat['siteid']==$siteid && $cat['child']==0 && $cat['type']==0 && $priv_db->get_one(array('catid'=>$catid, 'roleid'=>$memberinfo['groupid'], 'is_admin'=>0, 'action'=>'add'))) break;
}
$catid = $_GET['catid'] ? intval($_GET['catid']) : $catid;
if (!$catid) showmessage(L('category').L('publish_deny'), APP_PATH.'index.php?m=member');
//判断本栏目是否允许投稿
if (!$priv_db->get_one(array('catid'=>$catid, 'roleid'=>$memberinfo['groupid'], 'is_admin'=>0, 'action'=>'add'))) showmessage(L('category').L('publish_deny'), APP_PATH.'index.php?m=member');
上面一块替换成:
foreach ($CATEGORYS as $catid=>$cat) {
}
$catid = $_GET['catid'] ? intval($_GET['catid']) : $catid;
//判断本栏目是否允许投稿
if ($priv_db->get_one(array('catid'=>$catid, 'is_admin'=>0, 'action'=>'add')) && !$priv_db->get_one(array('catid'=>$catid, 'roleid'=>$memberinfo['groupid'], 'is_admin'=>0, 'action'=>'add'))) showmessage(L('category').L('publish_deny'), APP_PATH.'index.php?m=member');
我没有修改成功,不代表此段代码不能用,大家可以试一下,如果成功,希望能留言发出来,谢谢了