有时候我们会需要在DEDECMS子栏目下调用当前栏目的上级栏目的名称和链接,有心的程序会发现当前栏目的标签在DEDECMS标签中并没有提到,不过我们可以通过对标签进行修改来实现调用当前栏目的顶级栏目的链接以及名称。下面爱福利吧为大家演示调用当前栏目的上级栏目名称和链接的方法。
第一种方法:
上级栏目:

{dede:field.typeid runphp='yes'"}
   global $dsql ;
   $reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=@me");
   $reid = $reid['reid'];
   $typename = $dsql->GetOne("SELECT typename FROM dede_arctype where id=$reid");
   @me=$typename['typename'];
{/dede:field.typeid}

当前栏目:

{dede:field.typeid runphp='yes'"}
       {dede:type}
       [field:typename/]
{/dede:type}
{dede:field.typeid function="GetParentTypename(@me)"/}

第二种方法:
首先找到include/taglib/channel.lib.php文件,找到59行,代码如下:
--------------------------------------------

else if($type=='self')
{ 
     if($reid==0) return '';
     $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
     FROM `#@__arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
}

在此段代码之后,添加:

else if($type=='parent')
{ //新增代码 获得上级栏目
     if($reid==0) return '';
    $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
    FROM `#@__arctype` WHERE id='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
}

---------------------------------------
接下来继续往后找到代码:

//处理同级栏目中,当前栏目的样式

if( ($row['id']==$typeid || ($topid==$row['id'] && $type=='top') ) && $currentstyle!='' )

修改为:

//处理同级栏目中,当前栏目的样式

if( ($row['id']==$typeid || ($topid==$row['id'] && $type=='top') || ($row['id']==$reid && $type=='parent' )) && $currentstyle!='' )

===================================
前台调用方法:

{dede:channel type='parent'}{/dede:channel}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。