M1850资源网 - 最专业的网站源码模板下载站!

全部作品
全部作品
织梦模板
网站模板
源码插件
游戏源码
脚本特效
视频教程
建站教程
M1850资源网 > 建站教程 > 织梦教程 > 织梦二次开发 > dede在任一子级栏目获取顶级栏目名称 typename,包括该顶级栏目下的文章页

推荐下载

dede在任一子级栏目获取顶级栏目名称 typename,包括该顶级栏目下的文章页

找到 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 `dede_arctype` where id='$typeid' ");

添加3行:

$topid=$dsql->GetOne("Select topid From `dede_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 `dede_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 `dede_arctype` where id='$typeid' ");       $topid=$dsql->GetOne("Select topid From `dede_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 `dede_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 `dede_arctype` where id='$typeid' ");       $reid=$dsql->GetOne("Select reid From `dede_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 `dede_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}
嘿,我来帮您!

展开