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

    详解织梦dedecms5.7 无限级多级栏目菜单调用方法

    发布者: 浪子 | 发布时间: 2025-7-24 17:24| 查看数: 67| 评论数: 0|帖子模式

    以前在用到5.7无限级栏目列表菜单时下载了网上的资料都未成功,因此我参考网上及dedecms本身的channel.lib.php及cattree.lib.php制作了调用标签。
            1、在include\taglib建立randomartlist.lib.php
            内容如下:
      CAttribute->Items,$attlist);    extract($ctag->CAttribute->Items, EXTR_SKIP);    $revalue = '';    //读取固定的缓存块    $cacheid = trim($cacheid);    if($cacheid !='') {        $revalue = GetCacheBlock($cacheid);        if($revalue != '') return $revalue;    }    //如果属性里没指定栏目id,从引用类里获取栏目信息    if(empty($typeid))    {        if( isset($refObj->TypeLink->TypeInfos['id']) )        {            $typeid = $refObj->TypeLink->TypeInfos['id'];            $reid = $refObj->TypeLink->TypeInfos['reid'];            $topid = $refObj->TypeLink->TypeInfos['topid'];        }        else {          $typeid = 0;      }    }    else    {         $row2 = $dsql->GetOne("SELECT reid,topid,channeltype,ispart FROM `dede_arctype` WHERE reid='$topid' ");        if(!is_array($row2))        {            $typeid = $reid = $topid = $channeltype = $ispart = 0;        } else {            $reid = $row2['reid'];            $channeltype = $row2['channeltype'];            $ispart = $row2['ispart'];            $typepid = $row2['id'];        }    }    //调用Typeid    if( !empty($topid) )    {        $topQuery = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype` WHERE reid='$topid' And ishidden1 order by sortrank asc";    }  $dsql->Execute('t', $topQuery);  while($row = $dsql->GetArray('t'))  {      $row['typelink'] = GetOneTypeUrlA($row);      //处理同级栏目中,当前栏目的样式                if( $row['id']==$typeid  && $currentstyle!='' )                {                    $linkOkstr = $currentstyle;                    $linkOkstr = str_replace("~rel~",$row['rel'],$linkOkstr);                    $linkOkstr = str_replace("~id~",$row['id'],$linkOkstr);                    $linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);                    $linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);                    $revalue .= $linkOkstr;                }                else                {                  $revalue .= "{$row['typename']}\n";                }    randomartlistSon($row['id'],$typeid,$currentstyle, $revalue);  }  if($cacheid !='') {        WriteCacheBlock($cacheid, $revalue);  }    return $revalue;} function randomartlistSon($id,$typeid,$currentstyle,&$revalue){    global $dsql;    $query = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype` WHERE reid='{$id}' And ishidden1 order by sortrank asc";    $dsql->Execute($id, $query);    $thisv = '';  while($row = $dsql->GetArray($id))  {      $row['typelink'] = GetOneTypeUrlA($row);      //处理同级栏目中,当前栏目的样式                if( $row['id']==$typeid  && $currentstyle!='' )                {                    $linkOkstr = $currentstyle;                    $linkOkstr = str_replace("~rel~",$row['rel'],$linkOkstr);                    $linkOkstr = str_replace("~id~",$row['id'],$linkOkstr);                    $linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);                    $linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);                    $thisv .= $linkOkstr;                }                else                {                  $thisv .= "{$row['typename']}\n";                }     randomartlistSon($row['id'],$typeid,$currentstyle, $thisv);  }  if($thisv!='') $revalue .= "\n$thisv\n";}        2、调用方式:
     {dede:randomartlist topid='12' current}

    最新评论

    浏览过的版块

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

    Powered by Discuz! X3.5 © 2001-2023

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