帝国CMS二次开发替换“当前位置导航newsnav
发布时间:2021-08-29作者:帝国建站网
相对官方的[!--newsnav--],解决样式死板,可随意更改输出的样式。有的栏目用的二级域名,比如资讯页面,我想[!--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]);?>
相关帝国教程
- 06-05在帝国cms内容页根据关键字调用相关内容
- 11-04帝国CMS-调用本周本月推荐排行的方法
- 09-14帝国cms模板调用多个父栏目ID的信息SQL语句
- 11-12帝国cms7.5模板友情链接SQL调用代码标签的调用方法
- 10-22帝国CMS操作数据库函数
- 05-02帝国cms修改会员发布投稿的模板
- 08-30帝国CMS信息置顶扣除相应积分
- 11-30帝国cms程序服务器搬家教程
- 02-12帝国CMS动态版循环栏目伪静态地址
- 05-10帝国CMS模板列表页(list.var)中调用栏目名称而非栏目别名的方法
- 07-31帝国CMS调用当前专题信息
- 09-18帝国CMS灵动标签调用包含指定短语关键词关键字文章的语法
- 09-15帝国cms后台发布信息时的多图上传去掉链接a标签
- 07-16帝国CMS在内容模板里控制内容简介smalltext显示字数
- 05-30帝国cms调用指定条件的信息使用方法
- 07-03帝国CMS7.5版升级支持自定义后台登录文件
- 11-24帝国CMS不同会员组显示不同的会员中心菜单项
- 04-26帝国cms调用当前“结合项”属性下的文章数量
- 10-23帝国cms新建栏目提示“建立目录不成功
- 05-30帝国cms后台操作出现“您来自的链接不存在”几个解决方法