找到 include/taglib/type.lib.php , 复制, 重命名为 toptype.lib.php
查找 function lib_type(&$ctag,&$refObj)
修改为:
function lib_toptype(&$ctag,&$refObj)
查找 $row = $dsql->GetOne
注释掉 //$row = $dsql->GetOne("Select id,topid,description,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typelitpic From `#@__arctype` where id='$typeid' ");
添加3行:
$topid=$dsql->GetOne("Select topid From `#@__arctype` where id='$typeid' ");
$topid=$topid['topid'];
$row=$dsql->GetOne("Select id,topid,description,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typelitpic From `#@__arctype` where id='$topid' ");
模板调用: {dede:toptype}[field:typename/]{/dede:toptype}
修改后的toptype.lib.php
<?php if(!defined('DEDEINC')) exit('Request Error!'); function lib_toptype(&$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,description,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typelitpic From `#@__arctype` where id='$typeid' "); $topid=$dsql->GetOne("Select topid From `#@__arctype` where id='$typeid' "); $topid=$topid['topid']; $row=$dsql->GetOne("Select id,topid,description,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typelitpic From `#@__arctype` where id='$topid' "); if(!is_array($row)) return ''; if($row['topid']==0){$row['topid']=$row['id'];} 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; } } ?>
如果想获取任一栏目的上级栏目,可将topid---->改为--->reid,最后记得改函数名和文件名
retype.lib.php
<?php if(!defined('DEDEINC')) exit('Request Error!'); function lib_retype(&$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,description,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typelitpic From `#@__arctype` where id='$typeid' "); $reid=$dsql->GetOne("Select reid From `#@__arctype` where id='$typeid' "); $reid=$reid['reid']; $row=$dsql->GetOne("Select id,reid,description,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typelitpic From `#@__arctype` where id='$reid' "); if(!is_array($row)) return ''; if($row['reid']==0){$row['reid']=$row['id'];} 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:retype}[field:typename/]{/dede:retype}