1. 程式人生 > >織夢dedecms在欄目頁呼叫其它相關欄目的資訊及相關欄目下的文章列表

織夢dedecms在欄目頁呼叫其它相關欄目的資訊及相關欄目下的文章列表

比如公告欄目本身包含新聞及商品兩個相關欄目,在後臺設定為相關後,在公告的前臺列表頁中,我可以自動呼叫相關的欄目名稱,連結,及下屬的文章列表.這裡其實有兩個呼叫迴圈,先迴圈呼叫本欄目的相關欄目,然後,根據得到的欄目typeid,再迴圈呼叫該欄目下的文章內容.裡面的難點是怎麼得到文章的靜態連結
我首先需要在dede_arctype這個欄目表中,增加一個typelist欄位,表示相關欄目.欄位內容為 新聞及商品欄目的id,多個用逗號分開.
效果圖,後臺先設定好公告欄目的相關欄目.
這裡寫圖片描述

後臺,文章內容歸類

這裡寫圖片描述

前臺效果

這裡寫圖片描述

然後,在模板中增加

這裡是公告欄目列表頁<br/>
 {dede:type
}[field:id function=
'get_typelist(@me)'/]{/dede:type}

get_typelist()這個為在include/extend.func.php 中自定義的函式,內容為

function get_typelist($typeid){
 global $dsql;  
    $rs=$dsql->getOne("select * from #@__arctype where id='$typeid'"); 
        $arrs=explode(",",$rs['typelist']);  

        $typelist=''
; //欄目迴圈開始 foreach($arrs as $v){ $get_types=get_types($v); $typedir=str_replace('{cmspath}','',$get_types['typedir']); $typelist.='<br/><a href="'.$typedir.'">'.$get_types['typename'].'</a>'; //文章迴圈開始 $sql="select a.id as aid, t.id as tid,typeid,senddate,title,ismake,arcrank,namerule,typedir From #@__archives a, #@__arctype t where a.typeid = t.id and a.typeid = '$v' and a.arcrank>-1 order by a.id desc limit 10"
; //如果有自定義欄位,需要三個表聯合查詢,可能有重複的資料.需要加上group by 如下面的寫法 //$sql="select s.* ,a.id as aid, t.id as tid,senddate,title,ismake,arcrank,namerule,typedir From #@__archives a ,#@__arctype t , #@__addonshangpin s where a.typeid = t.id and s.typeid = t.id and a.typeid = '$v' and a.arcrank>-1 group by a.id order by a.id desc limit 10"; // print_r($sql);exit; $dsql->SetQuery($sql); $dsql->Execute(); $list=''; while($row = $dsql->GetArray()){ $list.= '<li><a title="'.$row['title'].'" href="'.GetFileUrl($row['aid'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],$row['arcrank'],$row['namerule'],$row['typedir'],$row['money']).'">'.cn_substr($row['title'], 50).'</li>'; } $typelist=$typelist.$list; } return $typelist; } //織夢根據欄目編號typeid呼叫typename欄目名 ,url等 function get_types($typeid){ global $dsql; $rs=$dsql->getOne("select typename,typedir from #@__arctype where id='$typeid'"); return $rs; }

請打賞謝謝大佬