栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP > php开源框架 > dedecms

dede联动菜单无法添加二级选择

dedecms 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

dede联动菜单无法添加二级选择

dede联动菜单是一个非常实用的功能,然而dedeCMS直接安装后,添加到联动三级菜单以后,再插入二级选择会自动生成三级选择,以下方法解决此bug。

一、找到:dede/stepselect_main.php文件将以下替换源文件215行的对应代码

else if($action=='addenum_save')  
    {  
      if(empty($ename) || empty($egroup))   
      {  
      Showmsg("类别名称或组名称不能为空!","-1");  
      exit();  
 }  
 if($issign == 1 || $topvalue == 0)  
 {  
     $enames = explode(',', $ename);  
     foreach($enames as $ename)  
     {  
  $arr = $dsql->GetOne("SELECT * FROM `dede_sys_enum` WHERe egroup='$egroup' AND (evalue MOD 500)=0 ORDER BY disorder DESC ");  
  if(!is_array($arr)) $disorder = $evalue = ($issign==1 ? 1 : 500);  
  else $disorder = $evalue = $arr['disorder'] + ($issign==1 ? 1 : 500);  
 
  $dsql->ExecuteNoneQuery("INSERT INTO `dede_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)   
     VALUES('$ename','$evalue','$egroup','$disorder','$issign'); ");   
     }  
     WriteEnumsCache($egroup);    
     ShowMsg("成功添加枚举分类!".$dsql->GetError(), $ENV_GOBACK_URL);  
     exit();  
 } else if ($issign == 3 && $topvalue != 0)  
 {  
     $minid = $topvalue;  
     $maxnum = 500; // 三级子类最多500个  
     $enames = explode(',', $ename);  
     foreach ($enames as $ename)  
     {  
  $arr = $dsql->GetOne("SELECt * FROM `dede_sys_enum` WHERe egroup='$egroup' AND evalue LIKE '$topvalue.%%%' ORDER BY evalue DESC ");  
  if(!is_array($arr))  
  {  
      $disorder = $minid;  
      $evalue = $minid.'.001';  
  }  
  else  
  {  
      $disorder = $minid;  
      preg_match("#([0-9]{1,}).([0-9]{1,})#", $arr['evalue'], $matchs);  
      $addvalue = $matchs[2] + 1;  
      $addvalue = sprintf("%03d", $addvalue);  
      $evalue = $matchs[1].'.'.$addvalue;  
  }  
  $sql = "INSERT INTO `dede_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)   
     VALUES('$ename','$evalue','$egroup','$disorder','$issign'); ";  
  // echo $sql;exit;  
  $dsql->ExecuteNoneQuery($sql);   
     }  
     // echo $minid;  
     WriteEnumsCache($egroup);  
     ShowMsg("成功添加枚举分类!".$issign, $ENV_GOBACK_URL);  
     exit();  
 } else {  
$minid = $topvalue;  
$maxid = $topvalue + 500;  
$enames = explode(',', $ename);  
   foreach($enames as $ename)  
   {  
 $arr = $dsql->GetOne("Select * From `dede_sys_enum` where egroup='$egroup' And evalue>$minid And evalue<$maxid order by evalue desc ");  
 if(!is_array($arr))  
 {  
  $disorder = $evalue = $minid+1;  
 }  
 else  
 {  
  $disorder = $arr['disorder']+1;  
  $evalue = (int)($arr['evalue']+1);  
 }  
 $dsql->ExecuteNoneQuery("Insert into `dede_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)  
  values('$ename','$evalue','$egroup','$disorder','$issign'); ");  
    }  
    WriteEnumsCache($egroup);  
ShowMsg("成功添加枚举分类!".$issign, $ENV_GOBACK_URL);  
exit();  
     }  
    }


二、找到:dede/templets/stepselect_main.htm文件将

if($topvalue % 500 != 0) $arr['issign'] = 2; 

替换为:

if($topvalue % 500 != 0) $arr['issign'] = 3;
if($topvalue % 500 == 0) $arr['issign'] = 2;

以上这样修改后1,2,3 联动能添加,再4级就不行了。应为这里的标记只判断到3,织梦也最多能添加3级联动。所以足够用了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/3367.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号