11-07
12

导致“频道管理员”后台不能管理三级分类原因

昨天在增加了一个“频道管理员”,并赋予权限栏目之后,登陆后台却只能看到一级和二级目录,无法看到三级目录。查找原因后发现确实是dede的一个小缺陷。
        导致产生这个缺陷的原因是dede的后台设置赋予“频道管理员”栏目时,dede并没有将子栏目的管理权限顺延给父栏目。就像是你找了一个带孩子的老婆,而新老婆的孩子和你并没有血缘关系一样,O(∩_∩)O~
        要解决这个问题其实很简单。首先,你找到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 `#@__admin` where id='$id'");
$typeids = explode(',', $row['typeid']);
$dsql->SetQuery("Select id,typename From `#@__arctype` where reid=0 And (ispart=0 or ispart=1)");
$dsql->Execute('op');
while($nrow = $dsql->GetObject('op'))
{
$typeOpti***** .= "<option value='{$nrow->id}' class='btype'".(in_array($nrow->id, $typeids) ? ' selected' : '').">{$nrow->typename}</option>\r\n";
$dsql->SetQuery("Select id,typename From #@__arctype where reid={$nrow->id} And (ispart=0 or ispart=1)");
$dsql->Execute('s');
while($nrow = $dsql->GetObject('s'))
    {
        $typeOpti***** .= "<option value='{$nrow->id}' class='stype'".(in_array($nrow->id, $typeids) ? ' selected' : '').">—{$nrow->typename}</option>\r\n";
        $dsql->SetQuery("Select id,typename From #@__arctype where reid={$nrow->id} And (ispart=0 or ispart=1)");
        $dsql->Execute('t');
        while($nrow = $dsql->GetObject('t'))
        {
            $typeOpti***** .= "<option value='{$nrow->id}' class='stype'".(in_array($nrow->id, $typeids) ? ' selected' : '').">─{$nrow->typename}</option>\r\n";
        }
    }
}
include DedeInclude('templets/sys_admin_user_edit.htm');

        文件上传,一切ok~~~~~~~~~


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 247
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭