本文主要是将{dede:field name=’position’/}栏目当前位置修改为隐藏隐藏栏目,仅显示不隐藏的栏目。比如,一级栏目为隐藏栏目,他下面有不隐藏的二级栏目和三级栏目,当我们访问三级级栏目时,改为主页>二级栏目>三级栏目。

其实,大部分人把织梦的隐藏栏目理解错了,以为隐藏栏目就是什么都没有,仅仅是建个分类,其实不是,隐藏栏目仅仅是在导航中隐藏该栏目,而这个栏目其实是真实存在的,和其他栏目并没有差别,因为有的情况下,我们写了很多栏目,而并不希望这些栏目都显示在导航中,所以就用到了隐藏栏目,而有的人理解错了,但是我们没法改变人家的想法,人家就会要求,文章、列表等当前位置的地方,应该隐藏掉隐藏栏目。没办法,织梦自身没有这样的功能,我们只能是修改他的源文件了。其实这样隐藏了,仅仅也是控制那些访问网站仅仅靠点击而非手动输入的人,这个隐藏栏目的封面模板或者列表模板还是要做的,以免人家直接访问这个隐藏栏目目录,这里仅仅是隐藏了这个当前位置的显示而已。方法如下。

找到include/typelink.class.php,这个是栏目链接类库。找到LogicGetPosition方法大约在166行,一看这个就知道应该是{dede:field name=’position’/}这个标签调用的方法。

1、我们分析栏目表,dede_arctype,里面有个ishidden字段,就是控制是否为隐藏栏目的,1为隐藏,0为显示。所以就可以通过获取的栏目信息判断这个字段的值来控制是否让其显示。首先要读取栏目的这个字段。找到方法开始位置的$this->dsql->SetQuery(“SELECT id,reid,typename,typedir,isdefault,ispart这里,这里就是读取出需要的栏目信息,我们增加一个字段,ishidden,即改为:

PHP

$this->dsql->SetQuery("SELECT id,reid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,ishidden,siteurl,sitepath FROM #@__arctype WHERE id='".$id."'");

1

$this->dsql->SetQuery("SELECT id,reid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,ishidden,siteurl,sitepath FROM #@__arctype WHERE id='".$id."'");

2、然后在下面,我们要控制>这个符号的显示,因为如果这个栏目是隐藏栏目,那么如果我们仅隐藏这个栏目,就会多出来一个>符号,所以我们要进行控制。找到下面的

PHP

$this->valuePosition = $this->GetOneTypeLink($tinfos).$this->SplitSymbol.$this->valuePosition;

1

$this->valuePosition=$this->GetOneTypeLink($tinfos).$this->SplitSymbol.$this->valuePosition;

给其加上判断,即改为

PHP

if($this->GetOneTypeLink($tinfos)){

$this->valuePosition = $this->GetOneTypeLink($tinfos).$this->SplitSymbol.$this->valuePosition;

}else{

$this->valuePosition = $this->valuePosition;

}

1

2

3

4

5

if($this->GetOneTypeLink($tinfos)){

$this->valuePosition=$this->GetOneTypeLink($tinfos).$this->SplitSymbol.$this->valuePosition;

}else{

$this->valuePosition=$this->valuePosition;

}

3、下面就是改获取栏目的方法,判断这个栏目是否为隐藏。隐藏就不返回,

找到function GetOneTypeLink($typeinfos)方法,大约在190行左右

将其内容

PHP

$typepage = $this->GetOneTypeUrl($typeinfos);

$typelink = "".$typeinfos['typename']."";

return $typelink;

1

2

3

$typepage=$this->GetOneTypeUrl($typeinfos);

$typelink="".$typeinfos['typename']."";

return$typelink;

改为

PHP

if('1'==$typeinfos['ishidden']){

return false;

}else{

$typepage = $this->GetOneTypeUrl($typeinfos);

$typelink = "".$typeinfos['typename']."";

return $typelink;

}

1

2

3

4

5

6

7

if('1'==$typeinfos['ishidden']){

returnfalse;

}else{

$typepage=$this->GetOneTypeUrl($typeinfos);

$typelink="".$typeinfos['typename']."";

return$typelink;

}

这样,这个功能就算是改完了。要注意上面说的,即使不显示了,也是可以访问到的,要注意其列表模板或封面模板!

程序本天成,妙手偶得之!我们只是代码的搬运工!

php 织梦symbol,织梦内置标签小优化之三—dede:field name=position标签优化相关推荐

  1. 织梦(dedecms)当前位置{dede:field name='position' /}修改

    织梦(dedecms)当前位置标签的默认显示方式是 "主页 > 列表页 > 内容页 >" 这样的显示方式有时候并不是我们所需要的,所以要改的话,可以用以下的方式修 ...

  2. java自定义变量解析,Thymeleaf内置对象、定义变量、URL参数及标签自定义属性

    如标题所述,这篇文章主要讲述Thymeleaf中的内置对象(list解析.日期格式化.数字格式化等).定义变量.获取URL的参数和在页面标签中自定义属性的应用. 如果对Thymeleaf的基本使用.m ...

  3. html钓鱼游戏源代码,钓鱼才是游戏本体,盘点五款优秀的内置钓鱼小游戏

    在挥舞着刀枪剑戟与怪物或者僵尸搏斗的间隙,或许你有时会想要换一下口味,享受一下别样的游戏挑战.而游戏内置的钓鱼游戏就恰好为我们带来了这种户外活动的轻度体验.虽然有的玩家不喜欢,但我认为钓鱼有着别样的乐 ...

  4. pig的内置函数小总结(不全)

    piggybank里面有很多函数,可以用register和define调用.也可以用java仿照piggybank自行开发. 比如读sequence二进制文件,可以用piggybank里面函数Sequ ...

  5. JS中数据类型、内置对象、包装类型对象、typeof关系

    平时在复习JS基础知识时,经常会遇到JS数据类型.基础数据类型.内置对象.包装类型对象,检测数据类型时,用到的typeof值,感觉都差不多,但是又有差异.今天特地整理下,方便理解. JS数据类型 基础 ...

  6. python提高办公效率-几个可以提高工作效率的Python内置小工具

    在这篇文章里,我们将会介绍4个Python解释器自身提供的小工具.这些小工具在笔者的日常工作中经常用到,减少了各种时间的浪费,然而,却很容易被大家忽略.每当有新来的同事看到我这么使用时,都忍不住感叹, ...

  7. Python这几个内置函数简直是屌爆了!!!

    这篇文章我们来看几个很有用的 Python 内置函数 .这些函数简直是屌爆了,我认为每个 Pythoner 都应该知道这些函数. 对于每个函数,我会使用一个普通的实现来和内置函数做对比. 如果我直接引 ...

  8. python对工作效率的提升_使用了这个几个Python内置小工具,可以让你的工作效率提升一倍...

    使用了这个几个Python内置小工具,可以让你的工作效率提升一倍 我们将会详情4个Python解释器自身提供的小工具. 这些小工具在笔者的日常工作中经常使用到, 减少了各种时间的白费, 然而,却很容易 ...

  9. nginx proxy_pass 使用变量报错_nginx自定义变量与内置预定义变量

    nginx可以使用变量简化配置与提高配置的灵活性,所有的变量值都可以通过这种方式引用: $变量名 而nginx中的变量分为两种,自定义变量与内置预定义变量 内置变量 声明 可以在sever,http, ...

最新文章

  1. Silverlight/Windows8/WPF/WP7/HTML5周学习导读(6月25日-7月1日)
  2. 从使用传统Web框架到切换到Spring Boot后的总结
  3. 基于Salmon的转录组批量定量流程和差异分析
  4. Mybatis官方文档中的(XML映射文件)模块(半途凉了)
  5. 桥牌笔记L4D17:小心阻塞
  6. TC397 CANFD 用例分析
  7. oracle asm掉盘,ASM Disk丢失的临时解决方法
  8. 小米蓝牙耳机持续白灯_小米蓝牙耳机air2怎么重置
  9. 软件测试ios打包,苹果测试iOS打包成 ipa包
  10. asp.net报表制作视频教程
  11. AWT:实现简单的java计算器
  12. bzoj4391 [Usaco2015 dec]High Card Low Card题解
  13. 【Python讲义】WEEK 8
  14. Spring框架——applicationContext.xml配置文件头部xmlns
  15. mysql分页查询出租房屋信息_分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)...
  16. 面试了10几家软件公司测试岗位,做的面试题大盘点,重点大合集
  17. 一小时搞定计算机网络面试
  18. 一、docker 入坑(win10和Ubuntu 安装)
  19. 去掉文件夹最大化时豪杰V8的播放按钮
  20. 网易数帆基于 Kubernetes 的 Redis 云原生实践综述

热门文章

  1. 我的世界服务器组件管理器,我的世界ESS插件 Essentials | 我的世界 | MC世界侠
  2. Scrapy框架的学习(一)
  3. 阵列天线的赋形波束综合(一)
  4. android咖啡动画,WaveLineView 一款性能内存友好的录音波浪动画
  5. 知物由学 | 虚假色情泛滥,人工智能可以做些啥?
  6. 什么是运营商大数据精准获客?
  7. 学习记录:UnityHDRP高清渲染管线学习 day1
  8. Win10系统电脑关机时提示“内存不能为read”的解决方法
  9. 计算机的应用范围图表,Excel2013中各类曲面图气泡图雷达图等图表的效果及功能说明...
  10. 初一年级上学期计算机课知识总结,在电脑上学习七年级上册课程