帝国CMS完美替换“当前位置导航”[!--newsnav--]
官方的[!--newsnav--]有什么不足?
1、样式死板 输出的样式写死在程序里 要修改只能改官方源码 升级时会痛苦不堪
2、有的栏目用的二级域名,比如资讯页面,我想[!--newsnav--]显示的是 资讯首页>xxx>xxx 而不是 首页>资讯>xxx>xxx,用[!--newsnav--]就实现不了
所以要改进,如何改进?
第一步:在e/class/userfun.php中加入下面的函数
//当前位置导航
function user_linknav($classid){
global $empire,$dbtbpre,$navclassid,$class_r,$public_r;
//当前栏目
if($classid=="selfinfo"){
if(empty($navclassid)){
$classid=0;
}else{
$classid=$navclassid;
//终极类别则显示同级类别
if($class_r[$classid][islast]&&$class_r[$classid][bclassid]){
$classid=$class_r[$classid][bclassid];
}
if($class_r[$classid][islast]&&empty($class_r[$classid][bclassid])){
$classid=0;
}
}
}
$query="select classname,bclassid,classpath from {$dbtbpre}enewsclass where classid=".$classid;
$sql=$empire->query($query);
//echo "<a href = \"/\">首页</a>";
while($r=$empire->fetch($sql)){
findparent($r[bclassid]);
echo " > <a href =\"/".$r[classurl]."\">".$r[classname]."</a>";
}
}
//当前位置导航,递归查询父栏目
function findparent($classid){
global $empire,$dbtbpre;
$query="select classname,bclassid,classpath from {$dbtbpre}enewsclass where classid=".$classid;
$sql=$empire->query($query);
while($r=$empire->fetch($sql)){
findparent($r[bclassid]);
$prefix="";
if($r[bclassid]){$prefix = " > ";}
echo $prefix."<a href =\"/".$r[classurl]."\">".$r[classname]."</a>";
}
}
第二步:在模板里,以前写[!--newsnav--]的地方,直接替换成<?user_linknav($GLOBALS[navclassid]);?>
这里代码直接照搬了前辈的代码,只是有些小改动,较之于前辈的贴子,这篇里的代码改动了
1、findparent函数里加了一行判断,如果是顶级栏目了,则前面不加“ > ”,否则再加
2、把$r[classpath]改成了$r[classurl],针对绑定二级域名的栏目,这样的写法不会出错(如果是ecms6.6,还要写成$r[classpath])
3、调用该功能时,不使用标签,直接写php代码,省去一步麻烦
相关文章
- 是否提取 getfirsttitlepic 1 缩略图宽度 getfirsttitlespicw 105 缩略图高度 getfirsttitlespich 118...2014-10-17
- /*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) 帝国CMS显示指定时间内更新的信息数...2016-11-01
- 这篇文章主要为大家详细介绍了使用jQuery.Pin垂直滚动时固定导航的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-05-27
- 用灵动标签(e:loop)可以实现各种幻灯效果,本节讲解制作幻灯的基本方法。 如本站JS焦点图频道里的大部分幻灯图片效果都可以用灵动标签调用的。 ...2015-12-30
- Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架,主要基于 HTML、CSS、JAVASCRIPT 的。接下来通过本文给大家介绍BootStrap 附加导航组件的知识,感兴趣的朋友一起学习吧...2016-07-29
帝国CMS把[!--list.pageno--]就替换成“第[!--list.pageno--]页
/*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) 打开:e\class\functions.php 修改 $s...2017-07-06- 这篇文章主要介绍了jQuery实现的导航下拉菜单效果,涉及jQuery响应鼠标事件动态操作页面元素的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2016-07-06
- 这篇文章主要介绍了基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载,需要的朋友参考下...2016-01-08
- 刚升级一会就出现 Multiple primary key definedalter table ***_ecms_infoclass_shop change classid classid int(10) unsigned NOT NULL default '0', DROP INDEX clas...2013-05-20
帝国CMS登录后台提示"您的Cookie没有开启,不能登陆成功"的解决方法
如果没有动过文件特别是/e/config/config.php文件的话!请按照如下操作肯定就OK了! 到你的主机或者服务器环境里找到php.ini文件(如果不知道在哪联系你的空间商就行了) 找到如下...2016-05-19- 这篇文章主要介绍了Bootstrap导航栏各元素操作方法,针对表单、按钮、文本进行操作,感兴趣的小伙伴们可以参考一下...2015-12-29
- /*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) php随机文章 方法1、WC写的高效随...2017-07-06
- /*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) 用灵动标签调用最新最多评论文章: [...2016-08-27
- 帝国CMS安装以及恢复数据模板视频教程,主要讲解了墨鱼出品的帝国CMS源码的安装以及数据库模板的回复过程,请大家注意视频里的一些操作细节。选择超清模式播放!...2016-05-08
- 这篇文章主要给大家介绍了关于微信小程序实现导航功能的操作步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
帝国CMS灵动标签调用当前父栏目下所有子栏目-支持选中状态/高亮
帝国CMS实现灵动标签调用当前父栏目下所有子栏目-支持选中状态及当前栏目高亮,支持栏目自定义排序。最适用于内容模板,显示父栏目下的子栏目。 支持静态栏目页与动态栏目页 代...2016-05-19- 商品加入购物车链接地址为:[!--news.url--]e/ShopSys/doaction.php?enews=AddBuycar&classid=[!--classid--]&id=[!--id--]...2015-12-30
- 给帝国CMS任意模型加上百度地图标注功能。 第一步:首先在模型建立三个字段: 字段名:map_x 字段类型:DOUBLE 字段名:map_y 字段类型:DOUBLE 字段名:map_z 字段类型:TINYINT...2016-05-19
- 这篇文章主要教会大家如何利用Bootstrap3制作自己的导航栏,设计自己喜欢的元素、样式,感兴趣的小伙伴们可以参考一下...2016-05-14
- 针对帝国CMS7.0:有得同学开启了后台登陆验证码,但是由于种种原因后台验证码没有显示,然而不填写验证码又无法登陆后台关闭后台验证码,墨鱼给同学们一个解决方案用工具(一定要用工...2016-05-08