hg0088注册,hg0088开户,hg0088皇冠,皇冠体育-注册开户网址

主页 | 拥有4套模板 | 收藏本站 | 交流QQ群:322530250

当前位置:主页 > hg0088开户 > 使用教程 >

hg0088开户,解决DedeCMS 5.7后台联动不能添加二级栏

今天为客户制作一个汽车类网站,在用dedecms5.7为客户添加一个产品的分类时,发现只可以添加一级联动和三级联动,二级联动无法添加了,仔细查看源码后发现这又是一个5.7的BUG,解决此问题,只须修改dede/stepselect_main.php的相关内容就可以了。

 

首先在空间里找到dede/stepselect_main.php  这个文件,然后找到其中这段代码

  1.  

  2. else if($action=='addenum_save')  

  3.  

  4. {  

  5.  

  6.   if(emptyempty($ename) || emptyempty($egroup))   

  7.  

  8.   {  

  9.  

  10.          Showmsg("类别名称或组名称不能为空!","-1");  

  11.  

  12.          exit();  

  13.  

  14.     }  

  15.  

  16.     if($issign == 1 || $topvalue == 0)  

  17.  

  18.     {  

  19.  

  20.         $enames = explode(',', $ename);  

  21.  

  22.         foreach($enames as $ename)  

  23.  

  24.         {  

  25.  

  26.             $arr = $dsql->GetOne("SELECT * FROM `imduo_sys_enum` WHERE egroup='$egroup' AND (evalue MOD 500)=0 ORDER BY disorder DESC ");  

  27.  

  28.             if(!is_array($arr)) $disorder = $evalue = ($issign==1 ? 1 : 500);  

  29.  

  30.             else $disorder = $evalue = $arr['disorder'] + ($issign==1 ? 1 : 500);  

  31.  

  32.                   

  33.  

  34.             $dsql->ExecuteNoneQuery("INSERT INTO `imduo_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)   

  35.  

  36.                                     VALUES('$ename','$evalue','$egroup','$disorder','$issign'); ");   

  37.  

  38.         }  

  39.  

  40.         WriteEnumsCache($egroup);                                                            

  41.  

  42.         ShowMsg("成功添加枚举分类!".$dsql->GetError(), $ENV_GOBACK_URL);  

  43.  

  44.         exit();  

  45.  

  46.     } else if ($issign == 3 && $topvalue != 0)  

  47.  

  48.     {  

  49.  

  50.         $minid = $topvalue;  

  51.  

  52.         $maxnum = 500; // 三级子类最多500个  

  53.  

  54.         $enames = explode(',', $ename);  

  55.  

  56.         foreach ($enames as $ename)  

  57.  

  58.         {  

  59.  

  60.             $arr = $dsql->GetOne("SELECT * FROM `imduo_sys_enum` WHERE egroup='$egroup' AND evalue LIKE '$topvalue.%%%' ORDER BY evalue DESC ");  

  61.  

  62.             if(!is_array($arr))  

  63.  

  64.             {  

  65.  

  66.                 $disorder = $minid;  

  67.  

  68.                 $evalue = $minid.'.001';  

  69.  

  70.             }  

  71.  

  72.             else  

  73.  

  74.             {  

  75.  

  76.                 $disorder = $minid;  

  77.  

  78.                 preg_match("#([0-9]{1,})\.([0-9]{1,})#", $arr['evalue'], $matchs);  

  79.  

  80.                 $addvalue = $matchs[2] + 1;  

  81.  

  82.                 $addvalue = sprintf("%03d", $addvalue);  

  83.  

  84.                 $evalue = $matchs[1].'.'.$addvalue;  

  85.  

  86.             }  

  87.  

  88.             $sql = "INSERT INTO `imduo_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)   

  89.  

  90.                                     VALUES('$ename','$evalue','$egroup','$disorder','$issign'); ";  

  91.  

  92.             // echo $sql;exit;  

  93.  

  94.             $dsql->ExecuteNoneQuery($sql);   

  95.  

  96.         }  

  97.  

  98.         // echo $minid;  

  99.  

  100.         WriteEnumsCache($egroup);  

  101.  

  102.         ShowMsg("成功添加枚举分类!".$issign$ENV_GOBACK_URL);  

  103.  

  104.         exit();  

  105.  

  106.     } else {  

  107.  

  108.    $minid = $topvalue;  

  109.  

  110.    $maxid = $topvalue + 500;  

  111.  

  112.    $enames = explode(',', $ename);  

  113.  

  114.       foreach($enames as $ename)  

  115.  

  116.       {  

  117.  

  118.     $arr = $dsql->GetOne("Select * From `dede_sys_enum` where egroup='$egroup' And evalue>$minid And evalue<$maxid order by evalue desc ");  

  119.  

  120.     if(!is_array($arr))  

  121.  

  122.     {  

  123.  

  124.      $disorder = $evalue = $minid+1;  

  125.  

  126.     }  

  127.  

  128.     else  

  129.  

  130.     {  

  131.  

  132.      $disorder = $arr['disorder']+1;  

  133.  

  134.      $evalue = (int)($arr['evalue']+1);  

  135.  

  136.     }  

  137.  

  138.     $dsql->ExecuteNoneQuery("Insert into `dede_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)  

  139.  

  140.                                  values('$ename','$evalue','$egroup','$disorder','$issign'); ");  

  141.  

  142.        }  

  143.  

  144.        WriteEnumsCache($egroup);  

  145.  

  146.    ShowMsg("成功添加枚举分类!".$issign$ENV_GOBACK_URL);  

  147.  

  148.    exit();  

  149.  

  150.  }  

  151.  

  152. }  

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

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级联动。所以足够用了。

本素材资源仅供个人学习与参考,请勿用于商业用途,后果由使用者自己承担...

hg0088注册,hg0088开户,hg0088皇冠,皇冠体育-注册开户网址
返回顶部