用织梦DEDECMS做网站,需要做网站地图时,我们有时候需要把网站所有的栏目和文章信息都列出来。如果只有一级栏目还好处,但是如果有三级子栏目时,我们可以通过sql来处理。相关代码如下:
{dede:channelartlist typeid='45'}
<h3><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></h3>
<ul>
<!--二级-->
{dede:sql sql='Select id,typedir,typename from `dede_arctype` where reid=~id~ ORDER BY id limit 0,20'}
<li><a href="[field:typedir function='str_replace("{cmspath}","",@me)'/]">[field:typename/]</a></li>
<!--三级-->
[field:id runphp='yes']
global $dsql;
$reid = @me;
$str = '';
$sql='Select typename,typedir from `dede_arctype` where reid='.$reid.' ORDER BY id limit 0,20';
$dsql->SetQuery($sql);
$dsql->Execute();
while($row = $dsql->GetArray()){
$url = str_replace("{cmspath}","",$row['typedir']);
$str .= '<li><a href="'.$url.'">'.$row["typename"].'</a></li>';
@me = $str;
}
if(@me == $reid){
@me = '';
}
[/field:id]
{/dede:sql}
{dede:arclist row="3000"}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
{/dede:channelartlist}
{dede:channelartlist typeid='52,53,54,55'}
<h3><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></h3>
<ul>
{dede:channel type='son' noself='yes'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
{dede:arclist row="3000"}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
</ul>
{/dede:channelartlist}