最近在研究織夢的系統(tǒng),導航欄為顯示頂級目錄,但每點開一個頂級目錄下顯示,左邊是頂級欄目下的所有欄目的欄目目錄樹,右邊是這個頂級欄目的新聞列表,如下圖:
DedeCMS如何通過頂級欄目獲取欄目樹
每點一個頂級欄目可以在頁中獲得所點欄目的所有信息,包括ID,typename等等欄目的信息.
{dede:field name='id' /}
這個就是得到當然頁當前欄目的ID,如果當然點的是頂級欄目的話,這個ID就是TOPID了,如果點的是頂級欄目下的二級或三級欄目這個ID就不是TOPID了,這樣就需要對這個ID進行判斷一下,廢話少說,直接在common.func.php中添加一函數(shù),函數(shù)如下:
- function gtype($id)
- {
- global $dsql;
- global $dsqls;
- $tags = '';
- $sql = "Select * From `#@__arctype` where id='$id' "; /***通過ID查詢信息SQL語句
- $dsql->SetQuery($sql);
- $dsql->Execute();
- while($row = $dsql->GetArray())
- {
- if(!emptyempty($row['topid'])) ---------如果TOPID非空說明接數(shù)的參數(shù)ID不是頂級欄目的ID,那就是次欄目的ID了。
- { $sid=$row['topid'];} ---------那么就可以讓$SID被賦值為這個ID的頂級欄目的ID是什么,TOPID
- else { $sid=$row['id'];} -------- 否則就是頂級欄目的ID
- }
- $query = "Select * From `#@__arctype` where topid=reid and topid='$sid' ";
- $dsql->Execute('type',$query);
- while($row = $dsql->GetArray('type')) -----二級欄目信息
- {
- $idd=$row['id'];
- $link= GetOneTypeUrlA($row); -------欄目的連接
- $querys= "Select * From `#@__arctype` where reid=".$row['id']." and topid='$sid' ";
- $dsql->SetQuery($querys);
- $dsql->Execute();
- $tag='';
- while($rows=$dsql->GetArray()) -----三級欄目信息
- {
- $links= GetOneTypeUrlA($rows);
- $tag.= ($tag=='' ? ' <li><a href="'.$links.'" target="_blank"><strong>·</strong>'.$rows['typename'].'</a></li>': ' <li><a href="'.$links.'" target="_blank"><strong>·</strong>'.$rows['typename'].'</a></li>');
- } //開源軟件:Vevb.com
- $tags.='<h2><a href='.$link.'>'.$row['typename'].'</a></h2>'.$tag; ------有序的排起來
- }
- return $tags;
- }
最后在list_article.htm 中調些函數(shù):
{dede:field name='id' function="gtype(@me)" /}
新聞熱點
疑難解答
圖片精選