帝國(guó)cms模板教程之欄目自定義字段調(diào)用教程及代碼

字號(hào):


    首先說(shuō)一下,我這里用的到帶模板的欄目導(dǎo)航標(biāo)簽(showclasstemp),用其它標(biāo)簽需要修改其它函數(shù),但我相信萬(wàn)變不離其中,原理都是一樣的,為了讓大家學(xué)會(huì)這個(gè)東東,我就從簡(jiǎn)單的開始說(shuō)起
    一、首先點(diǎn)模板管理,找到左邊從最下面往上數(shù)第三個(gè),其中有一個(gè)標(biāo)簽管理,點(diǎn)擊后在右邊找到showclasstemp這個(gè)標(biāo)簽,點(diǎn)擊修改后可以看到該標(biāo)簽所使用的函數(shù)名稱(sys_ShowClassByTemp),我們需要修改的就是這個(gè)函數(shù)
    二、我在我自己做的站中增加了兩個(gè)自定義字段(pic,entitle),一個(gè)是欄目前面顯示的小圖標(biāo),一個(gè)是英文名
    三、打開e/class/t_functions.php 這個(gè)文件,帽似帝國(guó)的函數(shù)處理都 在這個(gè)文件中進(jìn)行
    四、現(xiàn)在仔細(xì)看看第一步中找到的那個(gè)函數(shù)名,記下來(lái),在t_functions.php這個(gè)文件中找到他,7.0測(cè)試版大概是在1574行,6.6的大概在1889行,在這個(gè)函數(shù)中找到下面的代碼:
    1
    2
    3
    4
    $sql=$empire->query("select classid,classname,islast,sonclass,tbname,intro,classimg from {$dbtbpre}enewsclass where bclassid='$classid' and showclass=0 order by myorder,classid".$limit);
    替換成以下代碼:
    $sql=$empire->query("SELECT C.classid,C.classname,C.islast,C.islast,C.tbname,C.intro,C.classid,C.classimg,C.infos,D.classid,D.pic,D.entitle FROM {$dbtbpre}enewsclass C LEFT JOIN {$dbtbpre}enewsclassadd D ON C.classid=D.classid where C.bclassid='$classid' and C.showclass=0 order by myorder,C.classid
    ".$limit);
    這里說(shuō)下這是什么意思,高手請(qǐng)飄過(guò),呵呵
    帝國(guó)的這個(gè)欄目字段跟自定義欄目字段不在同一個(gè)表中,所以他原來(lái)的單一查詢就查不到自定字段的值,這里我們只需要把這個(gè)查詢改成復(fù)合查詢,把自定義字段的表帶進(jìn)來(lái)一起查詢就可以了
    呵呵
    剛才的查詢我們己經(jīng)可以把數(shù)據(jù)查到了,現(xiàn)在需要做的就是替換到模板里面去就OOK 了,繼續(xù)!
    五、找到以下代碼,把我們添加的字段變量加進(jìn)去
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    //替換變量
    $bclassname=$class_r[$classid][classname];
    $br[classid]=$classid;
    $bclassurl=sys_ReturnBqClassname($br,9);
    $listtemp=str_replace("[!--bclassname--]",$bclassname,$listtemp);
    $listtemp=str_replace("[!--bclassurl--]",$bclassurl,$listtemp);
    $listtemp=str_replace("[!--bclassid--]",$classid,$listtemp);
    修改為:
    //替換變量
    $bclassname=$class_r[$classid][classname];
    $br[classid]=$classid;
    $bclassurl=sys_ReturnBqClassname($br,9);
    $listtemp=str_replace("[!--pic--]",$pic,$listtemp);
    $listtemp=str_replace("[!--entitle--]",$entitle,$listtemp);
    $listtemp=str_replace("[!--bclassname--]",$bclassname,$listtemp);
    $listtemp=str_replace("[!--bclassurl--]",$bclassurl,$listtemp);
    $listtemp=str_replace("[!--bclassid--]",$classid,$listtemp);
    六,最后一步:
    把變量替換到模板中,找到以下代碼:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    //欄目名稱
    $listtemp=str_replace("[!--classname--]",$r[classname],$listtemp);
    //欄目id
    $listtemp=str_replace("[!--classid--]",$r[classid],$listtemp);
    //欄目圖片
    if(empty($r[classimg]))
    {
    $r[classimg]=$public_r[newsurl]."e/data/images/notimg.gif";
    }
    $listtemp=str_replace("[!--classimg--]",$r[classimg],$listtemp);
    //欄目簡(jiǎn)介
    $listtemp=str_replace("[!--intro--]",nl2br($r[intro]),$listtemp);
    //記錄數(shù)
    $listtemp=str_replace("[!--num--]",$num,$listtemp);
    //序號(hào)
    $listtemp=str_replace("[!--no--]",$no,$listtemp);
    return $listtemp;
    在這上面增加幾行,修改后的代碼如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //欄目小圖標(biāo)
    $listtemp=str_replace("[!--pic--]",$r[pic],$listtemp);
    //欄目英文名
    $listtemp=str_replace("[!--entitle--]",$r[entitle],$listtemp);
    //欄目名稱
    $listtemp=str_replace("[!--classname--]",$r[classname],$listtemp);
    //欄目id
    $listtemp=str_replace("[!--classid--]",$r[classid],$listtemp);
    //欄目圖片
    if(empty($r[classimg]))
    {
    $r[classimg]=$public_r[newsurl]."e/data/images/notimg.gif";
    }
    $listtemp=str_replace("[!--classimg--]",$r[classimg],$listtemp);
    //欄目簡(jiǎn)介
    $listtemp=str_replace("[!--intro--]",nl2br($r[intro]),$listtemp);
    //記錄數(shù)
    $listtemp=str_replace("[!--num--]",$num,$listtemp);
    //序號(hào)
    $listtemp=str_replace("[!--no--]",$no,$listtemp);
    return $listtemp;
    七、還有最后一步,最要緊,至關(guān)重要的,絕對(duì)不能丟掉的,千萬(wàn)要注意的就是
    呵呵,在showclasstemp調(diào)用的標(biāo)簽?zāi)0逯杏浀眉由险{(diào)用代碼,怎么調(diào)用呢,就特別特別特別特別滴輕松了,看看我是怎么調(diào)用的,
    1
    <li><span><img src="[!--pic--]" width="19" height="21" /></span><a href="[!--classurl--]">[!--classname--]</a><b>[!--entitle--]</b></li>