重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

phpcms网站建设中,联动菜单怎样读取?联动菜单菜单调用方法?

phpcms目前是国内非常出名的一套cms 系统,它可以很方便的供开发人员进行二次开发使用,给我们增添了许多方便之处,那么我们今天来看一下用phpcms网站制作中二级联动菜单应该怎么样读取呢?请看下列文章

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

  1. {get_linkage($areaid,1,' >> ',1)}

创新互联建站-专业网站定制、快速模板网站建设、高性价比黄冈网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式黄冈网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖黄冈地区。费用合理售后完善,10多年实体公司更值得信赖。

复制代码


显示效果: 成都市 >> 朝阳区 >> 永定路 [注意字段名字为 areaid]

如果你要在列表页或者其他地方调用,除了内容页,他们有个共同点,都是在 loop 循环体里.变量书写格式就需要修改,比如:

  1. {get_linkage($r['areaid'],1,' >> ',1)}

复制代码


当然这个 $r 也不是绝对的.要看你的loop 是如何写的.
{loop $data $n $r} 如果是这样写的,就是 $r['areaid'] .
另外必须保证此字段被正确读取有值.

下面是global.func.php文件里函数get_linkage :

  1.  
  2. /**
  3. * 通过id获取显示联动菜单
  4. * @param  $linkageid 联动菜单ID
  5. * @param  $keyid 菜单keyid
  6. * @param  $space 菜单间隔符
  7. * @param  $result 递归使用字段1
  8. * @param  $infos 递归使用字段2
  9. */
  10. function get_linkage($linkageid, $keyid, $space = '>', $type = 1, $result = array(), $infos = array()) {
  11. if($space=='' || !isset($space))$space = '>';
  12. if(!$infos) {
  13.   $datas = getcache($keyid,'linkage');
  14.   $infos = $datas['data'];
  15. }
  16. if($type == 1 ) {
  17.   if(array_key_exists($linkageid,$infos)) {
  18.    $result[]=$infos[$linkageid]['name'];
  19.    return get_linkage($infos[$linkageid]['parentid'], $keyid, $space, $type, $result, $infos);
  20.   } else {
  21.    if(count($result)>0) {
  22.     krsort($result);
  23.     $result = implode($space,$result);
  24.     return $result;
  25.    }
  26.    else {
  27.     return $result;
  28.    }
  29.   }
  30. } else {
  31.   return $infos[$linkageid]['name'];
  32. }   
  33. }

复制代码



共有六个参数,尤其是前两个,不要搞颠倒了. $linkageid, $keyid . 第一个$linkageid是菜单id,你发布的时候选择的最终极菜单id,$keyid是菜单keyid,后台默认的联动菜单中国的keyid就是1.有点绕口,确实,这俩菜单id是一回事,但是他们的层级不一样.keyid就是大的那个父id,linkageid是子级id.第三个$space就是连接符号,第四个$type就是调用内容,如果是1就调用完整的,如果设置为0就调用最终极的,即如果是0就只显示朝阳区。默认为1的。

怎么样,phpcms网站制作中的,二级联动菜单调用你会了吗?
标题名称:phpcms网站建设中,联动菜单怎样读取?联动菜单菜单调用方法?
文章分享:http://cqcxhl.com/article/sccssh.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP