搜索
系统检测到您的用户名不符合规范:

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

浏览:3293 发布日期:2013年08月29日 分类:功能实现
获取当前栏目相关数组(
当前位置、
栏目列表、
当前栏目数组,
一级栏目数组

)

第一次提交代码,如果有什么问题欢迎指正。
//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'] .=' >> <a href="?a=index&m=content&cate_id='.$val[id].'">'.$val[name].'</a> ';
}
// 获取首位 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、栏目列表
<ul>
<volist name="cateArray['list']" id='val'>
<li style="text-indent:{$val['counts']*2}em;"><a href="{:u('content/index',array('cate_id'=>$val['id']))}" >{$val.name}</a> </li>
</volist>
</ul>
收藏
sevenleos
积分:1679 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /