想在项目中增加分类的面包屑路径,但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'])}