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


以前在用到5.7无限级栏目列表菜单时下载了网上的资料都未成功,因此我参考网上及dedecms本身的channel.lib.php及cattree.lib.php制作了调用标签。


以前在用到5.7无限级栏目列表菜单时下载了网上的资料都未成功,因此我参考网上及dedecms本身的channel.lib.%ignore_a_1%及cattree.lib.php制作了调用标签。

1、在includetaglib建立randomartlist.lib.php

内容如下:

   <?php if(!defined('DEDEINC')) exit('Request Error!');   function lib_randomartlist(&$ctag, &$refObj) {     global $dsql;     //属性处理      //topid 指定顶级树 id ,指定后,前一个属性将无效     $attlist="typeid|0,showall|,currentstyle|,cacheid|";     FillAttsDefault($ctag->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 ishidden<>1 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 .= "    <li><a href='{$row['typelink']}'>{$row['typename']}</a></li>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 ishidden<>1 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 .= "    <li><a href='{$row['typelink']}'>{$row['typename']}</a></li>n";                 }       randomartlistSon($row['id'],$typeid,$currentstyle, $thisv);   }   if($thisv!='') $revalue .= "    <ul>n$thisv    </ul>n"; } 

2、调用方式:

      <div class="alist">           <ul>               {dede:randomartlist topid='12' currentstyle="<li><a href='~typelink~' class='thisclass'>~typename~</a></li>"}                  <li><a href="{dede:field name='typeurl'/}" title="{dede:field name='typename'/}">{dede:field name='typename'/}</a></li>               {/dede:randomartlist}             </ul>       </div>

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{}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持登博教程。

www.dengb.comtruehttp://www.dengb.com/dedecms/1330908.htmlTechArticle详解织梦dedecms5.7 无限级多级栏目菜单调用方法,织梦dedecms5.7 以前在用到5.7无限级栏目列表菜单时下载了网上的资料都未成功,因此我参考…

—-想了解更多的模板cms网站教程关注<计算机技术网>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cmsttfdreams/114563.html

(0)
上一篇 2020年5月12日
下一篇 2020年5月12日

精彩推荐