| 
	织梦dedecms5.7 无限级多级栏目菜单调用方法 。 
	以前在用到5.7无限级栏目列表菜单时下载了网上的资料都未成功,因此我参考网上及织梦dedecms本身的channel.lib.php及cattree.lib.php制作了调用标签。 
	1、在include\taglib建立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{}(责任编辑:最模板) | 



 ecshop也买酒模板|ecshop酒业
							人气:1383
							ecshop也买酒模板|ecshop酒业
							人气:1383
						 空包网刷快递单号自动发
							人气:3467
							空包网刷快递单号自动发
							人气:3467
						 ecshop绿色英文球衣服装外
							人气:690
							ecshop绿色英文球衣服装外
							人气:690
						 shopex衣服网服装模板
							人气:430
							shopex衣服网服装模板
							人气:430
						 ecshop仿小米带微信商城手
							人气:385
							ecshop仿小米带微信商城手
							人气:385
						 ecshop仿橡果国际2011模板
							人气:684
							ecshop仿橡果国际2011模板
							人气:684