公司动态
dede联动类别添加无法添加二级枚举无法
摘要:文章目录索引(?) [-] 文章简介 适用范围 解决方法文章简介织梦系统默认联动类别里有一级二级三级选择,但是不管是我们自己添加新的二级选择,还是新建个一级选择后再添加二级选择均是无...
发布日期:2018-04-25文章目录索引(?) [-]
- 文章简介 适用范围 解决方法
文章简介
织梦系统默认联动类别里有一级二级三级选择,但是不管是我们自己添加新的二级选择,还是新建个一级选择后再添加二级选择均是无法添加新的二级选择,而是直接二级变三级了,这是织梦程序的一个bug,本文就说一下如何解决这个bug程序。
适用范围
演示版本:dede5.7 UTF8
适用范围: dede5.7(其他版本自己尝试)
解决方法
ps:按官方的说法,二级选择只能添加到自己新建的一级选择中,但是作者试了一下,根本就不行,最后还是得改代码才行。
第1步:找到并打开织梦后台目录下的stepselect_main.php文件。
第2步:使用/*和*/注销掉215行至290行代码。
第3步:注销掉,添加如下代码,并保存。原文网址http://www.pc811.com/6/4/26139.html
- elseif($action=="addenum_save"){
- if(empty($ename)||empty($egroup)){
- Showmsg("类别名称或组名称不能为空!","-1");exit();
- }if($issign==1||$topvalue==0)
- {$enames=explode(",",$ename);
- foreach($enamesas$ename){
- $arr=$dsql->GetOne("SELECT*FROM`dede_sys_enum`WHEREegroup="$egroup"AND(evalueMOD500)=0ORDERBYdisorderDESC");if(!is_array($arr))$disorder=$evalue=($issign==1?1:500);
- else$disorder=$evalue=$arr["disorder"]+($issign==1?1:500);
- $dsql->ExecuteNoneQuery("INSERTINTO`dede_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)VALUES("$ename","$evalue","$egroup","$disorder","$issign");");
- }WriteEnumsCache($egroup);
- ShowMsg("成功添加枚举分类!".$dsql->GetError(),$ENV_GOBACK_URL);exit();
- }elseif($issign==3&&$topvalue!=0){
- $minid=$topvalue;$maxnum=500;//三级子类最多500个
- $enames=explode(",",$ename);foreach($enamesas$ename)
- {$arr=$dsql->GetOne("SELECT*FROM`dede_sys_enum`WHEREegroup="$egroup"ANDevalueLIKE"$topvalue.%%%"ORDERBYevalueDESC");
- 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="INSERTINTO`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($enamesas$ename){
- $arr=$dsql->GetOne("Select*From`dede_sys_enum`whereegroup="$egroup"Andevalue>$minidAndevalue<$maxidorderbyevaluedesc");if(!is_array($arr))
- {$disorder=$evalue=$minid+1;
- }else
- {$disorder=$arr["disorder"]+1;
- $evalue=(int)($arr["evalue"]+1);}
- $dsql->ExecuteNoneQuery("Insertinto`dede_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)values("$ename","$evalue","$egroup","$disorder","$issign");");
- }WriteEnumsCache($egroup);
- ShowMsg("成功添加枚举分类!".$issign,$ENV_GOBACK_URL);exit();
- }}
电脑维修技术网注:由于很多原因,可能会造成无法修改或是其他错误,这是stepselect_main.php文件下载地址。
第4步:再次打开 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;
电脑维修技术网注:由于很多原因,可能会造成无法修改或是其他错误,这是stepselect_main.htm文件下载地址
第5步:更新系统缓存,即可生效。
电脑维修技术注:此方法只能添加到最多三级选择。
ps:如有任何疑问,可在评论中针对本文进行留言,一般来说作者都是当年回复的。
- 上一篇:电脑无法识别键盘
- 下一篇:解压时电脑非常卡怎么办