Pyrocms页面上的分页

时间:2012-08-23 07:19:52

标签: codeigniter pagination pyrocms

我目前正在pyrocms页面上显示产品列表。使用插件我从db表中获取产品并将其显示为列表我想使用分页但不知道如何使用它以及从何处开始。有没有人知道任何教程或有一些建议吗?

2 个答案:

答案 0 :(得分:1)

您不需要加载分页库或初始化它。它与您在常规codeigniter中的情况略有不同,您也可以在codeigniter pagination class

中使用它的方式。

我通常这样做是为了分页。

控制器中的

使用此

    ....
    // Create pagination links
    $total_rows = $this->products_m->count_all_products();
    $pagination = create_pagination('products/list', $total_rows);
    //notice that product/list is your controller/method you want to see pagination there        

    // Using this data, get the relevant results
    $params = array(
        'limit' => $pagination['limit']
    );
    $this_page_products = $this->product_m->get_all_products($params);
    ....
    //you got to pass $pagination to the view
    $this->template
            ->set('pagination', $pagination)
            ->set('products', $this_page_products)
            ->build('products/view');
显然,你会有一个名为products_m的模型 在您的模型中,这将是您的get_all_products函数,我相信您也可以构建count_all_products()函数

private function get_all_products($params){
 //your query to get products here
 // use $this->db->limit();

 // Limit the results based on 1 number or 2 (2nd is offset)
        if (isset($params['limit']) && is_array($params['limit']))
                $this->db->limit($params['limit'][0], $params['limit'][1]);
        elseif (isset($params['limit']))
                $this->db->limit($params['limit']);
 //rest of your query and return
}

现在在您看来,您必须在传递的foreach变量中$products并显示分页链接,在您的视图中使用此行

<?php echo $pagination['links'];?>

我在作品中使用它,希望它有所帮助。

答案 1 :(得分:0)

Pyrocms使用了codeigniter框架这个代码在模块的情况下工作得很好但是我从来没有在插件上尝试过这个但是你仍然可以试试这个。

在Controller中加载分页库

$this->load->library('pagination');

$config['base_url'] = 'http://example.com/index.php/test/page/';
$config['total_rows'] = 200;
$config['per_page'] = 20;

$this->pagination->initialize($config);

在视图中使用此代码生成链接

echo $this->pagination->create_links();