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

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

418 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百度推送插件怎样将默认ID排序改为时间倒序?
帝国CMS百度推送插件怎样将默认ID排序改为时间倒序?

很多采集站点可能是这样操作的:采集好的资讯时间是采集时间,到了发布的时候会...

19 627
帝国cms怎样将一二三级置顶改为首页栏目置顶等其他名字?
帝国cms怎样将一二三级置顶改为首页栏目置顶等其他名字?

帝国cms推荐、头条级别要改名都可以在栏目设置(栏目-头条/推荐级别)里进行修...

1 470
帝国cms怎样展示会员总数与最新注册的会员名称?
帝国cms怎样展示会员总数与最新注册的会员名称?

如果网站会员数量较多,展示会员总数与最新注册会员名可以有效提升用户留存。...

3 401
帝国cms安装报错fatal error:require():Failed opening required ../class/EmpireCMS_version.php(include_path=.
帝国cms安装报错fatal error:require():Failed opening required ../class/EmpireCMS_version.php(include_path=.

帝国CMS安装报错 fatal error:require():Failed opening required ../clas...

1 668
帝国CMS文章配图怎样设置自动添加水印?
帝国CMS文章配图怎样设置自动添加水印?

现在采集网站非常多,不止采集内容,还采集图片,还不标注出处,非常可恶。那么,帝国...

1 509
帝国cms备份的数据存储在哪个文件夹?
帝国cms备份的数据存储在哪个文件夹?

有些时候,我们需要备份数据并取出来,此时从哪里去取呢?帝国cms备份的数据存储...

1 826
帝国cms静态页中如何获取php设置的cookie值?
帝国cms静态页中如何获取php设置的cookie值?

帝国cms的前台页面,是生成的静态文件,如果想要直接获取cookie,或是直接生成页...

3 596
帝国cms怎样关闭评论验证码?
帝国cms怎样关闭评论验证码?

帝国cms网站评论验证码是一个很重要的功能,有验证码才能挡住大量的灌水信息...

0 373
推荐插件
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

0 336
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

0 524
帝国cms自动生成文章新闻目录插件下载
帝国cms自动生成文章新闻目录插件下载

用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...

0 1081
帝国cms百度AI图像清晰度增强api接口对接插件
帝国cms百度AI图像清晰度增强api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像清晰度增强的功能。经...

0 498
帝国cms百度文字识别ocr接口对接插件
帝国cms百度文字识别ocr接口对接插件

许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...

0 438
帝国cms联想词搜索高级搜索插件下载
帝国cms联想词搜索高级搜索插件下载

帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...

0 697
帝国cms批量添加后台用户插件
帝国cms批量添加后台用户插件

使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...

0 701
帝国cms自动给正文关键词添加tag内链
帝国cms自动给正文关键词添加tag内链

帝国cms有自带的给关键词添加内链功能,但需要手动添加关键词,容易出现疏漏和...

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