亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > CMS > 織夢DEDE > 正文

讓dedecms聯動模型支持dede_sys_enum的father字段自動追加

2024-07-12 09:09:54
字體:
來源:轉載
供稿:網友
對dede_sys_enum添加father字段,實現目的:在添加聯動分類時,自動添加father的值。以500為分類界限。即:503的父類(father)為503,1001的father為1000。
 
主要修改的文件 stepselect_main.php文件。 
 
解決: 修改有三處。
 
1.主要添加內容:
$father = intval(floor($evalue/500))*500;  
 
2.修改內容:
$sql = "INSERT INTO `zuimoban_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`,`father`)   
                             VALUES('$ename','$evalue','$egroup','$disorder','$issign','$father'); ";  
<?php  
/** 
 * 聯動選擇管理 
 * 
 * @version        $Id: stepselect_main.php 2 13:23 2011-3-24 tianya $ 
 * @package        DedeCMS.Administrator 
 * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc. 
 * @license        http://help.dedecms.com/usersguide/license.html 
 * @link           http://www.dedecms.com 
 */  
require_once(dirname(__FILE__)."/config.php");  
CheckPurview('c_Stepselect');  
require_once(DEDEINC."/datalistcp.class.php");  
require_once(DEDEINC.'/enums.func.php');  
/*----------------- 
前臺視圖 
function __show() { } 
------------------*/  
$ENV_GOBACK_URL = (isset($ENV_GOBACK_URL) ? $ENV_GOBACK_URL : 'stepselect_main.php');  
if(empty($action))  
{  
    setcookie("ENV_GOBACK_URL",$dedeNowurl,time()+3600,"/");  
    if(!isset($egroup)) $egroup = '';  
    if(!isset($topvalue)) $topvalue = 0;  
    $etypes = array();  
    $egroups = array();  
    $dsql->Execute('me','SELECT * FROM `zuimoban_stepselect` ORDER BY id DESC');  
    while($arr = $dsql->GetArray())  
    {  
        $etypes[] = $arr;  
        $egroups[$arr['egroup']] = $arr['itemname'];  
    }  
  
    if($egroup!='')  
    {  
        $orderby = 'ORDER BY disorder ASC, evalue ASC';  
        if(!empty($topvalue))  
        {  
            // 判斷是否為1級聯動  
            if ($topvalue % 500 == 0)  
            {  
                $egroupsql = " WHERE egroup LIKE '$egroup' AND evalue>=$topvalue AND evalue < ".($topvalue + 500);  
            } else {   
                $egroupsql = " WHERE (evalue LIKE '$topvalue.%%%' OR evalue=$topvalue) AND egroup LIKE '$egroup'";  
            }  
        }  
        else  
        {  
            $egroupsql = " WHERE egroup LIKE '$egroup' ";  
        }  
        $sql = "SELECT * FROM `zuimoban_sys_enum` $egroupsql $orderby";  
    } else {  
        $egroupsql = '';  
        $sql = "SELECT * FROM `zuimoban_stepselect` ORDER BY id DESC";  
    }  
    //echo $sql;exit;  
    $dlist = new DataListCP();  
    $dlist->SetParameter('egroup',$egroup);  
    $dlist->SetParameter('topvalue',$topvalue);  
    $dlist->SetTemplet(DEDEADMIN."/templets/stepselect_main.htm");  
    $dlist->SetSource($sql);  
    $dlist->display();  
    exit();  
}  
else if($action=='edit' || $action=='addnew' || $action=='addenum' || $action=='view')  
{  
    AjaxHead();  
    include('./templets/stepselect_showajax.htm');  
    exit();  
}  
/*----------------- 
刪除類型或枚舉值 
function __del() { } 
------------------*/  
else if($action=='del')  
{  
    $arr = $dsql->GetOne("SELECT * FROM `zuimoban_stepselect` WHERE id='$id' ");  
    if(!is_array($arr))  
    {  
        ShowMsg("無法獲取分類信息,不允許后續操作!", "stepselect_main.php?".ExecTime());  
        exit();  
    }  
    if($arr['issystem']==1)  
    {  
        ShowMsg("系統內置的枚舉分類不能刪除!", "stepselect_main.php?".ExecTime());  
        exit();  
    }  
    $dsql->ExecuteNoneQuery("DELETE FROM `zuimoban_stepselect` WHERE id='$id'; ");  
    $dsql->ExecuteNoneQuery("DELETE FROM `zuimoban_sys_enum` WHERE egroup='{$arr['egroup']}'; ");  
    ShowMsg("成功刪除一個分類!", "stepselect_main.php?".ExecTime());  
    exit();  
}  
else if($action=='delenumAllSel')  
{  
    if(isset($ids) && is_array($ids))  
    {  
        $id = join(',', $ids);  
  
        $groups = array();  
        $dsql->Execute('me', "SELECT egroup FROM `zuimoban_sys_enum` WHERE id IN($id) GROUP BY egroup");  
        while($row = $dsql->GetArray('me'))  
        {  
            $groups[] = $row['egroup'];  
        }  
  
        $dsql->ExecuteNoneQuery("DELETE FROM `zuimoban_sys_enum` WHERE id IN($id); ");  
  
        //更新緩存  
        foreach($groups as $egropu)   
        {  
            WriteEnumsCache($egroup);  
        }  
  
        ShowMsg("成功刪除選中的枚舉分類!", $ENV_GOBACK_URL);  
    }  
    else  
    {  
        ShowMsg("你沒選擇任何分類!", "-1");  
    }  
    exit();  
}  
else if($action=='delenum')  
{  
    $row = $dsql->GetOne("SELECT egroup FROM `zuimoban_sys_enum` WHERE id = '$id' ");  
    $dsql->ExecuteNoneQuery("DELETE FROM `zuimoban_sys_enum` WHERE id='{$id}'; ");  
    WriteEnumsCache($row['egroup']);  
    ShowMsg("成功刪除一個枚舉!", $ENV_GOBACK_URL);  
    exit();  
}  
/*----------------- 
保存類型修改 
function __edit_save() { } 
------------------*/  
else if($action=='edit_save')  
{  
    if(preg_match("#[^0-9a-z_-]#i", $egroup))  
    {  
        ShowMsg("組名稱不能有全角字符或特殊符號!","-1");  
        exit();  
    }  
    $dsql->ExecuteNoneQuery("UPDATE `zuimoban_stepselect` SET `itemname`='$itemname',`egroup`='$egroup' WHERE id='$id'; ");  
    ShowMsg("成功修改一個分類!", "stepselect_main.php?".ExecTime());  
    exit();  
}  
/*----------------- 
保存新類型 
function __addnew_save() { } 
------------------*/  
else if($action=='addnew_save')  
{  
    if(preg_match("#[^0-9a-z_-]#i", $egroup))  
    {  
        ShowMsg("組名稱不能有全角字符或特殊符號!", "-1");  
        exit();  
    }  
    $arr = $dsql->GetOne("SELECT * FROM `zuimoban_stepselect` WHERE itemname LIKE '$itemname' OR egroup LIKE '$egroup' ");  
    if(is_array($arr))  
    {  
        ShowMsg("你指定的類別名稱或組名稱已經存在,不能使用!","stepselect_main.php");  
        exit();  
    }  
    $dsql->ExecuteNoneQuery("INSERT INTO `zuimoban_stepselect`(`itemname`,`egroup`,`issign`,`issystem`) VALUES('$itemname','$egroup','0','0'); ");  
    WriteEnumsCache($egroup);  
    ShowMsg("成功添加一個分類!","stepselect_main.php?egroup=$egroup");  
    exit();  
}  
/*--------- 
把舊版全國省市表替換當前地區數據 
function __exarea() { } 
----------*/  
else if($action=='exarea')  
{  
    $bigtypes = array();  
    $dsql->ExecuteNoneQuery("DELETE FROM `zuimoban_sys_enum` WHERE egroup='nativeplace'; ");  
    $query = "SELECT * FROM `zuimoban_area` WHERE reid =0 order by id asc";  
    $dsql->Execute('me', $query);  
    $n = 1;  
    while($row = $dsql->GetArray())  
    {  
        $bigtypes[$row['id']] = $evalue = $disorder = $n * 500;  
        $dsql->ExecuteNoneQuery("INSERT INTO `zuimoban_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)  
                                 VALUES('{$row['name']}','$evalue','nativeplace','$disorder','0'); ");  
        $n++;                                  
    }  
    $stypes = array();  
    foreach($bigtypes as $k=>$v)  
    {  
        $query = "SELECT * FROM `zuimoban_area` WHERE reid=$k order by id asc";  
        $dsql->Execute('me', $query);  
        $n = 1;  
        while($row = $dsql->GetArray())  
        {  
            $stypes[$row['id']] = $evalue = $disorder = $v + $n;  
            $dsql->ExecuteNoneQuery("INSERT INTO `zuimoban_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)  
                                   VALUES('{$row['name']}','$evalue','nativeplace','$disorder','0'); ");  
            $n++;   
        }  
    }  
    WriteEnumsCache('nativeplace');  
    ShowMsg("成功導入所有舊的地區數據!", "stepselect_main.php?egroup=nativeplace");  
    exit();  
}  
/*-------------------- 
function __addenum_save() { } 
關于二級枚舉的說明,為了節省查詢速度,二級枚舉是通過特殊算法生成的,原理為 
凡是能被 500 整除的都是一級枚舉,(500 * n) + 1 < em < 500 * (n+1) 為下級枚舉 
如:1000 的下級枚舉對應的值為 1001,1002,1003...1499 
對于 issign=1 的,表示這個類別只有一級枚舉,則不受上面的算法限制 
------------------------------------------------------------------------ 
更新算法: 
新增二級枚舉下添加"-N"自己類別選擇,例如: 
1001二級枚舉下面的3級類目,則為1001-1,1001-2... 
這時候需要issign=2 
---------------------*/  
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 `zuimoban_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);  
                $father = intval(floor($evalue/500))*500;  
            $dsql->ExecuteNoneQuery("INSERT INTO `zuimoban_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`,`father`)   
                                    VALUES('$ename','$evalue','$egroup','$disorder','$issign','$father'); ");   
        }  
        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 `zuimoban_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;  
            }  
             $father = intval(floor($evalue/500))*500;  
            $sql = "INSERT INTO `zuimoban_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`,`father`)   
                                    VALUES('$ename','$evalue','$egroup','$disorder','$issign','$father'); ";  
            // 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 `zuimoban_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;  
            }  
             $father = intval(floor($evalue/500))*500;  
            $dsql->ExecuteNoneQuery("INSERT INTO `zuimoban_sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`,`father`)   
                          VALUES('$ename','$evalue','$egroup','$disorder','$issign','$father'); ");  
        }  
        WriteEnumsCache($egroup);  
        ShowMsg("成功添加枚舉分類!", $ENV_GOBACK_URL);  
        exit();  
    }  
}  
/*----------------- 
修改枚舉名稱和排序 
function __upenum() { } 
------------------*/  
else if($action=='upenum')  
{  
    $ename = trim(preg_replace("# └─(─){1,}#", '', $ename));  
    $row = $dsql->GetOne("SELECT egroup FROM `zuimoban_sys_enum` WHERE id = '$aid' ");  
    WriteEnumsCache($row['egroup']);  
    $dsql->ExecuteNoneQuery("UPDATE `zuimoban_sys_enum` SET `ename`='$ename',`disorder`='$disorder' WHERE id='$aid'; ");  
    ShowMsg("成功修改一個枚舉!", $ENV_GOBACK_URL);  
    exit();  
}  
/*----------------- 
更新枚舉緩存 
function __upallcache() { } 
------------------*/  
else if($action=='upallcache')  
{  
    if(!isset($egroup)) $egroup = '';  
    WriteEnumsCache($egroup);  
    ShowMsg("成更新枚舉緩存!", $ENV_GOBACK_URL);  
    exit();  
}  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕精品在线视频| 日韩av片永久免费网站| 欧美专区在线观看| 国产精品视频免费在线| 日韩欧美国产免费播放| 国产成人综合亚洲| 欧美日韩aaaa| 欧美疯狂做受xxxx高潮| 日韩中文第一页| 国产精品福利无圣光在线一区| 国产成人精品久久二区二区91| 欧美高清videos高潮hd| 欧美高清自拍一区| 亚洲一区久久久| 人人爽久久涩噜噜噜网站| 久久精品青青大伊人av| 欧美精品在线视频观看| 精品日本高清在线播放| 4438全国亚洲精品在线观看视频| 欧美尤物巨大精品爽| 国产美女直播视频一区| 亚洲成人激情在线观看| 欧美成人在线免费视频| 国产成人精品在线播放| 精品国产成人av| 中文字幕国产精品| 亚洲精美色品网站| 91精品视频在线播放| 色诱女教师一区二区三区| 欧美成人精品在线| 伊人成人开心激情综合网| 亚洲视频国产视频| 日日摸夜夜添一区| 久久天天躁狠狠躁夜夜av| 一区二区三区视频在线| 91精品国产高清久久久久久91| 国产精品视频xxx| 精品亚洲一区二区三区四区五区| 日韩欧美在线观看| 欧美精品在线免费观看| 日韩成人在线电影网| 少妇高潮久久久久久潘金莲| 91伊人影院在线播放| 91精品国产高清自在线看超| 97在线视频一区| 91精品国产精品| 国产91色在线|免| 中文字幕免费精品一区| 国产精品成人久久久久| 大伊人狠狠躁夜夜躁av一区| 国产精品久久久久久久久久东京| 久久综合色88| 黄色91在线观看| 久久中文字幕在线| 欧美性猛交xxxx乱大交极品| 欧美性xxxxxx| 91老司机在线| 日韩视频中文字幕| 51午夜精品视频| 国产精品高潮呻吟久久av野狼| 91精品国产免费久久久久久| 国产黑人绿帽在线第一区| 国产精品jizz在线观看麻豆| 中文字幕9999| 国产精品99久久久久久白浆小说| 精品动漫一区二区| 亚洲精品第一国产综合精品| 国产精品一区二区三区免费视频| 日韩中文字幕在线播放| 久久久成人精品| 久久99久久99精品中文字幕| 精品高清美女精品国产区| 欧美刺激性大交免费视频| 亚洲一级一级97网| 97久久精品在线| 国产精品高清免费在线观看| 欧美激情视频一区| 91亚洲人电影| 欧美成人手机在线| 美女久久久久久久| 97久久精品在线| 一区二区三区四区在线观看视频| 亚洲成人精品久久| 国产精品av在线| 欧美精品久久久久久久久久| 日韩在线视频免费观看| 亚洲а∨天堂久久精品喷水| 欧美xxxx18性欧美| 亚洲女人被黑人巨大进入| 成人有码视频在线播放| 久久久久中文字幕2018| 国产精品自产拍在线观| 日韩人体视频一二区| 亚洲精品97久久| 国产精品久久久久免费a∨大胸| 国产精品高精视频免费| 国产在线视频91| 中文字幕亚洲综合| 国产精品扒开腿做| 久久伊人精品天天| 中文字幕国产日韩| 亚洲精品成人久久| 日韩免费观看av| 久久久免费av| 国产一区二区三区视频免费| www.久久久久久.com| 日韩中文字幕在线视频播放| 国产精品美女www| 国产精品极品美女在线观看免费| 日韩欧美一区二区三区久久| 亚洲国产日韩欧美在线图片| 日韩久久免费视频| 97在线看免费观看视频在线观看| 国产精自产拍久久久久久蜜| 91精品在线一区| 一区二区三区亚洲| 91精品久久久久久久久| 久久久久久久成人| 日韩av一卡二卡| 国产www精品| 亚洲白虎美女被爆操| 日本精品视频在线| 亚洲国产99精品国自产| 国产精品成熟老女人| 国产91ⅴ在线精品免费观看| 欧美黄色性视频| 亚洲字幕一区二区| 日韩中文字幕亚洲| 精品中文字幕在线| 最近2019中文字幕在线高清| 美女啪啪无遮挡免费久久网站| 国产精品激情av在线播放| 少妇高潮 亚洲精品| 精品无人区乱码1区2区3区在线| www.日韩不卡电影av| 亚洲成色www8888| 久久久久久久香蕉网| 97在线免费视频| 国产精品第七十二页| 日韩欧美999| 欧美午夜激情视频| 91av福利视频| 亚洲欧美制服中文字幕| 国产亚洲精品成人av久久ww| 成人伊人精品色xxxx视频| 欧美成人小视频| 清纯唯美亚洲激情| 欧美精品中文字幕一区| 夜夜嗨av一区二区三区免费区| 一道本无吗dⅴd在线播放一区| 在线成人中文字幕| 国产欧美日韩91| 中文字幕综合一区| 国产综合久久久久| 亚洲一区二区三区四区视频| 日韩高清a**址| 91精品国产自产在线观看永久| 一区二区三区视频在线| 欧美日韩亚洲精品一区二区三区| 久久精品久久久久久国产 免费| 成人精品久久久| 亚洲第一天堂无码专区| 亚洲欧美成人在线| 日韩精品日韩在线观看|