PHPCMS联动菜单的调用函数get_linkage方法详解
v9联动菜单调用方法[注意此为内容页调用方法
{get_linkage($areaid,1,' >> ',1)}
显示效果: 湖北省 >> 武汉市 >> 汉阳区 [字段名字为 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,后台默认的联动菜单中国的keyid就是1.有点绕口,确实,这俩菜单id是一回事,但是他们的层级不一样.keyid就是最大的那个父id,linkageid是子级id.第三个$space就是连接符号,第四个$type就是调用内容,如果是1就调用完整的,如果设置为0就调用最终极的,即如果是0就只显示汉阳区。默认为1的。
PHPCMS联动菜单的调用函数get_linkage方法详解的更多相关文章
- 【转】Python的hasattr() getattr() setattr() 函数使用方法详解
Python的hasattr() getattr() setattr() 函数使用方法详解 hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值 ...
- java本地方法如何调用其他程序函数,方法详解2
Java调用本地方法(JNI浅谈) (2006-11-27 14:55:36) 转载▼ 分类: Java类文章 本人在项目开发实践中的总结和体会 前段时间公司 ...
- java本地方法如何调用其他程序函数,方法详解
JNI是Java Native Interface的缩写,中文为JAVA本地调用.从Java 1.1 开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许J ...
- JavaScript系列--JavaScript数组高阶函数reduce()方法详解及奇淫技巧
一.前言 reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值. reduce() 可以作为一个高阶函数,用于函数的 compose. reduce()方 ...
- java如何去调用C++的方法详解
这是一个调用c++ jni 的列子 首先写一个GoodLuck 类,里面包含native本地方法,这是用作C/C++实现的.也就是用C/c++实现java的native 方法.public class ...
- Typescript 常见的几种函数重载方法详解与应用示例
所谓的重载,其实就是使用相同的函数名,传入不同数量的参数或不同类型的参数,以此创建出多个方法或产生不同结果. 1. 最常见的,也就是根据定义傻瓜式地判断参数类型与数量 function showPer ...
- Python标准库:内置函数hasattr() getattr() setattr() 函数使用方法详解
hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False.参数object是一个对象 ...
- python eval() hasattr() getattr() setattr() 函数使用方法详解
eval() 函数 --- 将字符串str当成有效的表达式来求值并返回计算结果. 语法:eval(source[, globals[, locals]]) ---> value 参数: sour ...
- Python的hasattr() getattr() setattr() 函数使用方法详解
hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False.需要注意的是name要用括号括起来 1 ...
随机推荐
- c# 支付宝查单补单
谁谁谁手机那边支付宝支付成功扣钱了,游戏里面却没有充钱,唯有写个补单程序. 首先要查单,查单接口(交易信息查询接口:https://mapi.alipay.com/gateway.do),服务名称:s ...
- Linux操作系统学习笔记
关于Linux详细介绍可以参见:http://blog.csdn.net/hguisu/article/details/6122513 关于Linux的常用命令可以参见:http://blog.csd ...
- Android RadioGroup设置默认选中项
今天有人问.Android 里面 RadioGroup里面有两个RadioButton怎么设置默认值? 第一个RadioButton设置 android:checked="true" ...
- vbs脚本要求在cmd中输入输出用StdIn ,StdOut
Dim StdIn, StdOutSet StdIn = WScript.StdInSet StdOut = WScript.StdOut Do While Not StdIn.AtEndOfStre ...
- 为什么C++中空类和空结构体大小为1?(转载)
原文链接:http://www.spongeliu.com/260.html 对于结构体和空类大小是1这个问题,首先这是一个C++问题,在C语言下空结构体大小为0(当然这是编译器相关的).这里的空类和 ...
- VM 虚拟机 Error 1324. The path My Documents contains a invalid chara 。
当安装VM(虚拟机)时,安装到一半时,提示:Error 1324. The path My Documents contains a invalid chara . 就是提示路径无效. 按下面的路径: ...
- BCB中获得RichEdit 默认行间距
首先,这些功能支持RichEdit2.0 以上功能: 其次,用常规的方法是无法获得LineSpace 的: 你使用 EM_GETPARAFORMAT也得不到,你会发现dyLineSpacing 的值永 ...
- Allegro转换PADS终极篇(转载)
Allegro转换PADS终极篇.....http://www.eda365.com/forum.php?mod=viewthread&tid=86947&fromuid=190625 ...
- 如果页面引用了外部JS代码,会被IE缓存的解决方法
在使用jquery时特别常见,明明修改的js,但是经常不生效,因为缓存,解决办法就是清除ie缓存,每次去点ie选项,太麻烦,网上有人用批处理去,还是每次去点,在页面中加入下面几行,就可以禁用缓存 &l ...
- ABP的事件总线和领域事件(EventBus & Domain Events)
http://www.aspnetboilerplate.com/Pages/Documents/EventBus-Domain-Events EventBus EventBus是个单例,获得Even ...