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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C ReadProcessMemory

    C ReadProcessMemoryReadProcessMemory函数用于读取其他进程的数据。BOOLSTDCALLReadProcessMemory( HANDLE hProcess, LPCVOID lpBaseAddress, LPVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead ){ NTSTATUSStatus…

    2022年10月4日
    3
  • 秒的各种换算_秒分秒毫秒纳秒之间换算

    秒的各种换算_秒分秒毫秒纳秒之间换算1秒=1000毫秒;1毫秒=1000微秒;1微秒=1000纳秒;1秒=1000000000纳秒。

    2025年9月19日
    4
  • java开发webservice的几种方式「建议收藏」

    java开发webservice的几种方式「建议收藏」webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录。1.Axis2方式Axis是apache下一个开源的webservice开发

    2022年7月4日
    28
  • python抢淘宝的东西-Python 实现毫秒级淘宝抢购脚本的示例代码

    python抢淘宝的东西-Python 实现毫秒级淘宝抢购脚本的示例代码本篇文章主要介绍了Python通过selenium实现毫秒级自动抢购的示例代码,通过扫码登录即可自动完成一系列操作,抢购时间精确至毫秒,可抢加购物车等待时间结算的,也可以抢聚划算的商品。博主不提供任何服务器端程序,也不提供任何收费抢购软件。该文章仅作为学习selenium框架的一个示例代码。该思路可运用到其他任何网站,京东,天猫,淘宝均可使用,且不属于外挂或者软件之类,只属于一个自动化点击工具,…

    2022年6月10日
    42
  • Android中的应用——谷歌官方Json分析工具Gson使用

    Android中的应用——谷歌官方Json分析工具Gson使用

    2022年1月6日
    148
  • Jmeter下载安装配置—测试小白

    Jmeter下载安装配置—测试小白一,进入官网:http://jmeter.apache.org/1.第一步进入官网如下图2.选择进行下载,下载下来为一个压缩包,解压即可。3.我下载的是jmeter4.0版本,对应jdk1.8。然后就进行解压。个人认为要注意3点:1.解压之后压缩包叫apache-jmeter-4.0.zip,如是src.zip后缀的都不对,打开之后会报错不可用,因为里面缺少我们下一步将要配置的环境变量.jar文件…

    2022年5月29日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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