下载鸥 > 网站下载 > 开发教程 > 帝国CMS

帝国cms怎样判断一个栏目有没有子栏目?(父栏目换位判断原创方案)

310 2021-04-22 03:11:05

收藏

简述

判断当前栏目是否是其他栏目的父栏目,即可确定本栏目是否有子栏目。
在帝国cms站点的开发过程中,有时候需要判断栏目有没有下级栏目,如果有子栏目,则展示下拉框,否则不出现下拉框。

帝国cms怎样判断一个栏目有没有子栏目?(父栏目换位判断原创方案)
网上流传的教程是判断islast方案以及非islast方案(方案名提炼简称),概要与功能分析如下。
 

islast方案

islast方案只能判断这个栏目下面有没有最终栏目,如果子栏目不是终极栏目,则数据库不会存储栏目id到sonclass字段,判断必然失效。因此,后来有高手提出了非islast判断方案。
 

非islast方案

从搜索结果来看,非islast方案流传也比较广,但此方案需要查询并存储为数组,然后转为字符串,在这个基础上再用strstr函数进行比较,不仅繁琐难懂,且消耗服务器性能。因此我们研究出了第三种方案。
 

父栏目换位判断方案

我们的需求是判断当前栏目是否有子栏目,如果子栏目无法取得,那么我们就换个思路:取得其他栏目的父栏目。如果其他栏目的父栏目等于当前循环的栏目id,则这个id的栏目自然有子栏目。理解稍绕,但实现并不绕,请看下方源码。

注:考虑到有此需求,并想要实现的的用户具备一定的代码基础,此处只粘贴核心源码与大意。
<?
    $re=$empire->fetch1("select classid from {$dbtbpre}enewsclass where bclassid=$bqr[classid] limit 1");
    if($re){
?>
    //此处的循环省略
    <div class="drop-down"><ul><li><a href="#">子栏目名</a></li></ul></div>
    //此处的循环结束符省略
<?}?>

 

判断是否有子栏目核心思路

1、循环全部父栏目为0的栏目,而后取得全部一级栏目。
2、获取一条所有父栏目为上方栏目id的栏目。
3、如果获取到,则当前栏目必然有子栏目,进入下一级循环;如果获取结果为空,则不进行任何操作。

这样,我们就通过最简洁的方案实现了判断一个栏目有没有子栏目的功能。
 

附注

网上关于如何判断一个栏目是否有子栏目的教程很多,除却islast和非islast方案外,肯定还有其他更好的方案,直接复制粘贴确实省事也省心,但实实在在的理解其原理并能做到举一反三,最终才能变成自己的技能。

本文地址:https://xzo.com.cn/develop/empire/831.html

有帮助,很赞!

信息来源:下载鸥
导出教程 下载word版教程
发表评论 共有条评论
关于帝国CMS


帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用

当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。

推荐帝国CMS开发教程
帝国CMS怎样让一条信息具有多个模板?
帝国CMS怎样让一条信息具有多个模板?

帝国CMS的信息是绑定内容模板的,通过本教程可以实现在前台自由使用不同的模...

17 482
帝国CMS新手入门用万能标签还是灵动标签比较快?
帝国CMS新手入门用万能标签还是灵动标签比较快?

帝国CMS有两大标签,其中一个叫万能标签,另一个叫灵动标签,两个标签用法截然不...

1 369
帝国cms下载判断设备环境安卓苹果并适配下载地址
帝国cms下载判断设备环境安卓苹果并适配下载地址

帝国cms静态站下载判断设备环境是安卓还是苹果,并自动适配下载地址,如果当前...

1 358
帝国cms没有标题图时怎样调用随机图片做缩略图?
帝国cms没有标题图时怎样调用随机图片做缩略图?

如果调用同一张图片,在大量图片缺失的情况下又十分难看。所以今天,鸥哥给大家...

1 368
帝国cms网站加载速度很慢怎么办?
帝国cms网站加载速度很慢怎么办?

很少有帝国cms反馈网站加载速度很慢的问题,如果你的帝国cms站点加载速度很慢...

1 484
帝国cms灵动标签日期用英文显示的方法
帝国cms灵动标签日期用英文显示的方法

我们知道,帝国cms的日期可以根据需要调用问多种格式,如x年x月x日、年-月-日、...

0 258
帝国cms禁止蜘蛛抓取后台提升网站安全
帝国cms禁止蜘蛛抓取后台提升网站安全

后台是网站安全的重中之重,而帝国cms后台路径可以修改让得网站安全度大为提...

1 411
帝国cms判断图片是否带域名,无域名则补全域名
帝国cms判断图片是否带域名,无域名则补全域名

那么,我们要怎样在图片路径不完善的时候正常在手机端显示图片呢?...

0 331
随机帝国CMS开发教程
帝国CMS+jquery简单实现点击图片进入下一页功能
帝国CMS+jquery简单实现点击图片进入下一页功能

使用js实现点击按钮进入下一个内容页分页,用jQuery做肯定是最快捷的方式,因此...

1 279
帝国CMS内容页怎样用js实现点击改变字号大小?
帝国CMS内容页怎样用js实现点击改变字号大小?

许多帝国cms开发的小说站点、文字资料站点要考虑目标用户的不同而设置不同...

1 356
帝国cms封面模板怎样调用栏目别名做标题
帝国cms封面模板怎样调用栏目别名做标题

我们知道,帝国cms终极栏目可以用<?=$class_r[$GLOBALS[navclassid]][bname]?...

1 308
帝国cms信息评论页怎样给评论者添加超链接?
帝国cms信息评论页怎样给评论者添加超链接?

WordPress评论可以带链接,站长可以借此发布外链,也因此可以提高站长留言的积...

1 300
帝国cms默认首页index.html被收录了怎样做重定向?
帝国cms默认首页index.html被收录了怎样做重定向?

今天有客户联系鸥哥,说网站默认首页index.html被收录了。这本是好事,奈何网站...

0 394
帝国cms怎样调用一周内发布的热门榜单信息并按点击排序?
帝国cms怎样调用一周内发布的热门榜单信息并按点击排序?

帝国cms自带的js是可以实现周榜、月榜效果的,但js由于其临时加载的特性,天生...

3 567
帝国cms封装自定义函数实现用户发布数统计
帝国cms封装自定义函数实现用户发布数统计

在帝国cms会员开发的过程中,我们经常需要展示用户文章发布数统计。如果每次...

1 230
帝国cms公共模板变量temp.header/temp.footer怎样在php代码中直接调用?
帝国cms公共模板变量temp.header/temp.footer怎样在php代码中直接调用?

在帝国cms二次开发过程中,我们经常需要调用模板的公共部位,也就是帝国cms的公...

0 414
客服QQ:341553759
点击咨询 常见问题 >
官方交流群:90432500
点击加入