如果想動態的獲取當前欄目所處的位置,就要關聯到數據庫,下面是例子:
欄目表(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里面調用:
這時候如果有父級欄目就會輸出父級欄目然后在后面加個 “>”,如果沒有父級欄目就輸出空。
最終的打印結果為:
① 沒有父級欄目:
② 有父級欄目: