将帝国CMS进行二次开发以替换“当前位置导航newsnav”
帝国CMS二次开发替换“当前位置导航newsnav”可以通过以下步骤实现: 1. 打开后台,找到模板管理。 2. 选择对应的模板,点击编辑。 3. 在模板中找到需要替换的位置,将原来的代码替换为新的代码。 4. 保存并更新网站,查看效果是否满意。 需要注意的是,在进行二次开发时,要确保对帝国CMS的模板文件和标签有一定的了解,以便正确地修改代码。此外,为了避免出现问题,建议在进行二次开发前备份好相关文件。
相对官方的[!--newsnav--],解决样式死板,可随意更改输出的样式。有的栏目用的二级域名,比如资讯页面,我想[!--newsnav--]显示的是 资讯首页>xxx>xxx 而不是 首页>资讯>xxx>xxx,用[!--newsnav--]就实现不了
所以要改进,如何改进?
第一步:在e/class/userfun.php中加入下面的函数
//当前位置导航functionuser_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="selectclassname,bclassid,classpathfrom{$dbtbpre}enewsclasswhereclassid=".$classid;$sql=$empire->query($query);//echo"<ahref="/">首页</a>";while($r=$empire->fetch($sql)){findparent($r[bclassid]);echo" > <ahref="/".$r[classurl]."">".$r[classname]."</a>";}}//当前位置导航,递归查询父栏目functionfindparent($classid){global$empire,$dbtbpre;$query="selectclassname,bclassid,classpathfrom{$dbtbpre}enewsclasswhereclassid=".$classid;$sql=$empire->query($query);while($r=$empire->fetch($sql)){findparent($r[bclassid]);$prefix="";if($r[bclassid]){$prefix=" > ";}echo$prefix."<ahref="/".$r[classurl]."">".$r[classname]."</a>";}}
第二步:在模板里,以前写[!--newsnav--]的地方,直接替换成<?user_linknav($GLOBALS[navclassid]);?>