找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 149|回复: 0

[cms教程] 织梦模板dedecms5.7 无限级多级栏目菜单调用教程

[复制链接]

该用户从未签到

发表于 2021-6-4 09:16:12 | 显示全部楼层 |阅读模式

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

×
以前在用到织梦模板无限级栏目列表菜单时下载了网上的资料都未成功,因此我参考网上及dedecms本身的channel.lib.php及cattree.lib.php制作了调用标签。
        1、在includetaglib建立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 .= "    [*,[url={$row[,{$row['typename',}[/url]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 .= "    [*,[url={$row[,{$row['typename',}[/url]n";
                }
    randomartlistSon($row['id',,$typeid,$currentstyle, $thisv);
  }
  if($thisv!='') $revalue .= "    n$thisv    n";
}
2、调用方式:
     
         
              {dede:randomartlist topid='12' current}
                 [*,[url=,{dede:field name='typename'/}[/url]
              {/dede:randomartlist}
            

      
3、css方式:
      .alist{}
      /*第一层修饰*/
     .alist ul {}
     .alist ul li {}
     .alist ul li a{}
     .alist ul li a:hover,.alist ul li .thisclass{}
      /*第二层修饰*/
     .alist ul li ul{}
     .alist ul li ul li{}
     .alist ul li ul li a{}
     .alist ul li ul li a:hover,.alist ul li ul li  .thisclass{}
回复

使用道具 举报

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

GMT+8, 2024-10-10 05:19

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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