DEDECMS子栏目页面和内容页调用顶级栏目

2011年9月12日 发表评论 阅读评论

问题:如何在2级栏目页面单独调用该栏目的顶级栏目名称和链接?能否给出具体代码?

回答:没问题!本文讲述的操作方案和代码同样适合放在文章内容页面,用于调用其上级栏目,原理都是一样的!

具体步骤

新建一个文件 /include/taglib/type2.lib.php,代码如下:

<?php   if(!defined(‘DEDEINC’)) exit(‘Request Error!’);
function lib_type2(&$ctag,&$refObj)
{
    global $dsql,$envs;
    $attlist=’typeid|0′;
    FillAttsDefault($ctag->CAttribute->Items,$attlist);
    extract($ctag->CAttribute->Items, EXTR_SKIP);
    $innertext = trim($ctag->GetInnerText());
    if($typeid==0) {
        $typeid = ( isset($refObj->TypeLink->TypeInfos['id']) ? $refObj->TypeLink->TypeInfos['id'] : $envs['typeid'] );
    }
  if(empty($typeid)) return ”;
    $row = $dsql->GetOne("SELECT id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
                          FROM `#@__arctype` WHERE id=’$typeid’ ");
    if(!is_array($row)) return ”;
    if($row['topid']==0){$row['topid']=$row['id'];} //文章页获取顶级栏目ID(topid)
    if(trim($innertext)==”) $innertext = GetSysTemplets("part_type_list.htm");
    $dtp = new DedeTagParse();
    $dtp->SetNameSpace(‘field’,’[',']‘);
    $dtp->LoadSource($innertext);
    if(!is_array($dtp->CTags))
    {
        unset($dtp);
        return ”;
    }
    else
    {
        $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);
        foreach($dtp->CTags as $tagid=>$ctag)
        {
            if(isset($row[$ctag->GetName()])) $dtp->Assign($tagid,$row[$ctag->GetName()]);
        }
        $revalue = $dtp->GetResult();
        unset($dtp);
        return $revalue;
    }
}

调用方法:

{dede:type2}
<a href="[field:typelink /]">[field:typename /]</a>
{/dede:type2}

闪电博客评:希望对大家有帮助!


转载请注明来自:[闪电博客]http://shandian.biz/1628.html

分类: 建站教程 标签:
  1. 真人百家乐
    2013年12月17日11:11 | #1

    (请区分 嘛 和 吗 ) 世界上最悲哀的事情不是碰不到美女,而是碰到了美女 以及其男友 爱上一个做足底的人,等待一扇不防盗的门