找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 109|回复: 0

[cms教程] phpcms v9联动菜单的调用方法及get_linkage函数详解

[复制链接]

该用户从未签到

发表于 2019-3-24 16:12:00 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
phpcms v9联动菜单的调用方法及get_linkage函数详解
{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的。
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-11-16 10:15

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表