CodeIgniter分页配置,不在不同的控制器中重复

时间:2013-08-24 13:03:48

标签: php codeigniter pagination

我对一些凌乱的代码没有什么问题,我认为它可以更好,我使用分页类来显示页面,唯一的问题是我想要将它设计成不同的样式?现在我在控制器中有一些功能吗?

public function products 
{

        $config["per_page"] = 4;
        $config["uri_segment"] = 2;
        $config['cur_tag_open'] = '<li><span class="page active">';
        $config['cur_tag_close'] = '</span></li>';
        $config['num_tag_open'] = '<li class="page gradient">';
        $config['num_tag_close'] = '</li>';
        $config['prev_link'] = '&lt; prev';
        $config['prev_tag_open'] = ' <li class="page gradient">';
        $config['prev_tag_close'] = '</li>';
        $config['next_link'] = 'next &gt;';
        $config['next_tag_open'] = '<li class="page gradient">';
        $config['next_tag_close'] = '</li>'
}

和其他人一样

public function milks
{

        $config["per_page"] = 4;
        $config["uri_segment"] = 2;
        $config['cur_tag_open'] = '<li><span class="page active">';
        $config['cur_tag_close'] = '</span></li>';
        $config['num_tag_open'] = '<li class="page gradient">';
        $config['num_tag_close'] = '</li>';
        $config['prev_link'] = '&lt; prev';
        $config['prev_tag_open'] = ' <li class="page gradient">';
        $config['prev_tag_close'] = '</li>';
        $config['next_link'] = 'next &gt;';
        $config['next_tag_open'] = '<li class="page gradient">';
        $config['next_tag_close'] = '</li>'
}
你知道有相同的吗?但我使用它两次,每次我有分页我必须把配置在该功能,是否有可能以全球方式设置样式

    function __construct()
    {

        $config["per_page"] = 4;
        $config["uri_segment"] = 2;
        $config['cur_tag_open'] = '<li><span class="page active">';
        $config['cur_tag_close'] = '</span></li>';
        $config['num_tag_open'] = '<li class="page gradient">';
        $config['num_tag_close'] = '</li>';
        $config['prev_link'] = '&lt; prev';
        $config['prev_tag_open'] = ' <li class="page gradient">';
        $config['prev_tag_close'] = '</li>';
        $config['next_link'] = 'next &gt;';
        $config['next_tag_open'] = '<li class="page gradient">';
        $config['next_tag_close'] = '</li>';
}

我在我的应用程序中使用的所有其他分页使用相同的样式,而不是按功能再次重复它?

此致

2 个答案:

答案 0 :(得分:2)

  

是否有可能以全球方式设计它?

是的,是的。

更新

来自CodeIgniter User Guide

  

如果您不想使用上述方法设置偏好设置,则可以将它们放入配置文件。只需创建一个名为 pagination.php 的新文件,在该文件中添加 $ config 数组。然后将文件保存在:config/pagination.php中,它将自动使用。如果您将首选项保存在配置文件中, NOT 将需要使用$this->pagination->initialize功能。

旧答案

创建语言文件(或配置文件,您的选择)并将分页配置放在:

例如:./application/language/english/pagination_lang.php

$lang['pagination_conf'] = array(
    'full_tag_open'   => "<ul>",
    'full_tag_close'  => "</ul>",
    'first_link'      => "First",
    'first_tag_open'  => "<li>",
    'first_tag_close' => "</li>",
    'last_link'       => "Last",
    'last_tag_open'   => "<li>",
    'last_tag_close'  => "</li>"/*,
    And so on... */
);

然后将语言文件加载到Controller中,并将值传递给配置数组:

$this->lang->load('pagination');
$config = $this->lang->line('pagination_conf');

在这种情况下,更改源文件后,所有内容都将更改。

如果您使用配置文件,您可以将值存储在数组中,并且您将能够设置多个分页配置:

配置文件:./application/config/pagination_conf.php

$config['pagination_conf'] = array(
    'case1' => array(
        'full_tag_open'  => '...',
        'full_tag_close' => '...',
        'first_link'     => '...'
        // So on...
    ),
    'case2' => array(
        'full_tag_open'  => '...',
        'full_tag_close' => '...',
        'first_link'     => '...'
        // So on...
    )
);

您可以通过以下方式访问case1配置:

$this->config->load('pagination_conf', TRUE);
$config = $this->config->item('case1', 'pagination_conf');

答案 1 :(得分:0)

将您的配置文件放入名为config / pagination.php&amp;的文件中。它将是全球的