1. 程式人生 > >dedecms聯動類別管理 聯動列舉不能新增二級選擇三級新增異常

dedecms聯動類別管理 聯動列舉不能新增二級選擇三級新增異常

dede官方提供的聯動類別不能新增二級聯動。在dedecmsV5.7中新增一二級分類沒有出現任何錯誤,但是,當新增三級分類後,再次新增一級二級

分類就出現錯誤,一級二級分類分別變成二級三級了。

BUG修復方法如下。

1.開啟dede/stepselect_main.php 檔案,找到215行至290行。並將其替換為以下程式碼:

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(); 
 } 

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,dedecms織夢也最多能新增3級聯動。基本足夠用了。

注意::資料表的名字要替換成#@__這裡是兩個下劃線

相關推薦

dedecms聯動類別管理 聯動列舉不能新增二級選擇三級新增異常

dede官方提供的聯動類別不能新增二級聯動。在dedecmsV5.7中新增一二級分類沒有出現任何錯誤,但是,當新增三級分類後,再次新增一級二級 分類就出現錯誤,一級二級分類分別變成二級三級了。 BUG修復方法如下。 1.開啟dede/stepselect_main.

DEDECMS聯動新增三級後無法新增二級分類的解決方案

修改stepselect_main.php查詢: elseif ($issign == 2 && $topvalue != 0)  替換為: elseif ($issign == 2 && $topvalue%500!= 0)

dedecms自定義聯動類別呼叫及修改方法

require_once(DEDEROOT.'/data/enums/infotype.php'); 下面新增 require_once(DEDEROOT.'/data/enums/自定義聯動類別欄位名.php'); function lib_infolink(&$ctag,&$refObj)

DedeCMS二次開發聯動篩選功能的實現(含多選功能)

多選效果如下圖:具體操作說明:一、注意,首先備份以下兩個檔案\include\arc.listview.class.php\include\extend.func.php多選版檔案下載連結:https 多選效果如下圖:   具體操作說明: 1、注意,首先備份以下兩個檔

微信小程式開發:二級三級等多級聯動選單

二級級聯效果三級聯動效果 二級聯動和三級聯動的程式碼結構都是一樣,就看要怎麼設定。接下來上三級聯動的程式碼。 wxml <view class="picker-box"> <view class='skill-picker'&g

手寫一個二級選擇聯動

(圖一) (圖二) 如上圖所示,當選擇型別時,階段選擇內部需要顯示該型別裡面的階段。 大概可以這樣子理解: { 型別1:{ 階段M: XXX }, 型別2:{ 階段N: XXX, 階段E: X

二級聯動,多級聯動

首先,二級聯動,還是多級聯動小夥伴們不要怕,其實很簡單。 首先,理清思路: 首先第一個頁面,肯定是進來就需要載入的 然後通過觸發第一個事件,一般都是select寫 聯動,然後通過事件方法將引數(二級需要的條件)傳送給下一個 需要用的地方(需要展示的地方) 上程式碼:注意$

php sql語句 二級三級、四級聯動

點選下載二級聯動:連結:https://pan.baidu.com/s/1x7qOXc34319yPFnVWgq_yA  提取碼:4wpo 點選下載三級聯動:連結:https://pan.baidu.com/s/1vf0cleUUoYc45L2QYjkerw  提取碼:620

用layui做二級三級,多級聯動表單

TIP:作者這裡以二級聯動為例 HTML程式碼 tip:程式碼是PHP動態渲染的 <div class="layui-form-item"> <label for="trade" class="layu

easyui 三級聯動類別分類

jquery 定義公用物件 //easyui三級聯動公用物件 function selec(urle,id,value){ var obj={ valueField: id, //資料庫查詢出來的id 或別名 textField: value, //資料庫查

(轉)織夢DedeCMS二次開發聯動篩選功能的實現(含多選功能)

原文:http://www.dedejs.com/html/article-571-1.html點選開啟連結織夢預設的列表頁沒有篩選功能,但有時候我們做產品列表頁的時候,產品的欄位比較多,很多人都需要用到篩選功能,這樣可以讓使用者更方便的找到自己所需要的東西,實現這個聯動篩選

簡單實現仿某寶地址選擇三級聯動樣式

聯動 ets 好的 AI list 曾經 lac XML recycle 內容簡單介紹 實現步驟 第一步 找準方向 第二步 開幹 總結 還是題外話

地區選擇三級聯動

nds ber select pad 三級聯動 response getc user type 用戶表 CREATE TABLE TS_PTL_USER ( "PTL_USER_ID" NUMBER(11)

許可權管理-一級選單-二級選單-三級選單-路徑導航和許可權粒度控制到按鈕級別

許可權管理 RBAC   許可權管理 1. 為什麼要有許可權?   2. 開發一套許可權的元件。為什麼要開發元件?   3. 許可權是什麼? web 開發中 URL 約等於 許可權   4. 表結構

織夢自定義表單用js代替聯動地區解決聯動地區選擇

span tex 選擇 字段 pan java htm img czc 用js+文本字段實現全國城市三級聯動 1、在自定義表單中添加 三個字段,字段類型 單行文本(varchar) 省份s_province 城市s_city 地區s_county 2、前臺模板中自定義表單

織夢其他模型使用聯動型別地區聯動

官方模型的聯動型別只能模型是在【獨立模型】或者官方預設的【分類資訊】模型下使用,其他模型下使用無效,我們來讓聯動型別支援所有模型。 新增聯動地區型別欄位 內容模型管理 - 文章模型(或者其他模型) - 新增新欄位 欄位名稱 和 資料型別 千萬別搞錯了 修改剛剛新增欄位資料型別 後臺-系統-S

基於Visual C++之Windows核心程式設計程式碼分析(1)實現裝置管理列舉裝置

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

騰訊雲新增二級域名

0、什麼是二級域名?   二級域名也就是在頂級域名下的子域名。在國際頂級域名下,它是指域名註冊人的網上名稱;在國家頂級域名下,它是表示註冊企業類別的符號。我國在國際網際網路絡資訊中心(Inter NIC)正式註冊並執行的頂級域名是CN,這也是我國的一級域名。在頂級域名之下,我國的二級域名又分為類別域名和行政

40、商品類別管理

學習過程: 昨天完成使用者的登入和註冊功能,今天我們回到後臺完成商品類別和商品的管理,先從比較簡單商品類別做起。大家可以先完成後臺管理員登入功能,和前途登入差不多,所以這裡我就不列出程式碼的實現了,大家可以下載原始碼檢視。按照計劃,我們先完成商品類別的管理,這個功能比較簡單,可以先看看靜態頁面,

java實現動態許可權(選單管理)動態新增選單,動態新增角色SSM框架

首先是資料庫設計 Menu表(選單表) Role表(角色表) Role_Menu表(角色選單關係表) User表(使用者表) User_Role表(使用者角色關係表) 其他實體類就略過了 在Menu實體類中添加了一個List<Menu&