POST TIME:2018-09-02 12:49
第一步:channelunit.func.php中添加如下函數(shù)
//參數(shù)說(shuō)明:第1個(gè)參數(shù)是從信息表里讀取出來(lái)的類別ID,第2個(gè)參數(shù)是聯(lián)動(dòng)菜單類別 //這樣這個(gè)函數(shù)就不限于只調(diào)用分類信息的信息類別了,還可以用于其它地方
function GetInfoType($tid,$bigt) { global $dsql; $typename = ”; $query = "Select ename From `dede_sys_enum` where evalue=$tid and egroup=’$bigt’"; $dsql->Execute(‘ename’,$query); while($row = $dsql->GetArray(‘ename’)) { $typename .= ($typename==” ? $row['ename'] : ‘,’.$row['ename']); } return $typename; }(V5.3)加到includecommon.func.php文件的//自定義函數(shù)接口上面。
第二步:在前臺(tái)頁(yè)面
請(qǐng)用{dede:arclist row=14 titlelen=32 noflag=’h’ addfields=’nativeplace’ channelid=’1′}
<li>[[field:nativeplace function=GetInfoType(@me,'nativeplace')/]] <a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
來(lái)調(diào)試。
代碼解釋:
1.addfields=’nativeplace’ channelid=’1′這個(gè)是調(diào)用的附加表字段;
①. 為什么要調(diào)用附加表字段?
因?yàn)槁?lián)動(dòng)菜單的值就是存到附加表里面的,你仔細(xì)想想你有沒(méi)有自己加過(guò)自定義聯(lián)動(dòng)菜單字段!
②. channelid參數(shù)是什么意思?
告訴解析函數(shù)你的附加表在哪個(gè)表!這里告訴的是附加表的ID,那么內(nèi)容模型里面的ID對(duì)應(yīng)的附加表你相信程序會(huì)自動(dòng)幫你找到的。
2.[field:nativeplace /] 這一個(gè)就是調(diào)用的文檔聯(lián)動(dòng)菜單的枚舉值。附加表存儲(chǔ)的也就是聯(lián)動(dòng)類別里對(duì)應(yīng)的枚舉值的值而已。
3. function=GetInfoType 這個(gè)就是我們上面的自定義函數(shù)調(diào)用!這點(diǎn)是不能變的。
4.(@me,’nativeplace’) 這里面有兩個(gè)變量,第一個(gè)為@me 它的意思是當(dāng)前值,固定不變的,說(shuō)白了就是告訴我們上面那個(gè)自定義函數(shù)要查詢的枚舉值的值。第二個(gè),是聯(lián)動(dòng)菜單的緩存組名,一般與前面的那個(gè) [field:nativeplace/]中的紅色nativeplace 字段名保持一致即可。
