• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    phpcms v9联动菜单的调用方法及get_linkage函数详解

    发布者: 网神之王 | 发布时间: 2025-7-24 16:10| 查看数: 60| 评论数: 0|帖子模式

    {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的。

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

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