帝国cms批量添加文章 帝国CMS二次开发替换“当前位置导航newsnav

帝国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"&nbsp;>&nbsp;<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="&nbsp;>&nbsp;";}echo$prefix."<ahref="/".$r[classurl]."">".$r[classname]."</a>";}}

第二步:在模板里,以前写[!--newsnav--]的地方,直接替换成<?user_linknav($GLOBALS[navclassid]);?>