首页 > 作文

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

更新时间:2023-04-06 23:00:05 阅读: 评论:0

通用分页类(以codeigniter测试)

page_list.php

复制代码 代码如下:

<?php if( ! defined(‘bapath’)) die(‘no access’);

/**
* 分页类
*/
class page_list {

/**
* 总数据
* @var int
*/
private $total;
/**
* 每页显示数据
* @var int
*/
private $size;
/**
* 当前页数
* @var int
*/
private $page;
/**
* 页数列表左右页数
* @var int
*/
private $len;

/**
* 总页数
* @var int
*/
private $page_total;
/**
* 页码列表
* @var array
*/
private $page_list;

/**
* 基准地址
* @var string
*/
private $ba_url;
/**
* 替换标志
* @var string
*/
private $place;
/**
* 分页样式
* @var string
*/
private $style;

/**
* 构造函数
*
* @param array $config 配置数组
*/
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->ba_url = ‘?page=-page-‘;
$this->place = ‘-page-‘;
$this->style = $this->get_default_style();
$this->initialize($config);
}

/**
* 初始化分页
*
* @param array $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(‘ba_url’, $config)) $this->ba_url = @strval($config[‘ba_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;
}
}el{
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;
}
}el{
for($i=$this->page+1; $i<=$this->page_total; $i++){
$this->page_list[] = $i;
}
}
}

/**
* 默认分页样式
*
* @return string
*/
public function get_default_style(){
$style = ‘<style type=”text/css”>’;
$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-s今日说法观后感tyle: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;fon应届毕业生是什么意思t-size:13px;font-weight:bold;font-style:normal;color:#000;margin:0 3px;padding:0 8px;overflow:hidden;zoom:1;}’;
$style .= ‘ </style>’;
return $style;
}

/**
* 是否是第一页
*
* @return bool
*/
public function is_first_page(){
return $this->page == 1;
}

/**
* 获取第一页页码
*
* @return int
*/
public function get_first_page(){
return 1;
}

/**
* 是否是最后一页
*
* @return bool
*/
public function is_last_page(){
return $this->page == $this->page_total;
}

/**
* 获取最后一页页码
*
* @return int
*/
public function get_last_page(){
return $this->page_total;
}

/**
* 是否存在上一页
*
* @return bool
*/
public function has_prev_page(){
return $this->page > 1;
}

/**
* 是否存在下一页
*
* @return bool
*/
public function has_next_page(){
return $this->page < $this->page_total;
}

/**
* 获取上一页页码
*
* @return int
*/
public function get_prev_page(){
return $this->has_prev_page() ? $this->page – 1 : $this->page;
}

/**
* 获取下一页页码
*
* @return int
*/
public function get_next_page(){
return $this->has_n情商高的表现ext_page() ? $this->page + 1 : $this->page;
}

/**
* 获取当前页页码
*
* @return int
*/
public function get_curr_page(){
return $this->page;
}

/**
* 获取总数据数
*
* @return int
*/
public function get_total(){
return $this->total;
}

/**
* 获取每页显示数据数
*
* @return int
*/
public function get_size(){
return $this->size;
}

/**
* 获取总页数
*
* @return int
*/
public function get_total_page(){
return $this->page_total;
}

/**
* 构建并返回分页代码
*
* @param scpu天梯图tring $ba_url 基准地址
* @param string $place 替换标志
* @param string $style 分页样式
* @return string 分页html代码
*/
public function display($ba_url = ”, $place = ”, $style = ”){
if($ba_url===”) $ba_url = $this->ba_url;
if($place===”) $place = $this->place;
if($style===”) $style = $this->style;
$str = $style.'<div class=”page_list”>’;
if( ! $this->is_first_page()){
$str .= ‘<a class=”page_list_act” href=”‘.str_replace($place, $this->get_first_page(), $阿肯弹唱会ba_url).'”>首页</a>’;
}
if($this->has_prev_page()){
$str .= ‘<a class=”page_list_act” href=”‘.str_replace($place, $this->get_prev_page(), $ba_url).'”>上一页</a>’;
}
foreach($this->page_list as $v){
if($v==$this->page){
$str .= ‘<strong>’ . $v . ‘</strong>’;
}el{
$str .= ‘<a href=”‘.str_replace($place, $v, $ba_url).'”>’.$v.'</a>’;
}
}
if($this->has_next_page()){
$str .= ‘<a class=”page_list_act” href=”‘.str_replace($place, $this->get_next_page(), $ba_url).'”>下一页</a>’;
}
if( ! $this->is_last_page()){
$str .= ‘<a class=”page_list_act” href=”‘.str_replace($place, $this->get_last_page(), $ba_url).'”>尾页</a>’;
}
$str .= ‘</div>’;
return $str;
}

}
?>

/application/view/pagelist.php

复制代码 代码如下:

<?php if( ! defined(‘bapath’)) die(‘no access’);

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

复制代码 代码如下:

<!doctype html>

<html>

<head>

<meta http-equiv=”content-type” content=”text/html;chart=utf-8″ />

<title>分页测试</title>

</head>

<body>

<?php echo $pl; ?>

</body>

</html>

本文发布于:2023-04-06 23:00:04,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/a35c5516c04b11510e33521911c733ed.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:codeigniter中测试通过的分页类示例.doc

本文 PDF 下载地址:codeigniter中测试通过的分页类示例.pdf

标签:分页   页码   代码   页数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图