织梦(dede)中当前位置(position)标签,不显示隐藏栏目实现
实际项目中需要,在织梦position标签中把隐藏的栏目不显示在当前位置中,具体怎么做乃?如下:
第一步:找到include文件夹里面的typelink.class.php文件,查找:“return $this->valuePosition.$this->SplitSymbol;”,在这句话之前添加如下这段:
if(ord(substr($this->valuePosition,strlen($this->valuePosition)-2)) == 62)
{
$this->valuePosition = substr($this->valuePosition,0,strlen($this->valuePosition)-2);
}
第二步:查找LogicGetPosition($id,$islink)方法,修改查询sql语句,在sql遇见中添加字段ishidden,如:
$this->dsql->SetQuery("Select id,reid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,ishidden From where id='".$id."'");
这个字段是用来判断,查询出来的栏目名称是否隐藏。
第三步:继续搜索“$this->valuePosition = $this->GetOneTypeLink($tinfos).$this->SplitSymbol.$this->valuePosition;”,改为:
//判断栏目是否隐藏,如果隐藏不显示链接地址
if ($tinfos['ishidden'] == 0){
$this->valuePosition = $this->GetOneTypeLink($tinfos).$this->SplitSymbol.$this->valuePosition;
}
第四步:查找GetOneTypeLink($typeinfos)方法,把方法改为:
function GetOneTypeLink($typeinfos)
{
//判断栏目是否隐藏,如果隐藏不显示链接地址
if ($typeinfos['ishidden'] == 0){
$typepage = $this->GetOneTypeUrl($typeinfos);
$typelink = "".$typeinfos['typename']."";
return $typelink;
}
}
主要是加了一个判断栏目是否隐藏的条件。