织梦5.7bug修复:后台联动不能添加二级栏目的解决方法

  我在使用的分类信息的时候需要添加联动属性,结果去添加联动属性的时候,发现只可以添加一级联动和三级联动。

  二级联动无法添加了。

  在自己的5.6的后台添加的时候,发现是可以的。估计又是5.7版本的bug了。

  于是分析了代码,和大家分享下解决的办法:

  首先我们找到我们的模板源码下面的 dede/stepselect_main.php 这个文件,

  将这段代码

  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 == 2 && $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(“d”, $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(“成功添加枚举分类!”, $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 = $arr['evalue']+1;   }   $dsql->ExecuteNoneQuery(“INSERT INTO `dede_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)

  VALUES(‘$ename’,’$evalue’,’$egroup’,’$disorder’,’$issign’); “);

  }

  WriteEnumsCache($egroup);

  ShowMsg(“成功添加枚举分类!”, $ENV_GOBACK_URL);

  exit();

  }

  }

  替换为:

  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 evalue 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

  {

  $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 = $arr['evalue']+1;   }   $dsql->ExecuteNoneQuery(“Insert into `dede_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)

  values(‘$ename’,’$evalue’,’$egroup’,’$disorder’,’$issign’); “);

  }

  WriteEnumsCache($egroup);

  ShowMsg(“成功添加枚举分类!”, $ENV_GOBACK_URL);

  exit();

  }

  }

  然后保存,在系统后台更新系统缓存就可以了的。现在在后台的联动类别管理里面就可以增加二级选择了。

☉免责声明:本站所有模板均来自用户分享和网络收集,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服,我们核实后会立即删除。
☉本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!
pbootcms模板网 » 织梦5.7bug修复:后台联动不能添加二级栏目的解决方法

Pbootcms模板网 提供优质的模板集合

立即查看 了解详情