dede 5.7 二级联动三级联动添加异常bug完美修复
2012-03-29 16:33
489 查看
二级联动添加bug网上找了很多资料。修复后要么二级能添加三级却不能添加了。逼不得已研究了下终于解决了。算是123级添加bug完美修复吧
首先
1.dede/stepselect_main.php 文件
以下替换源文件215行的对应代码
2.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级联动。所以足够用了。
复制的时候代码里会出现问题。比如if(empty($ename) || empty($egroup)) 这一块。不知道csdn 代码功能出错还是什么原因,就多了个empty单词
首先
1.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 `#@__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 `#@__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 `#@__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 `#@__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(); } }
2.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级联动。所以足够用了。
复制的时候代码里会出现问题。比如if(empty($ename) || empty($egroup)) 这一块。不知道csdn 代码功能出错还是什么原因,就多了个empty单词
相关文章推荐
- dedecms联动类别管理 联动枚举不能添加二级选择三级添加异常
- dede 修复更新联动缓存 不更新联动js的bug
- DEDECMS联动添加三级后无法添加二级分类的解决方案
- DEDE5.6,DEDE5.7实现同时调用一级、二级、三级栏目
- dede 三级和二级菜单的联动SQL调用
- 织梦联动枚举字段添加一级分类如果超过132个自动变成二级修复教程
- 解决DedeCMS 5.7后台联动不能添加二级栏目
- DEDE 5.7分类联动BUG
- 织梦5.7bug修复:后台联动不能添加二级栏目的解决
- MySQL 5.7 mysqldump的Bug导致复制异常
- jquery 实现二级/三级/多级联动菜单的思路及代码
- 省市区二级或三级联动特效
- 关于Spinner的二级三级甚至多级联动
- 从后台获取数据添加省市县三级联动的框架中、菜鸟说明法
- dede 5.7 联动类型 编辑文章时不显示
- 【duilib界面库】duilib界面库(干货) 修复UIScrollBar鼠标移出控件外显示异常的BUG
- 二级联动添加表格及删除按钮弹出对话框
- WinForm IME输入法BUG完美修复
- 添加批量删除二级联动②
- JQuery实现添加删除数据全选反选隔行变色二级联动