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

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

321 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搬家报错No input file specified
宝塔面板帝国cms搬家报错No input file specified

今天有客户向鸥哥求助说宝塔面板帝国cms搬家报错No input file specified,这...

23 1867
帝国cms灵动标签调用友情链接的多种形式
帝国cms灵动标签调用友情链接的多种形式

帝国cms怎样用灵动标签调用友情链接?又要怎样区分链接有没有图片、友情链接...

1 374
帝国cms会员中心怎样调用我提交的反馈历史记录?
帝国cms会员中心怎样调用我提交的反馈历史记录?

帝国cms信息反馈表非常好用,通过合理开发信息反馈功能,我么可以实现用户留言...

1 233
怎样实现帝国CMS验证码无刷新显示?
怎样实现帝国CMS验证码无刷新显示?

这个蜘蛛爬虫、恶意广告横行的年代,任何涉及到信息反馈的页面不加入验证码就...

1 366
帝国cms灵动标签开发那年今日发布的文章
帝国cms灵动标签开发那年今日发布的文章

很多国民app有去年今日的功能,就如QQ空间的那年今日。而网站如果调用那年今...

0 375
帝国cms怎样调用图集第一张图片?
帝国cms怎样调用图集第一张图片?

帝国cms图片集非常好用,通过合理配置图片集,我们可以实现网站图集的展示,让页...

0 331
帝国cms怎样给广告增加排序?
帝国cms怎样给广告增加排序?

帝国cms广告系统功能比较强大,但本身并没有排序的功能。如果想要替换广告的...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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