织梦CMS调用所有栏目无限级栏目输出

织梦技巧

织梦CMS调用所有栏目无限级栏目输出,吃喝网给大家分享2种方法获取织梦所无限级栏目

第一种自定义函数递归法

适用于前端简单样式用户,在 include/extend.func.php 最下面添加

PHP
/*** 取出所有分类* @param     int   $channel  频道ID* @return    string* 调用{dede:global.getalltype function='getalltype()'/}*/function getalltype($channel=0,$line=10){	$line = empty($line) ? 10 : $line;	global $dsql,$result;		$dsql->SetQuery("SELECT id,typename,typenamedir,typelitpic,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath            FROM `SzsFox_arctype` WHERE reid='$channel' And ishidden<>1 order by sortrank asc limit 0, $line ");	$dsql->Execute($channel);	if($dsql->GetTotalRow($channel)>0)	{		$result .= "<ul>/r/n"; 		while($row = $dsql->GetArray($channel))		{			$id = $row['id'];			$typename = $row['typename'];			$typelink = GetOneTypeUrlA($row);			$result .= "	<li>/r/n";			$result .= "		<a href='{$typelink}' target='_blank'>{$typename}</a>/r/n";			getalltype($id,$line);			$result .= "	</li>/r/n";		}        $result .= "</ul>/r/n";	}	return $result;}

前台模板调用标签

PHP
{dede:global.getalltype function='getalltype()'/}

第二种标签嵌套法

适用于只调用出一级、二级、三级、四级的用户,直接在模板里写
PHP
<ul>	{dede:channelartlist row=7 typeid=top}	<!-- 顶级 -->	<li class="top">		<a href="{dede:field.typeurl/}" >{dede:field name='typename'/}</a>		<ul class="sub">		{dede:channel type=son noself=yes}		<!-- 二级 -->		<li>		<a href="[field:typeurl/]"  title="[field:typename/]">[field:typename/]</a>		<ul><!-- 三级 -->[field:id runphp=yes]global $dsql;$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `SzsFox_arctype` WHERE reid=@me And ishidden<>1 order by sortrank asc limit 0,10";$dsql->SetQuery($sql);$dsql->Execute('t');$result = '';while($row = $dsql->GetArray('t')){    $typename = $row['typename'];    $typeurl = GetOneTypeUrlA($row);$result .= <<< TPL<li><a href="{$typeurl}">{$typename}</a></li>TPL;}@me = $result;[/field:id]		</ul>		</li>		{/dede:channel}		</ul>	</li>    	{/dede:channelartlist}</ul>
上面的是输出到三级栏目,如果需要四级栏目可以这样写
PHP
<!-- 三级/四级 -->[field:id runphp=yes]global $dsql;$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `SzsFox_arctype` WHERE reid=@me And ishidden<>1 order by sortrank asc limit 0,10";$dsql->SetQuery($sql);$dsql->Execute('t');$result = '';while($row = $dsql->GetArray('t')){    $row['typeurl'] = GetOneTypeUrlA($row);	$result .= "<a href='{$row[typeurl]}'>{$row[typename]}</a>";	//四级	$nsql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `SzsFox_arctype` WHERE reid=$row[id] And ishidden<>1 order by sortrank asc limit 0,10";	$dsql->SetQuery($nsql);	$dsql->Execute('n');	while($nrow = $dsql->GetArray('n'))	{		$nrow['typeurl'] = GetOneTypeUrlA($nrow);		$result .= "<a href='{$nrow[typeurl]}'>{$nrow[typename]}</a>";	}}@me = $result;[/field:id]

标签:
吃喝网尾部