DEDECMS后台频道管理员权限三级子栏目权限
在DEDECMS增加了一个“频道管理员”,并赋予权限栏目之后,登陆后台却只能看到一级和二级目录,无法看到三级目录。查找原因后发现确实是dede的一个小缺陷。
导致产生这个缺陷的原因是dede的后台设置赋予 “频道管理员”栏目时,dede并没有将子栏目的管理权限顺延给父栏目。就像是你找了一个带孩子的老婆, 而新老婆的孩子和你并没有血缘关系一样,要解决这个问题其实很简单:就是在原有的二级循环上面加个三级循环或者更多估计三级多数也就到头了~~
首先,你找到dede/目录下的sys_admin_user_edit.php文件,然后查找
//显示用户信息
$randcode=mt_rand(10000,99999);
$safecode=substr(md5($cfg_cookie_encode.$randcode),0,24);
$typeOpti*****='';
。。。。。。
直到:include DedeInclude('templets/sys_admin_user_edit.htm');
等代码,然后用以下代码来替换即可;
//显示用户信息
$randcode=mt_rand(10000,99999);
$safecode=substr(md5($cfg_cookie_encode.$randcode),0,24);
$typeOpti*****='';
$row=$dsql->GetOne("Select * From `dede_admin` where id='$id'");
$typeids=explode(',', $row['typeid']);
$dsql->SetQuery("Select id,typename From `dede_arctype` where reid=0 And (ispart=0 Or ispart=1)");
$dsql->Execute('op');
while($nrow=$dsql->GetObject('op'))
{
$typeOpti***** .="\r\n";
$dsql->SetQuery("Select id,typename From dede_arctype where reid={$nrow->id} And (ispart=0 Or ispart=1)");
$dsql->Execute('s');
while($nrow=$dsql->GetObject('s'))
{
$typeOpti***** .="\r\n";
$dsql->SetQuery("Select id,typename From dede_arctype where reid={$nrow->id} And (ispart=0 Or ispart=1)");
$dsql->Execute('t');
while($nrow=$dsql->GetObject('t'))
{
$typeOpti***** .="\r\n";
}
}
}
include DedeInclude('templets/sys_admin_user_edit.htm');
时间:(2024-02-06 13:41:04)
本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!