DEDEcms系统制作网站时,它本身提供了很多标签,但要想自己在使用过程中满足自己的特别需求,还得二次开发改它的内核。如需要用到调用当前栏目的顶级栏目下的所有子栏目,不指定typeid,那么应该如何操作呢?

应用场景:

导航功能,Dede自身提供的方法只能通过指定父栏目id来实现,一个站很多地方需要只调用当前栏目的顶级栏目下的所有子栏目,不指定typeid,那模板代码怎么实现?

1. 找到\include\taglib\channelartlist.lib.php

找到:    $attlist = ‘typeid|0,row|20,cacheid|’;

修改为:$attlist = ‘typeid|0,row|20,cacheid|,type|’;     //这边加个 type 实现 在子栏目下调用   同级子栏目的信息

2. 修改66行处的代码

if($typeid==0 || $typeid==’top’) {

$tpsql = ” reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 “;

}

在它前面加个if条件判断,修改为:

if($type=='reid') {

$reid = $refObj->TypeLink->TypeInfos['reid'];

if( $reid == 0 ){

$tpsql = " reid='$typeid' AND ispart<>2 AND ishidden<>1 ";

}else{

$tpsql = " reid=$reid AND ispart<>2 AND ishidden<>1 ";

}

}else if($typeid==0 || $typeid=='top'){

$tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 ";

}

保存上面文件。然后在列表页或者内容页使用

{dede:channelartlist type=’reid’ row=’1′}

底层循环代码

{/dede:channelartlist}

就可以方便调用了.

示例代码:

{dede:channelartlist type=’reid’ row=’1′}

{dede:channel type=’son’}

php 调取子栏目,Dedecms 如何调取某个栏目所在的顶级栏目及顶级下的子栏目相关推荐

  1. 帝国cms灵动标签调用当前栏目下所有子栏目链接,子栏目名称,子栏目图片

    帝国cms灵动标签调用当前栏目下所有子栏目链接,子栏目名称,子栏目图片 [e:loop={"select classname,classpath,classid,classimg from ...

  2. R语言str_sub函数从字符串中提取或替换子字符串(substring):str_sub函数指定起始位置和终止位置抽取子字符、str_sub函数指定起始位置和终止位置替换子字符串

    R语言str_sub函数从字符串中提取或替换子字符串(substring):str_sub函数指定起始位置和终止位置抽取子字符.str_sub函数指定起始位置和终止位置替换子字符串 目录

  3. 【Groovy】xml 序列化 ( 使用 MarkupBuilder 生成 xml 数据 | 标签闭包下创建子标签 | 使用 MarkupBuilderHelper 添加 xml 注释 )

    文章目录 一.标签闭包下创建子标签 二.使用 MarkupBuilderHelper 添加 xml 注释 三.完整代码示例 一.标签闭包下创建子标签 在上一篇博客 [Groovy]xml 序列化 ( ...

  4. IDEA如何在包下建立子包

    idea如何在包下建立子包 第一次在包下建立子包时候出现了问题 在java > springmvc包下再new上一个package controller的时候就会出现这个样子 如何解决 在IDE ...

  5. 不使用输入框如何实现下拉_如何利用Axure实现下拉子菜单?

    Axure RP是一款专业的快速原型设计工具,让我们能够快速设计并创建出应用软件或Web页面的具备高保真和交互能力的原型.通过原型设计,不但能更好地与客户进行交流确认,也能明确地给开发人员以成品效果作 ...

  6. 多线程学习--案例-子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次

    子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序. package Demo4; public class ThreadTe ...

  7. Java多线程面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次

    近在学习多线程,特贴在这里,并附上自己所作答案(参考与张孝祥老师的方法). 题目如下: 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50 ...

  8. Android中layout目录的作用,Android 开发中layout下的子文件夹

    Android 开发中layout下的子文件夹 发布时间:2020-10-25 11:42:36 来源:脚本之家 阅读:71 作者:厚土火焰山 如果一个项目内有很多个界面,那么在layout下会有太多 ...

  9. 帝国CMS之列表页调用父栏目下所有子栏目名称(带链接)

    帝国CMS之列表页调用父栏目下所有子栏目名称(带链接) 列表页模板的代码: <h3>您的当前位置: [!--newsnav--]</h3><?php$fcr=explod ...

最新文章

  1. 《团队项目开发之三对一维环形数组的求解》
  2. 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库到 Android Studio 工程 | 配置 build.gradle 构建脚本 )
  3. xcode 4.2 如何调试 EXC_BAD_ACCESS
  4. MapXtreme 安装、编码及打包注意事项
  5. php调用外站数据,dedecms数据库外部调用,两dedecms站点数据远程调用
  6. 在Centos7上搭建Mysql数据库
  7. 201671010139 徐楠 关于学习继承
  8. 今天写的一个导出html页面的过程
  9. cvSplit(),cv图像颜色通道分割和融合
  10. 网页设计软件列表HTML,十种网页设计软件
  11. 1颜色原理及数字图片原理
  12. C# IndexOf用法
  13. intel 显卡 opencl安装
  14. 用大数据看懂《速度与激情》的用车法则
  15. 03 数据载入、存储及文件格式
  16. 全球注意力缺陷多动障碍(ADHD)市场规模2021年大约为796亿元(人民币),预计2028年将达到1259亿元
  17. curl http POST请求出现405错误
  18. python学习日记
  19. Java源码详解之NameValuePair
  20. 渗透小技巧从getshell到3389端口远程桌面连接靶机

热门文章

  1. SAP 电商云 Spartacus UI SSR 里 engine 和 engine instance 的区别
  2. ng-content和@ContentChild的配合用法
  3. Angular ng-container元素的学习笔记
  4. 在SAP CAL(Cloud Application Library)上搭建ABAP HANA系统
  5. scn SAP UI5 exercise - create root view
  6. how does {accountID} binding work?
  7. ComponentBase.createMetaData and manifest.json oRoute
  8. ERP customizing extraction - how extraction function module is determined
  9. IDOC generation debug for One Order
  10. why some product does not have Note assignment block