欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

当前栏目相关(当前位置、栏目列表、当前栏目数组等)

程序员文章站 2024-02-03 14:45:16
...
获取当前栏目相关数组(
当前位置、
栏目列表、
当前栏目数组,
一级栏目数组



第一次提交代码,如果有什么问题欢迎指正。
//unset($data[$key]);
上面代码注视是因为在测试的时候,如果同级有多个分类,如果进行unset操作就会只显示一个分类 ,各位大神们可以试试。
效果:
当前栏目相关(当前位置、栏目列表、当前栏目数组等)

1、调用函数 class VMSExtends{
/* category_tree()
* @param Array $cateArray[positionArr] // 获取当前位置
* @param Array $cateArray[position] // 获取当前位置html代码
* @param Array $cateArray[list] // 该cate_id所在的树
* @param Array $cateArray[start] // 首位cate_id
* @param Array $cateArray[end] // 末位cate_id
* return $cateArray
*/
static public $pos_list = array();
static public $cate_list = array();
static public $cateArray = array();
/* 获取当前位置数组 */
function got_pos(&$data,$nowcid,$count=0){
foreach ($data as $key => $value){
if($value['id']==$nowcid){
$value['count'] = $count;
self::$pos_list[]=$value;
//unset($data[$key]);
self::got_pos($data,$value['pid'],$count+1);
}
}
return self::$pos_list;
}
/* 获取当前cate_id的一级栏目下的树
*
*/
function got_list(&$data,$nowid,$count=0){
foreach ($data as $key => $value){
if($value['pid']==$nowid){
$value['counts'] = $count;
self::$cate_list[]=$value;
//unset($data[$key]);
self::got_list($data,$value['id'],$count+1);
}
}
return self::$cate_list;
}
/* 获取当前cate_id相关数组 */
function category_tree($data,$nowcid){
/* 获取当前位置数组 */
$cateArray['positionArr'] = array_reverse(self::got_pos($data,$nowcid,0));
foreach($cateArray['positionArr'] as $k=>$val){
$cateArray['position'] .=' >> '.$val[name].' ';
}
// 获取首位 cate_id 数组
$cateArray['start'] = $cateArray['positionArr'][0];
// 获取末位 cate_id 数组
$cateArray['end'] = end($cateArray['positionArr']);
/* 获取当前cate_id的一级栏目下的树 */
$cateArray['list'] = self::got_list($data,$cateArray['start']['id'],0);
return $cateArray;
}
2、使用方法
我把(1)的代码的文件VMSExtends.php放在Extend/Vendor/VmsLib/下。
使用代码如下:/* 获取当前位置 */
$result = M($cate_name)->field('id,templ,pid,name')->where("templ != 'url'")
->order('sort_order ASC,id asc')->select(); // 应该是读取缓存数据的,为了测是方便就这样直接读数据库了
vendor('VmsLib.VMSExtends');
$cateArray = VMSExtends::category_tree($result,$cate_id);
$this->assign('cateArray',$cateArray);
3、当前位置
{$cateArray['position']}

4、栏目列表

AD:真正免费,域名+虚机+企业邮箱=0元