You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.7 KiB
PHTML
83 lines
2.7 KiB
PHTML
2 years ago
|
<?php
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | OneThink [ WE CAN DO IT JUST THINK ]
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Author: liu21st <liu21st@gmail.com>
|
||
|
// +----------------------------------------------------------------------
|
||
|
|
||
|
namespace Common\Api;
|
||
|
class CategoryApi {
|
||
|
/**
|
||
|
* 获取分类信息并缓存分类
|
||
|
* @param integer $id 分类ID
|
||
|
* @param string $field 要获取的字段名
|
||
|
* @return string 分类信息
|
||
|
*/
|
||
|
public static function get_category($id, $field = null){
|
||
|
static $list;
|
||
|
|
||
|
/* 非法分类ID */
|
||
|
if(empty($id) || !is_numeric($id)){
|
||
|
return '';
|
||
|
}
|
||
|
|
||
|
/* 读取缓存数据 */
|
||
|
if(empty($list)){
|
||
|
$list = S('sys_category_list');
|
||
|
}
|
||
|
|
||
|
/* 获取分类名称 */
|
||
|
if(!isset($list[$id])){
|
||
|
$cate = M('Category')->find($id);
|
||
|
if(!$cate || 1 != $cate['status']){ //不存在分类,或分类被禁用
|
||
|
return '';
|
||
|
}
|
||
|
$list[$id] = $cate;
|
||
|
S('sys_category_list', $list); //更新缓存
|
||
|
}
|
||
|
return is_null($field) ? $list[$id] : $list[$id][$field];
|
||
|
}
|
||
|
|
||
|
/* 根据ID获取分类标识 */
|
||
|
public static function get_category_name($id){
|
||
|
return get_category($id, 'name');
|
||
|
}
|
||
|
|
||
|
/* 根据ID获取分类名称 */
|
||
|
public static function get_category_title($id){
|
||
|
return get_category($id, 'title');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 获取参数的所有父级分类
|
||
|
* @param int $cid 分类id
|
||
|
* @return array 参数分类和父类的信息集合
|
||
|
* @author huajie <banhuajie@163.com>
|
||
|
*/
|
||
|
public static function get_parent_category($cid){
|
||
|
if(empty($cid)){
|
||
|
return false;
|
||
|
}
|
||
|
$cates = M('Category')->where(array('status'=>1))->field('id,title,pid')->order('sort')->select();
|
||
|
$child = get_category($cid); //获取参数分类的信息
|
||
|
$pid = $child['pid'];
|
||
|
$temp = array();
|
||
|
$res[] = $child;
|
||
|
while(true){
|
||
|
foreach ($cates as $key=>$cate){
|
||
|
if($cate['id'] == $pid){
|
||
|
$pid = $cate['pid'];
|
||
|
array_unshift($res, $cate); //将父分类插入到数组第一个元素前
|
||
|
}
|
||
|
}
|
||
|
if($pid == 0){
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
return $res;
|
||
|
}
|
||
|
}
|