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

来源:互联网  时间:2018-01-05    阅读:   我要吐槽    阿里云幸运券

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

  1. <?php   if(!defined('DEDEINC')) exit('Request Error!'); 
  2. function lib_type2(&$ctag,&$refObj
  3.     global $dsql,$envs
  4.  
  5.     $attlist='typeid|0'
  6.     FillAttsDefault($ctag->CAttribute->Items,$attlist); 
  7.     extract($ctag->CAttribute->Items, EXTR_SKIP); 
  8.     $innertext = trim($ctag->GetInnerText()); 
  9.  
  10.     if($typeid==0) { 
  11.         $typeid = ( isset($refObj->TypeLink->TypeInfos['id']) ? $refObj->TypeLink->TypeInfos['id'] : $envs['typeid'] ); 
  12.     } 
  13.  
  14.   if(emptyempty($typeid)) return ''
  15.  
  16.     $row = $dsql->GetOne("SELECT id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath  
  17.                           FROM `#@__arctype` WHERE id='$typeid' "); 
  18.     if(!is_array($row)) return ''
  19.     if($row['topid']==0){$row['topid']=$row['id'];} //文章页获取顶级栏目ID(topid) 
  20.     if(trim($innertext)==''$innertext = GetSysTemplets("part_type_list.htm"); 
  21.      
  22.     $dtp = new DedeTagParse(); 
  23.     $dtp->SetNameSpace('field','[',']'); 
  24.     $dtp->LoadSource($innertext); 
  25.     if(!is_array($dtp->CTags)) 
  26.     { 
  27.         unset($dtp); 
  28.         return ''
  29.     } 
  30.     else 
  31.     { 
  32.         $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row); 
  33.         foreach($dtp->CTags as $tagid=>$ctag
  34.         { 
  35.             if(isset($row[$ctag->GetName()])) $dtp->Assign($tagid,$row[$ctag->GetName()]); 
  36.         } 
  37.         $revalue = $dtp->GetResult(); 
  38.         unset($dtp); 
  39.         return $revalue
  40.     } 

调用方法:

  1. {dede:type2} 
  2. <a href="[field:typelink /]">[field:typename /]</a> 
  3. {/dede:type2} 
Tags:栏目  顶级  页面  DEDECMS  

参与讨论