栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

codeigniter中测试通过的分页类示例

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

codeigniter中测试通过的分页类示例

通用分页类(以Codeigniter测试)

page_list.php
复制代码 代码如下:


class Page_list {

   
    private $total;
   
    private $size;
   
    private $page;
   
    private $len;

   
    private $page_total;
   
    private $page_list;

   
    private $base_url;
   
    private $place;
   
    private $style;


   
    public function __construct($config = array()){
        // 初始化默认值
        $this->total = 0;
        $this->size = 20;
        $this->page = 1;
        $this->len = 4;
        $this->page_total = 1;
        $this->page_list = array();
        $this->base_url = '?page=-page-';
        $this->place = '-page-';
        $this->style = $this->get_default_style();
        $this->initialize($config);
    }

   
    public function initialize($config = array()){
        // 取得配置值
        if(is_array($config)){
            if(array_key_exists('total', $config)) $this->total = @intval($config['total']);
            if(array_key_exists('size', $config)) $this->size = @intval($config['size']);
            if(array_key_exists('page', $config)) $this->page = @intval($config['page']);
            if(array_key_exists('len', $config)) $this->len = @intval($config['len']);
            if(array_key_exists('base_url', $config)) $this->base_url = @strval($config['base_url']);
            if(array_key_exists('place', $config)) $this->place = @strval($config['place']);
            if(array_key_exists('style', $config)) $this->style = @strval($config['style']);
        }
        // 修正值
        if($this->total<0) $this->total = 0;
        if($this->size<=0) $this->size = 20;
        if($this->page<=0) $this->page = 1;
        if($this->len<=0) $this->len = 4;
        // 执行分页算法
        $this->page_total = ceil($this->total/$this->size);
        if($this->page_total<=0) $this->page_total = 1;
        if($this->page>$this->page_total) $this->page = $this->page_total;
        if($this->page-$this->len>=1){
            for($i=$this->len; $i>0; $i--){
                $this->page_list[] = $this->page - $i;
            }
        }else{
            for($i=1; $i<$this->page; $i++){
                $this->page_list[] = $i;
            }
        }
        $this->page_list[] = $this->page;
        if($this->page+$this->len<=$this->page_total){
            for($i=1; $i<=$this->len; $i++){
                $this->page_list[] = $this->page + $i;
            }
        }else{
            for($i=$this->page+1; $i<=$this->page_total; $i++){
                $this->page_list[] = $i;
            }
        }
    }

   
    public function get_default_style(){
        $style = '';
        $style .= ' div.page_list { margin:0;padding:0;overflow:hidden;zoom:1;}';
        $style .= ' div.page_list a {display:block;float:left;height:20px;line-height:21px; font-size:13px;font-weight:normal;font-style:normal;color:#133DB6;text-decoration:none;margin:0 3px;padding:0 7px;overflow;zoom:1;}';
        $style .= ' div.page_list a.page_list_act { font-size:13px;padding:0 6px;}';
        $style .= ' div.page_list a:link, div.page_list a:visited { background:#FFF;border:1px #EEE solid;text-decoration:none;}';
        $style .= ' div.page_list a:hover, div.page_list a:active { background:#EEE;text-decoration:none;}';
        $style .= ' div.page_list strong { display:block;float:left;height:20px;line-height:21px;font-size:13px;font-weight:bold;font-style:normal;color:#000;margin:0 3px;padding:0 8px;overflow:hidden;zoom:1;}';
        $style .= ' ';
        return $style;
    }

   
    public function is_first_page(){
        return $this->page == 1;
    }

   
    public function get_first_page(){
        return 1;
    }

   
    public function is_last_page(){
        return $this->page == $this->page_total;
    }

   
    public function get_last_page(){
        return $this->page_total;
    }

   
    public function has_prev_page(){
        return $this->page > 1;
    }

   
    public function has_next_page(){
        return $this->page < $this->page_total;
    }

   
    public function get_prev_page(){
        return $this->has_prev_page() ? $this->page - 1 : $this->page;
    }

   
    public function get_next_page(){
        return $this->has_next_page() ? $this->page + 1 : $this->page;
    }

   
    public function get_curr_page(){
        return $this->page;
    }

   
    public function get_total(){
        return $this->total;
    }

   
    public function get_size(){
        return $this->size;
    }

   
    public function get_total_page(){
        return $this->page_total;
    }

   
    public function display($base_url = '', $place = '', $style = ''){
        if($base_url==='') $base_url = $this->base_url;
        if($place==='') $place = $this->place;
        if($style==='') $style = $this->style;
        $str = $style.'';
        if( ! $this->is_first_page()){
            $str .= 'get_first_page(), $base_url).'">首页';
        }
        if($this->has_prev_page()){
            $str .= 'get_prev_page(), $base_url).'">上一页';
        }
        foreach($this->page_list as $v){
            if($v==$this->page){
                $str .= '' . $v . '';
            }else{
                $str .= ''.$v.'';
            }
        }
        if($this->has_next_page()){
            $str .= 'get_next_page(), $base_url).'">下一页';
        }
        if( ! $this->is_last_page()){
            $str .= 'get_last_page(), $base_url).'">尾页';
        }
        $str .= '';
        return $str;
    }

}
?>

/application/view/pagelist.php
复制代码 代码如下:

    class Pagelist extends CI_Controller {

        public function page(){
            $this->load->helper('url');
            $page = $this->input->get('page');
            $page = @intval($page);
            if($page<=0) $page = 1;
            $this->load->library('page_list',array('total'=>10000,'size'=>16,'page'=>$page));
            $pl = $this->page_list->display(site_url('pagelist/page/page/-page-'));
            $this->load->view('pagelist', array('pl' => $pl));
        }

    }
?>

/application/view/pagelist.php
复制代码 代码如下:



   
    分页测试





转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/48334.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号