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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?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;
    }
}

调用方法:

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

DEDECMS留言板模块引用顶级栏目导航

第一步:打开”/include/extend.func.php”
然后在该文件中加入一个函数,代码如下:

1
2
3
4
5
6
7
8
function pasterTempletDiy($path) {
    require_once(DEDEINC."/arc.partview.class.php");
    global $cfg_basedir,$cfg_templets_dir;
    $tmpfile = $cfg_basedir.$cfg_templets_dir."/".$path;//模版文件的路径
    $dtp = new PartView();
    $dtp->SetTemplet($tmpfile);
    $dtp->Display();
}

第二步,打开留言本的模版文件,默认的是/templets/plus/guestbook.htm
在该文件的”“下面,加入如下代码:

1
2
3
<?php
    pasterTempletDiy("default/head.htm");
?>