phpcms v9聯(lián)動(dòng)菜單的調(diào)用方法及get_linkage函數(shù)詳解
發(fā)布時(shí)間:2013-09-16 17:05:01 作者:佚名
我要評(píng)論
聯(lián)動(dòng)菜單,想必大家對(duì)對(duì)它并不陌生吧,下面為大家介紹下它的調(diào)用方法及get_linkage函數(shù)的使用詳解,感興趣的朋友可以參考下,希望對(duì)大家有所幫助
{get_linkage($areaid,1,' >> ',1)}
顯示效果: PHPCMS吧 >> 模板下載 >> PHPCMS模板 [字段名字為 areaid]
如果你要在列表頁(yè)或者其他地方調(diào)用,除了內(nèi)容頁(yè),他們有個(gè)共同點(diǎn),都是在 loop 循環(huán)體里.變量書(shū)寫(xiě)格式就需要修改,比如:
{get_linkage($r['areaid'],1,' >> ',1)}
復(fù)制代碼
當(dāng)然這個(gè) $r 也不是絕對(duì)的.要看你的loop 是如何寫(xiě)的.
{loop $data $n $r} 如果是這樣寫(xiě)的,就是 $r['areaid'] .
另外必須保證此字段被正確讀取有值.
下面是global.func.php文件里函數(shù)get_linkage :
/**
* 通過(guò)id獲取顯示聯(lián)動(dòng)菜單
* @param $linkageid 聯(lián)動(dòng)菜單ID
* @param $keyid 菜單keyid
* @param $space 菜單間隔符
* @param $result 遞歸使用字段1
* @param $infos 遞歸使用字段2
*/
function get_linkage($linkageid, $keyid, $space = '>', $type = 1, $result = array(), $infos = array()) {
if($space=='' || !isset($space))$space = '>';
if(!$infos) {
$datas = getcache($keyid,'linkage');
$infos = $datas['data'];
}
if($type == 1 ) {
if(array_key_exists($linkageid,$infos)) {
$result[]=$infos[$linkageid]['name'];
return get_linkage($infos[$linkageid]['parentid'], $keyid, $space, $type, $result, $infos);
} else {
if(count($result)>0) {
krsort($result);
$result = implode($space,$result);
return $result;
}
else {
return $result;
}
}
} else {
return $infos[$linkageid]['name'];
}
}
共有六個(gè)參數(shù),尤其是前兩個(gè),不要搞顛倒了. $linkageid, $keyid . 第一個(gè)$linkageid是菜單id,你發(fā)布的時(shí)候選擇的最終極菜單id,$keyid是菜單keyid,后臺(tái)默認(rèn)的聯(lián)動(dòng)菜單PHPCMS吧的keyid就是1.有點(diǎn)繞口,確實(shí),這倆菜單id是一回事,但是他們的層級(jí)不一樣.keyid就是最大的那個(gè)父id,linkageid是子級(jí)id.第三個(gè)$space就是連接符號(hào),第四個(gè)$type就是調(diào)用內(nèi)容,如果是1就調(diào)用完整的,如果設(shè)置為0就調(diào)用最終極的,即如果是0就只顯示PHPCMS模板。默認(rèn)為1的。
顯示效果: PHPCMS吧 >> 模板下載 >> PHPCMS模板 [字段名字為 areaid]
如果你要在列表頁(yè)或者其他地方調(diào)用,除了內(nèi)容頁(yè),他們有個(gè)共同點(diǎn),都是在 loop 循環(huán)體里.變量書(shū)寫(xiě)格式就需要修改,比如:
{get_linkage($r['areaid'],1,' >> ',1)}
復(fù)制代碼
當(dāng)然這個(gè) $r 也不是絕對(duì)的.要看你的loop 是如何寫(xiě)的.
{loop $data $n $r} 如果是這樣寫(xiě)的,就是 $r['areaid'] .
另外必須保證此字段被正確讀取有值.
下面是global.func.php文件里函數(shù)get_linkage :
復(fù)制代碼
代碼如下:/**
* 通過(guò)id獲取顯示聯(lián)動(dòng)菜單
* @param $linkageid 聯(lián)動(dòng)菜單ID
* @param $keyid 菜單keyid
* @param $space 菜單間隔符
* @param $result 遞歸使用字段1
* @param $infos 遞歸使用字段2
*/
function get_linkage($linkageid, $keyid, $space = '>', $type = 1, $result = array(), $infos = array()) {
if($space=='' || !isset($space))$space = '>';
if(!$infos) {
$datas = getcache($keyid,'linkage');
$infos = $datas['data'];
}
if($type == 1 ) {
if(array_key_exists($linkageid,$infos)) {
$result[]=$infos[$linkageid]['name'];
return get_linkage($infos[$linkageid]['parentid'], $keyid, $space, $type, $result, $infos);
} else {
if(count($result)>0) {
krsort($result);
$result = implode($space,$result);
return $result;
}
else {
return $result;
}
}
} else {
return $infos[$linkageid]['name'];
}
}
共有六個(gè)參數(shù),尤其是前兩個(gè),不要搞顛倒了. $linkageid, $keyid . 第一個(gè)$linkageid是菜單id,你發(fā)布的時(shí)候選擇的最終極菜單id,$keyid是菜單keyid,后臺(tái)默認(rèn)的聯(lián)動(dòng)菜單PHPCMS吧的keyid就是1.有點(diǎn)繞口,確實(shí),這倆菜單id是一回事,但是他們的層級(jí)不一樣.keyid就是最大的那個(gè)父id,linkageid是子級(jí)id.第三個(gè)$space就是連接符號(hào),第四個(gè)$type就是調(diào)用內(nèi)容,如果是1就調(diào)用完整的,如果設(shè)置為0就調(diào)用最終極的,即如果是0就只顯示PHPCMS模板。默認(rèn)為1的。
相關(guān)文章
完美解決phpcms圖片太大撐破表格圖片自適應(yīng)圖片按比例縮小
下面小編就為大家?guī)?lái)一篇完美解決phpcms圖片太大撐破表格圖片自適應(yīng)圖片按比例縮小。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-18- 這篇文章主要介紹了PHPCMS v9 安全設(shè)置、防范教程,需要的朋友可以參考下2016-09-05
PHPCMS V9 全站 Sitemaps生成實(shí)現(xiàn)代碼[服務(wù)器端版]
這篇文章主要介紹了PHPCMS V9 全站 Sitemaps生成實(shí)現(xiàn)代碼[服務(wù)器端版],需要的朋友可以參考下2016-06-08phpcms內(nèi)容詳情頁(yè)只顯示日期不顯示時(shí)間的方法
這篇文章主要介紹了phpcms內(nèi)容詳情頁(yè)只顯示日期不顯示時(shí)間的方法,即格式化時(shí)間輸出的方法,需要的朋友可以參考下2015-06-19- 這篇文章主要介紹了PHPCMS制作網(wǎng)站地圖的簡(jiǎn)單方法,本文給出了操作步驟及標(biāo)簽源碼,需要的朋友可以參考下2015-06-19
- 這篇文章主要介紹了PHPCMSV9父欄目調(diào)用子欄目的方法,本文講解了在二級(jí)欄目列表頁(yè)調(diào)用、在一級(jí)欄目列表頁(yè)調(diào)用兩種方法方式,需要的朋友可以參考下2015-06-19
PHPCMS使用date函數(shù)實(shí)現(xiàn)自動(dòng)更新頁(yè)腳年月的方法
這篇文章主要介紹了PHPCMS使用date函數(shù)實(shí)現(xiàn)自動(dòng)更新頁(yè)腳年月的方法,本文主要還是可以學(xué)習(xí)到date函數(shù)的用法了,需要的朋友可以參考下2015-06-19- 這篇文章主要介紹了phpsso忘記密碼的解決辦法,本文用PHPCMS的密碼及encrypt值替換數(shù)據(jù)表解決了這個(gè)問(wèn)題,方法還是挺靠譜的,只是操作要求有點(diǎn),需要的朋友可以參考下2015-06-19
phpcms 退出無(wú)法同步通知discuz問(wèn)題的解決方法
這篇文章主要介紹了phpcms 退出無(wú)法同步通知discuz問(wèn)題的解決方法,需要的朋友可以參考下2014-12-15phpcms v9列表頁(yè)如何調(diào)用子欄目如首頁(yè)>產(chǎn)品中心>產(chǎn)品類(lèi)型a
phpcms v9列表頁(yè)如何調(diào)用子欄目如:首頁(yè)>產(chǎn)品中心>產(chǎn)品類(lèi)型a>產(chǎn)品類(lèi)型a11,在列表頁(yè)產(chǎn)品類(lèi)型a中,包括產(chǎn)品類(lèi)型a1、產(chǎn)品類(lèi)型a2、產(chǎn)品類(lèi)型a32014-09-24

