想在專案中增加分類的麵包屑路徑,但oneThink前台好像沒有提供這樣的功能,就自己動手寫了一個,希望對大家有用。
我們在建立網站的時候,經常要用到麵包屑導航,一般這種導航都是基於多級分類,然後一級一級地往上推的,在oneThink中,無論是列表頁還是文章頁,都定義了目前分類$category的變量,因此,我們用這個變數裡的id利用前端模組的函數呼叫就能產生當前路徑了。
話不多說,先在HOME模組的function裡建立一個用於查找分類指定字段內容的函數 get_category_info();,意在查詢pid 和 allow_publish字段/**尋找指定分類的指定欄位內容<br>
* @param $id<br>
* @param string $field<br>
* @return mixed|string<br>
*/<br>
function get_category_info($id,$field=""){<br>
<br>
if(!$field){<br>
return '沒有指定查找欄位';<br>
}else{<br>
$map = array(<br>
'id'=>array('eq',$id),<br>
'status'=>array('eq',1)<br>
);<br>
$re = M('category')->where($map)->getField($field);<br>
return $re;<br>
}<br>
}
而後建立get_bread()函數/**<br>
* 取得麵包屑<br>
* 基於分類生成分類麵包屑<br>
* @param $id 目前分類ID<br>
*/<br>
function get_bread($id){<br>
//查詢pid<br>
$pid = get_category_info($id,'pid');<br>
//根據目前分類是否允許發佈內容來決定用index模版還是lists模版<br>
$temp = get_category_info($id,'allow_publish')?'lists':'index';<br>
<br>
$str = $pid?<br>
get_bread($pid):<br>
'<a>首頁</a>';<br>
<br>
$str .= ' > <a>$id)).'" alt="'.get_category_title($id). '">'.get_category_title($id).'</a>';<br>
<br>
return $str;<br>
}
最後前端標籤呼叫函數get_bread(){:get_bread($category['id'])}