zoukankan      html  css  js  c++  java
  • phpcms v9联动菜单的调用方法_详解get_linkage函数

    phpcms v9联动菜单调用方法[此为内容页调用方法]:

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

  • 相关阅读:
    Android 废弃方法属性解决
    Android RecycleView分组
    Android 第三方库FlycoTabLayout
    Android 自定义dialog出现的位置
    Android 底部弹窗实现
    Android 自定义设置布局
    Android 微信、qq分享文本 (Intent)
    SpringBoot关于跨域的三种解决方案
    记录一次通用Mapper+自定义mapper出现的问题分析以及排查
    IDEA配置Maven+新建Maven项目
  • 原文地址:https://www.cnblogs.com/semcoding/p/3358756.html
Copyright © 2011-2022 走看看