thinkCMF----列表页跳转
Posted e0yu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkCMF----列表页跳转相关的知识,希望对你有一定的参考价值。
thinkCMF列表循环有个:用来循环文章列表。
<php> $where=[ ‘post.create_time‘=>[‘egt‘,0] ]; $page=[ ‘list_rows‘=>10, ‘next‘=>‘下一页‘, ‘prev‘=>‘上一页‘ ]; </php> <portal:articles item="vo" where="$where" order="post.create_time DESC" page="$page" relation="categories" categoryIds="$category.id" returnVarName="articles_data"> </portal:articles>
但是用这个,一直用不了,就自己重新写了一个:修改 ListController.class 类:
class ListController extends HomeBaseController{ public function index(){ $id = $this->request->param(‘id‘, 0, ‘intval‘); $portalCategoryModel = new PortalCategoryModel(); $category = $portalCategoryModel->where(‘id‘, $id)->where(‘status‘, 1)->find(); // 获取当前栏目下的所有子栏目ID $category_list = Db::name(‘portal_category‘)->field(array(‘id‘,‘parent_id‘))->select(); $category_arr = array(); $cur_category_list = array(); array_push($cur_category_list,intval($id)); foreach($category_list as $v){ $arr = array(); $arr[‘id‘] = $v[‘id‘]; $arr[‘pid‘] = $v[‘parent_id‘]; array_push($category_arr,$arr); } //得到当前栏目所有的子栏目ids $cur_category_ids = array_merge($cur_category_list,get_all_child($category_arr,$id)); //获取当前所有子栏目的所有文章ids $all_post_ids_arr = array(); $all_post_ids = Db::name(‘portal_category_post‘)->where(‘category_id‘,‘in‘,$cur_category_ids)->field(array(‘post_id‘))->select(); foreach($all_post_ids as $v){ array_push($all_post_ids_arr,$v[‘post_id‘]); } // 获取当前栏目及子栏目所有的文章列表 $where = array(); $where[‘id‘] = array(‘in‘,$all_post_ids_arr); $where[‘post_type‘] = 1; $where[‘post_status‘] = 1; $pagelist_arr = Db::name(‘portal_post‘)->where($where)->paginate(12); $page = $pagelist_arr->render(); // 处理跳转链接 和 栏目的图片 $pagelist = array(); foreach($pagelist_arr as $k => $v){ $v[‘thumb‘] = ‘/upload/‘.json_decode($v[‘more‘],true)[‘thumbnail‘]; $v[‘category_id‘] = $this->get_category_id($v[‘id‘]); array_push($pagelist,$v); } $this->assign(‘pagelist‘,$pagelist); $this->assign(‘category‘, $category); $this->assign(‘page‘, $page); $listTpl = empty($category[‘list_tpl‘]) ? ‘list‘ : $category[‘list_tpl‘]; return $this->fetch(‘/‘ . $listTpl); } /* * get_category_id 根据文章的id 获取栏目 category_id */ private function get_category_id($id){ $categoryinfo = Db::name(‘portal_category_post‘)->where(‘post_id‘,‘eq‘,$id)->field(‘category_id‘)->find(); return $categoryinfo[‘category_id‘]; } }
具体使用:
<foreach name="pagelist" item="v"> <dl class="caselist"> <dt class="ab"><a href="{:cmf_url(‘portal/Article/index‘,array(‘id‘=>$v[‘id‘],‘cid‘=>$v[‘category_id‘]))}"><img src="__ROOT__{$v[‘thumb‘]}" width="285" height="190"></a></dt> <dd class="info"> <a href="{:cmf_url(‘portal/Article/index‘,array(‘id‘=>$v[‘id‘],‘cid‘=>$v[‘category_id‘]))}">{$v[‘post_title‘]}</a> <a href="{:cmf_url(‘portal/Article/index‘,array(‘id‘=>$v[‘id‘],‘cid‘=>$v[‘category_id‘]))}">企业官网</a> </dd> </dl> </foreach> <div class="pagination tc"> {$page} </div>
以上是关于thinkCMF----列表页跳转的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SwiftUI 中从一个详情页跳转到另一个详情页并返回列表页?
Android--列表页跳转详情页,动画效果需求之共享元素场景切换动画的实现
Android--列表页跳转详情页,动画效果需求之共享元素场景切换动画的实现