Ci 自己的分页类【原创】
这里是自己手写的一个CI分页类的实现
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** * * @package CodeIgniter * @author sunzhiyan 这是自己的一个工具类的测试,调用方法是 /** */ class CI_Mypage { /* * $pagenum 每页显示的数据 * $url 跳转的URL地址 * $rscount 数据总条数 * $paginationObject 分页类对象地址 * */ function page($pagesize = 2,$url,$rscount,$paginationObject){ //进行配置 //每页显示的数据 $config['per_page'] = $pagesize; //配置基础目录 /* $config['base_url']= site_url('welcome/index');*/ $config['base_url']= $url; //一共多少条数据 $config['total_rows'] = $rscount; //#######################自定义分页 // $config['uri_segment'] = 6;//分页方法自动测定你 URI 的哪个部分包含页数 //$config['num_links'] = 1;//当前页码的前面和后面的“数字”链接的数量 //$config['use_page_numbers'] = TRUE;//默认分页URL中是显示每页记录数,启用use_page_numbers后显示的是当前页码 $config['page_query_string'] = TRUE;//默认情况下,分页类库假设你使用 URI 段,并像这样构造你的链接 // $config['enable_query_strings'] = TRUE;//你的链接将自动地被用查询字符串重写 $config['query_string_segment'] = "p";//“per_page”是默认传递的查询字符串 '用你的字符串' 来配置 //#######################添加封装标签 $config['full_tag_open'] = '<h1>';//打开的标签放在所有结果的左侧 $config['full_tag_close'] = '</h1>';//关闭的标签放在所有结果的 $config['first_link'] = "Top";//第一页”链接的名字,如果你不希望显示,可以把它的值设为 FALSE $config['first_tag_open'] = '<span style="background:red">';//“第一页”链接的打开标签。 $config['first_tag_close'] = '</span>';//“第一页”链接的关闭标签。 $config['last_link'] = 'zuihou';//最后一页”链接的名字。如果你不希望显示,可以把它的值设为 FALSE $config['last_tag_open'] = '<span style="background:pink">';//最后一页”链接的打开标签 $config['last_tag_close'] = '</span>';//最后一页”链接的关闭标签。 $config['next_link'] = 'Next';//“下一页”链接的名字。如果你不希望显示,可以把它的值设为 FALSE 。 $config['next_tag_open'] = '<span style="background:green">';//下一页”链接的打开标签。 $config['next_tag_close'] = '</span>';//“下一页”链接的关闭标签。 $config['prev_link'] = 'up';//上一页”链接的名字。如果你不希望显示,可以把它的值设为 FALSE 。 $config['prev_tag_open'] = '<span style="background:black">';//上一页链接的打开标签。 $config['prev_tag_close'] = '</span>';//上一页链接的关闭标签。 $config['cur_tag_open'] = '<span style="background:orange">';//“当前页”链接的打开标签。 $config['cur_tag_close'] = '</span>';//当前页”链接的关闭标签。 /* $config['num_tag_open'] = '<div>';//数字”链接的打开标签。 $config['num_tag_close'] = '</div>';//数字”链接的关闭标签。*/ // $config['display_pages'] = FALSE;// 不显示“数字”链接 $config['anchor_class'] = "";//添加 CSS 类 /* */ //$config['display_pages'] = FALSE; $paginationObject->initialize($config); //输出按钮 $pageNew = $paginationObject->create_links(); return $pageNew; } /*分页数据的显示 * @author sunzhiyan * $limit 偏移量 * $pagesize 每页显示量 * $rscount 数据总条数 * $DbConnection 数据库连接对象地址 */ function pageDate($limit,$pagesize=2,$rscount,$DbConnection){ $MaxLimit = (ceil($rscount/$pagesize)-1)*$pagesize; if($limit <= 0){ $limit =0; }elseif ($limit > $MaxLimit){ $limit = $MaxLimit; } $data=$DbConnection->get_books($limit,$pagesize); echo '<br><br><br><br>'; foreach ($data as $value) { echo '$value='.$value->ty_name; } return $data; } } // END Pagination Class /* End of file Pagination.php */ /* Location: ./system/libraries/Pagination.php */
实现调用方法
只要在控制器里面加上这样一段嗲吗就能够实现调用
$this->load->database(); $this->load->model('Type_model'); $this->load->library('pagination'); $typeConnection = $this->Type_model; //首页 $paginationObject = $this->pagination; $this->load->library('mypage'); /* $this->mypage->test($Type_model);*/ $url = "http://localhost/myblog/index.php/welcome/index?t=3"; $pagesize = 2; $rscount = $this->db->count_all('type');//数据总数 $pagenew = $this->mypage->page($pagesize,$url,$rscount,$paginationObject);// 这个是显示分页标签的方法 echo $pagenew; $page = $_GET['p']; $this->mypage->pageDate($page,$pagesize,$rscount,$typeConnection);//这个是显示分页数据的方法