thinkCMF—-列表页跳转

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']}" alt="" 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>

 

转载于:https://www.cnblogs.com/e0yu/p/9540734.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101467.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号