【发布时间】:2014-08-28 02:02:09
【问题描述】:
我使用的是codeigniter的默认分页
< 1 2 3 4 >
但我想变成这种格式
< 1-10 11-20 21-30 >
有什么想法吗?
【问题讨论】:
标签: php codeigniter pagination
我使用的是codeigniter的默认分页
< 1 2 3 4 >
但我想变成这种格式
< 1-10 11-20 21-30 >
有什么想法吗?
【问题讨论】:
标签: php codeigniter pagination
好问题:您需要将代码 system/CI_Pagination.php 库扩展为 application/library/MY_Pagination.php
@Dan 的数学计算很好,设置到CI 分页库,见下文
1)创建文件到application/library/MY_Pagination.phpmore info关于创建库
从自定义方法覆盖create_links()方法,见下文
修改代码部分在create_links()方法
if ($this->cur_page === $loop){
// Current page
$output .= $this->cur_tag_open.($this->cur_page == 1 ? $loop : $loop*($this->per_page)+1).'-'.($loop * $this->per_page).$this->cur_tag_close;
}elseif ($i === $base_page){
// First page
$output .= $this->num_tag_open.'<a href="'.$first_url.'"'.$attributes.$this->_attr_rel('start').'>'
.((($loop)*($this->per_page) - $this->per_page)+1) .'-'. ($loop * $this->per_page).'</a>'
.$this->num_tag_close;
}else{
$append = $this->prefix.$i.$this->suffix;
$output .= $this->num_tag_open.'<a href="'.$base_url.$append.'"'.$attributes.$this->_attr_rel('start').'>'
.((($loop)*($this->per_page) - $this->per_page)+1) .'-'. ($loop * $this->per_page)
.'</a>'.$this->num_tag_close;
}
完整的 MY_Pagination.php 文件行号 (577-592) click here
注意我使用的是最新的核心文件,所以请在当前文件中使用您的修改
【讨论】:
application/library/MY_Pagination.php 创建新文件。
system/CI_pagination.php 文件中复制了create_link() 方法?你必须是旧版本的CI所以你应该使用自己的文件(system/CI_pagination.php)代码
做一些简单的数学调整,例如$x = 1
第 1 页不是 $x 第 1 页是:
<?php echo $x.'-'.($x * 10); ?>
第 2 页及以上为:
<?php
$x++;
echo (($x)*10)-10)+1.'-'.($x * 10);
?>
$x++ 对每个显示进行计数。
【讨论】:
CodeIgniter 库不可能,而 OP 不会修改库
create_link函数创建,他需要将库扩展为application/library/MY_Pagination.php并通过自定义方法覆盖方法,其中集成了自定义代码,了解更多信息ellislab.com/codeigniter/user-guide/general/…