huboo82 发表于 2011-12-24 15:08:25

仿 Django Paginator 扩展 CI 分页类

weblog 链接地址:仿 Django Paginator 扩展 CI 分页类
注意:以下内容在已测试的情况下仅适用于 Codeigniter 2.10 版本

一直觉得 Django 分页很方便视图的定制以及 GET 方式的检索,只把分页后的数据和分页相关的数据输出到模板,比如是否有上一页/下一页,页码范围,当前页等,所以在此以扩展 CI 分页类来实现类似功能,先看一副截图吧(觉得图片小可以在新标签里打开图片):



使用方法(Controller):

// 载入分页类
$this->load->library('pagination');
$config['total_rows'] = $this->post->get_content_list('post', 'published', NULL, NULL);
$config['cur_page'] = $page;
$config['per_page'] = 10;

// 依据配置初始化分页类
$this->pagination->initialize($config);
$pagery = $this->pagination->create_links();
$offset = $this->pagination->offset;
$per_page = $this->pagination->per_page;

// 根据每页条数和位置取得分页后的内容
$posts = $this->post->get_content_list('post', 'published', $per_page, $offset);

$this->_data['posts'] = $posts;
$this->_data['pagery'] = $pagery;

$this->load->view('all_posts', $this->_data);


使用方法(View):

<?php if($pagery): ?>
<div class="pagination">
      <ul>
                <?php if($pagery['has_previous']): ?>
                <li class="prev"><a href="<?php echo site_url('admin/posts/?page=' . ($pagery['page'] - 1) . '&status=' . $status . '&mid=' . $mid . '&q=' . $q); ?>">上一页</a></li>
                <?php else: ?>
                <li class="prev disabled"><a href="javascript:void(0)">上一页</a></li>
                <?php endif; ?>
                <?php foreach($pagery['page_range'] as $item):?>
                <?php if($pagery['page'] == $item): ?>
                <li class="active"><a><?php echo $item; ?></a></li>
                <?php elseif($item == '…'): ?>
                <li class="disabled"><a href="#"><?php echo $item; ?></a></li>
                <?php else: ?>
                <li><a href="<?php echo site_url('admin/posts/?page=' . $item . '&status=' . $status . '&mid=' . $mid . '&q=' . $q); ?>"><?php echo $item; ?></a></li>
                <?php endif; ?>
                <?php endforeach;?>
                <?php if($pagery['has_next']): ?>
                <li class="next"><a href="<?php echo site_url('admin/posts/?page=' . ($pagery['page'] + 1) . '&status=' . $status . '&mid=' . $mid . '&q=' . $q); ?>">下一页</a></li>
                <?php else: ?>
                <li class="next disabled"><a href="javascript:void(0)">下一页</a></li>
                <?php endif; ?>
      </ul>
</div>
<?php endif; ?>


可以根据自己的需要在视图里定制分页呈现的样式,比如这样:


lzy000000 发表于 2011-12-25 13:32:50

感谢楼主的分享啊!!!!!

しovё杺諴荝灬 发表于 2011-12-29 17:56:30

谢谢分享{:1_1:}

oraclelee 发表于 2011-12-30 10:40:46

感谢楼主分享。

果冻 发表于 2012-3-7 23:33:24

感谢楼主的分享,太棒了,正需要这个!{:soso_e179:}{:soso_e181:}

果冻 发表于 2012-3-8 22:12:46

看不懂啊

o熊小猫o 发表于 2012-3-19 13:06:56

感谢楼主分享,另外。。。楼主这个管理界面很漂亮,不知是否方便分享或者给指条道儿?:lol

huboo82 发表于 2012-3-19 15:40:05

o熊小猫o 发表于 2012-3-19 13:06 static/image/common/back.gif
感谢楼主分享,另外。。。楼主这个管理界面很漂亮,不知是否方便分享或者给指条道儿? ...

http://twitter.github.com/bootstrap/

o熊小猫o 发表于 2012-3-19 17:42:37

huboo82 发表于 2012-3-19 15:40 static/image/common/back.gif
http://twitter.github.com/bootstrap/

感谢楼主指点:$

ㄟ香消玉落 发表于 2012-3-29 21:59:52

少了全部页数啊.....   现在找各种论坛,各种样式。没有简单点的 包括全部页数的?
页: [1] 2
查看完整版本: 仿 Django Paginator 扩展 CI 分页类