POST TIME:2018-01-08 21:50
織夢dedecms首頁調(diào)用分類信息聯(lián)動類別(地區(qū),類型等)的方法如下:
需要注意:這個方法只適用于dedecms V5.5,V5.6,V5.7
dede模板系統(tǒng)中默認(rèn)是沒有辦法調(diào)用枚舉名(聯(lián)動菜單名稱)的,而只能調(diào)用枚舉值,為了方便大家在以后制作模板,今天就給大家?guī)硪粋€自定義的全局函數(shù),有了這個函數(shù),以后在調(diào)用聯(lián)動菜單的時候就非常方便了。
一、遇到問題描述
我們知道,聯(lián)動菜單它是保存到了附加表里,我們在arclist標(biāo)簽中,要調(diào)用自定義附加表的字段,只能是通過:
{dede:arclist row='5' channelid='內(nèi)容模型ID' addfields='自定義字段'}
insertext
{/dede:arclist}
這種方法來調(diào)用,比如以下這個實例:
{dede:arclist titlelen='60' row='8' channelid='1' addfields='nativeplace'}
<li><span>[field:nativeplace/]</span><a href="[field:arcurl /]">[field:title /]</a></li>
{/dede:arclist}
這個的意思是調(diào)用普通文章8條,并調(diào)用附加表中的nativeplace字段(注意:該字段是聯(lián)動類別),但是調(diào)用的結(jié)果就是枚舉值,是數(shù)字,不是地區(qū)。
二、解決方法
1)函數(shù)編寫
打開 /include/extend.func.php 文件(這個文件為自定義函數(shù)接口文件,若不存在,請自行創(chuàng)建),在最后一行的?>上添加如下代碼:
function Getsysenum($fields){
global $dsql;
$row = $dsql->GetOne("select * from dede_sys_enum where evalue = '".$fields."'");
if(!is_array($row)){
return "<font color='red'>聯(lián)動類別不存在</font>";
}
else{
return $row['ename'];
}
}
保存關(guān)閉即可!
2)函數(shù)調(diào)用
這個函數(shù)的調(diào)用非常簡單,只需要將“枚舉值”傳遞過來即可,這個緩存組名通常也就是內(nèi)容模型中的自定義聯(lián)動菜單字段名:
function Getsysenum(‘枚舉值');
3)調(diào)用實例
我們來看一下調(diào)用的實例代碼:
{dede:arclist titlelen='60' row='8' channelid='1' addfields='nativeplace'}
<li><span>[field:nativeplace function="Getsysenum(@me)"/]</span><a href="[field:arcurl /]">[field:title /]</a></li>
{/dede:arclist}
其中[field:nativeplace function="Getsysenum(@me)"/] 就是將nativeplace字段進行Getsysenum函數(shù)處理。
這樣就可以解決這個調(diào)用的問題了。