疆飞
.NET永远年轻,永远热泪盈眶...
展开边栏 收起边栏
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)}
文章搜索
联系疆飞
- QQ932557101
- emailmail@jiangfei.net
- weibo@疆飞 (@jiangfei1006)
- twitter@疆飞 (@jiangfei1006)
PS:没事不要瞎联系,除非你想请我吃饭...
热门标签更多
Copyright © 2008-. JiangFei.net all rights reserved
苏公网安备32048202001026号苏ICP备18062911号