channel.lib.php,织梦中{dede:channel}无法调用隐藏栏目解决方法

教程介绍了如何修改织梦CMS的channel标签,使其能够根据需求在不同页面显示或隐藏栏目。通过添加新的属性`showhide`并修改SQL查询条件,实现了对隐藏栏目的控制,允许在特定页面调用隐藏栏目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dede如何控制隐藏栏目的显示与调用

许多时候有些栏目想在某些页面隐藏,在另外一些页面显示,怎么办?

貌似,织梦的channel标签不能获取隐藏的栏目,于是我自己动手修改channel标签

首先找到include/taglib/channel.lib.php

1.

$attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|,cacheid|";

修改为:

$attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|,cacheid|,showhide|no";

2.

在这两句下

$innertext = $ctag->GetInnerText();

$line = empty($row) ? 100 : $row;

增加:

$showhideArr = array(

'yes' => 0,

'no' => 1,

'both'=> -1,

);

$hideflag = $showhideArr[$showhide];

3.

if($type=='top')

{

$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath

From `dede_arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, $line ";

}

else if($type=='son')

{

if($typeid==0) return '';

$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 0, $line ";

}

else if($type=='self')

{

if($reid==0) return '';

$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath

FROM `dede_arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";

}

修改为:

if($type=='top')

{

$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath

From `dede_arctype` WHERE reid=0 And ishidden<>$hideflag order by sortrank asc limit 0, $line ";

}

else if($type=='son')

{

if($typeid==0) return '';

$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath

From `dede_arctype` WHERE reid='$typeid' And ishidden<>$hideflag order by sortrank asc limit 0, $line ";

}

else if($type=='self')

{

if($reid==0) return '';

$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值