如何在Codeigniter中隐藏分页类中的页面链接?

时间:2013-02-10 06:28:04

标签: php codeigniter pagination

我试图达到以下效果:

Prev 1 of 4 Next

我尝试过设置以下$config选项:

$config['num_links'] = 0;

但是我收到以下错误:

  

您的链接数量必须为正数。

我的配置选项设置为:

    $config['base_url'] = "/browse/tag/$tid/";
    $config['total_rows'] = $num_items;
    $config['per_page'] = $max_items;
    $config['first_link'] = FALSE;
    $config['last_link'] = FALSE;
    $config['uri_segment'] = 4;
    $config['use_page_numbers'] = TRUE;
    $config['display_pages'] = TRUE;
    $config['num_links'] = 0; # this doesn't work
    $config['prev_link'] = 'Previous';
    $config['next_link'] = 'Next';
    $config['cur_tag_open'] = '<span>';
    $config['cur_tag_close'] = " of $pages</span>";
    $config['full_tag_open'] = '<div class="previousnext">';
    $config['full_tag_close'] = '</div>';

如果我将num_links更改为1,我显然会得到:

Prev 1 2 of 4 3 Next

如果我关闭display_pages,我会:

Prev Next

在这个阶段,我想避免修改核心代码。

2 个答案:

答案 0 :(得分:4)

如果您可以将数字链接以HTML格式退出但不显示,则可能只想使用CSS隐藏它们。

使用$config['num_tag_open']定义带类的开放标记,例如:

$config['num_tag_open'] = '<div class="hidden">';

然后只需添加一个CSS:

.hidden { display: none; }

答案 1 :(得分:3)

您需要extend Pagination ClassMY_Pagination.php目录中创建application/libraries文件并使用它来覆盖负责create_links()的{​​{1}}函数用于回显页面列表。

MY_Pagination.php

class MY_Pagination extends CI_Pagination{
    public function __construct(){
        parent::__construct();
    }

    public function create_links(){
        //copy and paste the logic from system/libraries/Pagination.php
        //but reimplement lines ~258-296 (CI 2.1.3) 
    }
}

通过在应用程序目录中进行更改并扩展核心,您可以保护自己免受未来的核心升级(例如从2.1.3升级到3.0)。