菜单
展开边栏 收起边栏

phpcms联动菜单调用方式

phpcms有很强大的联动菜单功能,很多童鞋想必也在用,但是在使用前台调用的时候可能会遇到一点的问题,你可能已经发现了,在数据库里记录的并不是我们所选择的内容,而是ID,那么这里如果想在前台正确输出联动菜单所选的内容就要使用 get_linkage 函数了,下面就是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'];  
}  
}  

 

例如我们调用phpcms行政区域的联动菜单,已知我们的字段为 areaid ,调用时需要使用 {get_linkage($areaid,1,' ',1)} 或者 {get_linkage($areaid,1,' >',1)},这里的两个1是指联动菜地的ID,我标红的>符号是指分隔符,当然如果什么都不写就没有分隔符了。想用什么样的分隔符就看你自己喜欢了。

还有一点是新手比较容易忽略的,就是 在loop循环里别忘记数据标签,例如 {loop $data $r} 要写 {get_linkage($r[areaid],1,' ',1)}

 

 

 

Copyright © 2008-. JiangFei.net all rights reserved 苏ICP备18062911号