Dedecms中{dede:type}標簽支持調用父級欄目名稱


需求:

我們用{dede:type}標簽調用欄目相關內容時,同時需要調用該欄目的父級欄目的名稱。

{dede:type}標簽的代碼做了一下開發,支持這個調用了。

開發方法:

1.打開include/taglib/type.lib.php,找到函數lib_type下的代碼:

$row = $dsql->GetOne("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE id='$typeid' "); //42行

改為:

$row = $dsql->GetOne("SELECT id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE id='$typeid' ");

2.找到如下代碼:

$row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);

在其下面添加如下代碼:

$row['parent_name'] = $row['parent_id'] ='';
if(!empty($row['topid'])){
    row1 = $dsql->GetOne("select typename as parent_name,id as parent_id from `#@__arctype` where id ='".$row['topid']."'");
    $row['parent_name'] = $row1['parent_name'];
    $row['parent_id']   = $row1['parent_id'];
} else {
    $row['parent_name'] = $row['typename']; //如果時頂級欄目,就顯示為該欄目名稱
     $row['parent_id']   = $row['id'];
}

3.前台調用方法:

<!--如果是內容頁模板,可以不用指定typeid,直接調用-->
{dede:type}[field:parent_name/]{/dede:type}
{dede:type}[field:parent_id/]{/dede:type}
<!--在首頁或者列表頁模板,可指定typeid調用--> 
{dede:type typeid='1'}[field:parent_name/]{/dede:type}
{dede:type typeid='1'}[field:parent_id/]{/dede:type}

 

附加:

1.調用當前欄目的名稱
{dede:field name="typename"}  

2.調用該頂級頻道所有子欄目,row代表調用5條
 {dede:channel  type='son'  row='5'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel} 

3.調用子欄目當前頂級欄目名稱
{dede:channel   type='top'}<a>[field:typename/]</a> {/dede:channel} 

4.調用指定欄目ID
{dede:type   typeid='欄目id'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:type} 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM