欢迎来到织梦58!我们致力于织梦商业模板及VIP模板更新

织梦58

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}


AiteCms,企业模板快速建站专家,点击了解更多


有问题可以加入织梦技术QQ群一起交流学习

本站vip会员 请加入织梦58 VIP群 PS:加入时备注用户名或昵称

普通注册会员或访客 请加入织梦58 技术交流群

作者:DEDE58.COM 关注: 时间:2015-10-07 11:24
首先声明,只要是我们的vip会员所有源码均可以免费下载,不做任何限制(了解更多)
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品织梦源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站织梦程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、模板、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ(970003436)进行交流。
相关织梦教程
在线客服

×关闭