thinkcmf 2 获取所有兄弟栏目, 并高亮当前栏目

最新版的Thinkcmf居然没有这个功能,获取所有兄弟栏目, 并高亮当前栏目。 做企业站,还是没有织梦顺手,但是二次开发容易的多了 

在common/function.php下,加入:

/**
 * 获取分类
 */
function page_get_nav(){
	$id = $_GET['id'];
	$Model = new \Think\Model();
	$res = M("Posts")->where(array('id'=>$id))->find();
	$res = M("Nav")->where(array("label"=>$res['post_title']))->find();
	if(is_array($res) && $res['parentid'] != 0){
		$res = M("Nav")->where(array("parentid"=>$res['parentid']))->select();
		foreach ($res as $key => $v) {
			$temp = unserialize($res[$key]['href']);
			$res[$key]['url'] = leuu($temp['action'],$temp['param']); 
			if($temp['param']['id']==$id){
				$res[$key]['current'] = "true";
			}
		}
		// p($res);die();
		return $res;
	}
	return array();
}

function list_get_nav(){
	$id = $_GET['id'];
	$Model = new \Think\Model();
	$res = M("Terms")->where(array('term_id'=>$id))->find();
	$res = M("Nav")->where(array("label"=>$res['name']))->find();
	if(is_array($res) && $res['parentid'] != 0){
		$res = M("Nav")->where(array("parentid"=>$res['parentid']))->select();
		foreach ($res as $key => $v) {
			$temp = unserialize($res[$key]['href']);
			$res[$key]['url'] = leuu($temp['action'],$temp['param']); 
			if($temp['param']['id']==$id){
				$res[$key]['current'] = "true";
			}
		}
		// p($res);die();
		return $res;
	}
	return array();
}


然后在文章列表和单页的控制器中,加入类似下面的代码:

$list_get_nav = list_get_nav();
$this->assign("list_get_nav",$list_get_nav);

$page_get_nav = page_get_nav();
$this->assign("page_get_nav",$page_get_nav);


模板页代码如下:

<volist name="page_get_nav" id="v">
      <li><a href="{$v.url}"  <if condition="$v['current'] eq true">class="selected"</if> >{$v.label}</a> </li>
</volist>


修改时间 2016-07-05

真诚赞赏,手留余香
赞赏
随机推荐
Flex 布局教程
Vue 3.0 快速教程
unserialize(): Error at offset出现的原因分析以及解决方法
V8引擎、 libuv 和 N-API
适用于thinkphp5的 Auth授权类
近几年前端技术盘点以及 2016 年技术发展方向
javascript基础细讲
Windows下,Apache防止ddos攻击,安装配置mod_evasive模块
macOS卸载Android Studio
跟Github学习设计不符合 CRUD 情况的RESTful API