需求:

我们用{dede:type}标签调用栏目相关内容时,同时需要调用该栏目的父级栏目的名称。

{dede:type}标签的代码做了一下开发,支持这个调用了。

开发方法:

1.打开include/taglib/type.lib.php,找到函数lib_type下的代码:

$row = $dsql->GetOne("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE id='$typeid' "); //42行

改为:

$row = $dsql->GetOne("SELECT id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE id='$typeid' ");

2.找到如下代码:

$row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);

在其下面添加如下代码:

$row['parent_name'] = $row['parent_id'] ='';
if(!empty($row['topid'])){
row1 = $dsql->GetOne("select typename as parent_name,id as parent_id from `#@__arctype` where id ='".$row['topid']."'");
$row['parent_name'] = $row1['parent_name'];
$row['parent_id'] = $row1['parent_id'];
} else {
$row['parent_name'] = $row['typename']; //如果时顶级栏目,就显示为该栏目名称
$row['parent_id'] = $row['id'];
}

3.前台调用方法:

<!--如果是内容页模板,可以不用指定typeid,直接调用-->
{dede:type}[field:parent_name/]{/dede:type}
{dede:type}[field:parent_id/]{/dede:type}
<!--在首页或者列表页模板,可指定typeid调用--> 
{dede:type typeid='1'}[field:parent_name/]{/dede:type}
{dede:type typeid='1'}[field:parent_id/]{/dede:type}

附加:

1.调用当前栏目的名称
{dede:field name="typename"}

2.调用该顶级频道所有子栏目,row代表调用5条
 {dede:channel  type='son'  row='5'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel}

3.调用子栏目当前顶级栏目名称
{dede:channel   type='top'}<a>[field:typename/]</a> {/dede:channel}

4.调用指定栏目ID
{dede:type   typeid='栏目id'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:type}

Dedecms中{dede:type}标签支持调用父级栏目名称的更多相关文章

  1. 织梦 dedecms 中LOOP 万能标签循环 调用 arcurl标签(获取链接)

    在DEDECMS中,提供了loop万能循环标签,但是此循环标签只能循环出该表中的字段,而“[field:arcurl/]”链接标签并不能被解析出来,而DEDECMS官方论坛上也没有找到相关的解决办法, ...

  2. DedeCMS让{dede:list}标签支持weight权重排序

    1.找到"根目录\include\arc.listview.class.php"文件. 2.修改代码:在文件第727行处添加按weight排序判断代码(红色部分为新添加代码). / ...

  3. Job中织梦标签的调用

    织梦CMS是一个好东东, 可以让一个网站更好维护和管理, 唯一让我感到忧桑的就是经常在搭后台的时候记不住那些标签,,无奈只能去看手册,有相同的案例直接COPY过来,直接用就OK~~~其实CMS这个东西 ...

  4. easyui中combotree只能选子选项,父级不被选中

    前言 前几天面试遇到一个需求(easyui中combotree只能选子选项,父级不被选中),回来特意整理下,大概的思想是如果该tree的节点被选中是判定一下是否有子节点,如果没有就说明是最终节点了,步 ...

  5. Thinkcmf子栏目获取父级栏目所有子栏目列表

    网站建设时经常需要输出某个栏目的子栏目,对应的在子栏目列表页也需要输出父级栏目的子栏目列表,thinkcmf可以输出所有子栏目,但却无法在子栏目列表页也适用, 因此就需要通过对数据库表查询来完成需求: ...

  6. DEDECMS中,arclist标签

    文档列表  dede:arclist 标签: {dede:arclist flag='h' typeid='' row='' col='' titlelen='' infolen='' imgwidt ...

  7. DEDECMS中,channel标签

    获取栏目列表标签 dede:channel 标签: {dede:channel type='top' row='8' currentstyle="<li><a href=' ...

  8. DEDECMS中,channelartlist标签

    当前频道的下级栏目的内容列表 dede:channelartlist 标签: {dede:channelartlist row=6} <dl> <dt><a href=' ...

  9. js调用父级frame中的方法

    父级frame中的方法: function hideOutline() { $("#outline").hide(); $("#content").attr(& ...

随机推荐

  1. Django认证系统之自带auth_user表操作

    Django自带auth_user表操作: views.py from django.contrib  import  auth#引入auth模块 from django.contrib.auth.m ...

  2. select 下拉框样式修改 option文字居右

    select { direction: rtl; /*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/ border: solid 1px #000; /*很关键:将默认的sele ...

  3. layui 数据表格使用

    //第一个实例 table.render({ elem: '#demo' ,height: 400 ,url: '/My_NewsTest/LookServlet' //数据接口 ,page: tru ...

  4. python 03—字符串分割

    字符串分割 例:sentenc = "I am an Englist sentenc" sentence.split() split()把字符串按照空格进行分割,所以得到的结果是 ...

  5. 自定义值类型一定不要忘了重写Equals,否则性能和空间双双堪忧

    一:背景 1. 讲故事 曾今在项目中发现有同事自定义结构体的时候,居然没有重写Equals方法,比如下面这段代码: static void Main(string[] args) { var list ...

  6. 二、【Python】机器学习-监督学习

    关键词 分类(Classification) 回归(Regression) 泛化(Generalize) 过拟合(Overfitting) 欠拟合(Underfitting) 2.1 分类与回归 监督 ...

  7. dell5460笔记本电脑ubuntu18.04系统音频驱动的安装和使用

    一.背景: 近期使用dell5460笔记本在ubuntu系统下观看视频,发现没有声音,考虑安装音频驱动. 二.音频驱动的安装 linux系统的音频驱动基于ALSA(即Advanced Linux So ...

  8. Java实现 蓝桥杯 算法提高VIP Substrings(暴力)

    试题 算法提高 Substrings 问题描述 You are given a number of case-sensitive strings of alphabetic characters, f ...

  9. Java实现 LeetCode 341 扁平化嵌套列表迭代器

    341. 扁平化嵌套列表迭代器 给你一个嵌套的整型列表.请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数. 列表中的每一项或者为一个整数,或者是另一个列表.其中列表的元素也可能是整数或是其他列 ...

  10. Java实现 LeetCode 223 矩形面积

    223. 矩形面积 在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积. 每个矩形由其左下顶点和右上顶点坐标表示,如图所示. Rectangle Area 示例: 输入: -3, 0, 3, 4 ...