dedecms顶级栏目列表、子栏目列表调用DEDECMS调用父栏目名称

dedecms顶级栏目列表、子栏目列表调用DEDECMS调用父栏目名称


怎么在dede栏目列表或者dede子栏目列表调用DEDE调用父栏目名称?DEDECMS调用父栏目名称、DEDECMS调用子栏目里的父栏目名称的方法


方法如下:
新建一个php文件,命名为:parentcannel.lib.php, dedecms 然后在此文件写入以下代码:

function lib_parentchannel($ctag,$refObj)
{
global $_sys_globals,$dsql;
$attlist = "row|100,nosonmsg|,col|1";
FillAttsDefault($ctag->CAttribute->Items,$attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$innertext = $ctag->GetInnerText();

$reid = 0;
$topid = 0;
//如果属性里没指定栏目id,从引用类里获取栏目信息
if(empty($typeid))
{
if( isset($refObj->TypeLink->TypeInfos['id']) )
{
$typeid = $refObj->TypeLink->TypeInfos['id'];
$reid = $refObj->TypeLink->TypeInfos['reid'];
$topid = $refObj->TypeLink->TypeInfos['topid'];
}
else {
$typeid = 0;
}
} //如果指定了栏目id,从数据库获取栏目信息
else
{
$row2 = $dsql->GetOne("SELECT * FROM `dede_arctype` WHERE id='$typeid' ");
$typeid = $row2['id'];
$reid = $row2['reid'];
$topid = $row2['topid'];
$issetInfos = true;
}

$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
FROM `dede_arctype` WHERE reid='$typeid' AND ishidden<>1 ORDER BY sortrank ASC LIMIT 1";
$dsql->SetQuery($sql);
$dsql->Execute();
$totalRow = $dsql->GetTotalRow();

//And id<>'$typeid'
$row = $dsql->GetOne("SELECT id,typename,reid,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
FROM `dede_arctype` WHERE id='$typeid' ");
if(!is_array($row)) return '';
if($totalRow==0){
$typeid = $row['reid'];
$row = $dsql->GetOne("SELECT id,typename,reid,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
FROM `dede_arctype` WHERE id='$typeid' ");
if(!is_array($row)) return '';
}
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;
}
}
?>
然后在htm模板文件里用以下代码进行调用:
{dede:parentchannel}[field:typename/]{/dede:parentchannel}
此方法可以用在栏目列表页中根据是否有下级栏目显示父级栏目名称。
织梦dedecms5.7系统会员列表标签(memberlist)详解
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值