1. 程式人生 > >thinkCMF----列表頁跳轉

thinkCMF----列表頁跳轉

field sign request php private render mode his dex

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----列表頁跳轉