如果想动态的获取当前栏目所处的位置,就要关联到数据库,下面是例子:
栏目表(category):
涉及到二级目录。
(1)首先在你的首页导航栏,还有首页所出现的链接后面,为栏目加上catid,就像这样: 。
当然,子页公用的导航栏也是要加上的。
(2)然后在控制器里面获取数据。
/* 当前位置 */
$cat_id = $_GET['catid'];
$cat = M("category"); //实例化category
$data = $cat->where('cat_id='.$cat_id)->find(); //在category表中查找数据
if($data['parent_id']){ //判断当前栏目是否有父级栏目
$parent_data = $cat->where('cat_id='.$data['parent_id'])->find(); //如果有,查找父级栏目cat_id
}
if($parent_data){ //判断父级栏目是否有cat_name
$this->assign('parent', $parent_data); //如果有,将值赋给parent变量
}else{
$this->assign('parent', ''); //如果没有,将空值赋给parent变量
}
$this->assign('cat',$data); //将以上所获取到的值赋给cat变量
/* END 当前位置 */
(3)新建一个公用HTML文件在Common里,命名为currentPosition.html,内容如下:
(4)在需要显示当前栏目的地方引用currentPosition.html即可:
<include file="Common/Common/currentPosition.html" />
最终的打印结果为:
① 没有父级栏目:
② 有父级栏目:
当然这一切是建立在连接到数据库的情况下。
当前位置算是获取了,但是要是想给当前栏目的父级栏目添加链接,就要给category表添加一个新的字段:
然后修改一下控制器内容,在里面添加几句:
在currentPosition.htm里面调用:
这时候如果有父级栏目就会输出父级栏目然后在后面加个 “>”,如果没有父级栏目就输出空。
最终的打印结果为:
① 没有父级栏目:
② 有父级栏目: