导航首页 » 网站优化

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

2023/03/11 12:23    魔司收录网    已浏览93次

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;
增加:

01 $showhideArr = array(
02  
03     'yes' => 0,
04  
05     'no' => 1,
06  
07     'both'=> -1,
08  
09 );
10  
11 $hideflag = $showhideArr[$showhide];

3.

01 if($type=='top')
02  
03   {
04  
05       $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
06  
07         From `dede_arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, $line ";
08  
09   }
10  
11   else if($type=='son')
12  
13   {
14  
15       if($typeid==0) return '';
16  
17       $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
18  
19         From `dede_arctype` WHERE reid='$typeid' And ishidden<>1 order by sortrank asc limit 0, $line ";
20  
21   }
22  
23   else if($type=='self')
24  
25   {
26  
27       if($reid==0) return '';
28  
29       $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
30  
31           FROM `dede_arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
32  
33   }

修改为:

01 if($type=='top')
02  
03  {
04  
05      $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
06  
07        From `dede_arctype` WHERE reid=0 And ishidden<>$hideflag order by sortrank asc limit 0, $line ";
08  
09  }
10  
11  else if($type=='son')
12  
13  {
14  
15      if($typeid==0) return '';
16  
17      $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
18  
19        From `dede_arctype` WHERE reid='$typeid' And ishidden<>$hideflag order by sortrank asc limit 0, $line ";
20  
21  }
22  
23  else if($type=='self')
24  
25  {
26  
27      if($reid==0) return '';
28  
29      $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname