《CMS系統:phpcms v9聯動菜單的調用方法及get_linkage函數詳解》要點:
本文介紹了CMS系統:phpcms v9聯動菜單的調用方法及get_linkage函數詳解,希望對您有用。如果有疑問,可以聯系我們。
相關主題:PHPCMS教程
導讀:{get_linkage($areaid,1,' >> ',1)}顯示效果:
PHPCMS吧 >> 模板下載 >> PHPCMS模板 [字段名字為 areaid]如果你要在列表頁...
{get_linkage($areaid,1,' >> ',1)}?顯示效果: PHPCMS吧 >> 模板下載 >> PHPCMS模板 [字段名字為 areaid]?如果你要在列表頁或者其他地方調用,除了內容頁,他們有個共同點,都是在 loop 循環體里.變量書寫格式就需要修改,比如:?{get_linkage($r['areaid'],1,' >> ',1)}?復制代碼?當然這個 $r 也不是絕對的.要看你的loop 是如何寫的.?{loop $data $n $r} 如果是這樣寫的,就是 $r['areaid'] .?另外必須保證此字段被正確讀取有值.?下面是global.func.php文件里函數get_linkage :?
/**?
* 通過id獲取顯示聯動菜單?
* @param $linkageid 聯動菜單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'];?
}?
}?
共有六個參數,尤其是前兩個,不要搞顛倒了. $linkageid, $keyid . 第一個$linkageid是菜單id,你發布的時候選擇的最終極菜單id,$keyid是菜單keyid,后臺默認的聯動菜單PHPCMS吧的keyid就是1.有點繞口,確實,這倆菜單id是一回事,但是他們的層級不一樣.keyid就是最大的那個父id,linkageid是子級id.第三個$space就是連接符號,第四個$type就是調用內容,如果是1就調用完整的,如果設置為0就調用最終極的,即如果是0就只顯示PHPCMS模板.默認為1的.?轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/5830.html