2 Star 1 Fork 1

徐子玉/你若在线

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
pagination.php 5.26 KB
一键复制 编辑 原始数据 按行查看 历史
徐子玉 提交于 2017-07-05 11:01 . +seck
<?php
/**
* 分页类
* @auth
* @date 2014-10-24
*/
class Pagination_lib {
/**
* 参数设定
* @param int $current_page 當前頁數
* @param int $total_page 總頁數
* @param int $boundary 頁數臨界值
* @param int $front_range 前段顯示頁碼數
* @param int $mid_range 中段顯示頁碼數
* @param int $rear_range 後段顯示頁碼數
*/
public $current_page = 1;
public $total_page = 10;
public $boundary = 7;
public $front_range = 1;
public $mid_range = 5;
public $rear_range = 1;
//每个页的链接 如: domain/list#page=
public $page_url = '?page=';
public function __construct($base)
{
$this->current_page = $base['current_page'];
$this->total_page = $base['total_page'];
$this->boundary = $base['boundary'];
$this->front_range = $base['front_range'];
$this->mid_range = $base['mid_range'];
$this->rear_range = $base['rear_range'];
}
/**
* 初始化设置 分页类
* @param type $config
*/
function init($config = array()) {
if (count($config) > 0) {
foreach ($config as $key => $val) {
if (isset($this -> $key)) {
$this -> $key = $val;
}
}
}
}
/**
* 分頁格式處理,ex. prev 1 ... 8 9 10 11 12 ... 20 next
* copy from Store_lib.pagintion , 从Store_lib中复制过来
* @param int $current_page 當前頁數
* @param int $total_page 總頁數
* @param int $boundary 頁數臨界值
* @param int $front_range 前段顯示頁碼數
* @param int $mid_range 中段顯示頁碼數
* @param int $rear_range 後段顯示頁碼數
* @return array 要顯示的頁碼
*/
public function pagintion_array($current_page = 1, $total_page = 10, $boundary = 7, $front_range = 1, $mid_range = 5, $rear_range = 1) {
$pagintion = array();
$current_page = ($current_page > $total_page) ? $total_page : $current_page;
// 總頁數小於頁數臨界值,則顯示所有頁碼
if ($total_page <= $boundary) {
for ($i = 1; $i <= $total_page; $i++) {
$pagintion[] = $i;
}
} else {
$front_end = $front_range;
// 前段最後一個頁碼
$mid_start = $current_page - ceil(($mid_range - 1) / 2);
// 中段第一個頁碼
$mid_end = $current_page + (($mid_range - 1) - ceil(($mid_range - 1) / 2));
// 中段最後一個頁碼
$rear_start = $total_page - $rear_range + 1;
// 後段第一個頁碼
// 中段第一個頁碼小於等於1,中斷頁碼往左位移
while ($mid_start <= 1) {
if ($mid_start < 1)
$mid_end += 1;
$mid_start += 1;
}
// 中段第一個頁碼大於等於總頁數,中斷頁碼往右位移
while ($mid_end >= $total_page) {
if ($mid_end > $total_page)
$mid_start -= 1;
$mid_end -= 1;
}
// 取出需要顯示的頁碼數
for ($i = 1; $i <= $total_page; $i++) {
if ($i <= $front_end || ($i >= $mid_start && $i <= $mid_end) || $i >= $rear_start) {
if ($i - (int) end($pagintion) > 1) {
$pagintion[] = '...';
}
$pagintion[] = $i;
}
}
}
return $pagintion;
}
/**
* 拼装分页的 html ;
* 样式 for jquery.simplepagination
* @return string
*/
function create_html() {
$html = '<ul>';
//计算总页数;
//计算分页
$pagintion = $this -> pagintion_array($this -> current_page, $this -> total_page, $this -> boundary, $this -> front_range, $this -> mid_range, $this -> rear_range);
//上一页
//上一页 不可点击
if ($this -> current_page <= 1) {
$html .= '<li class="active"><span class="current prev" style="color: #666; position: relative; width: 57px; background: rgb(255, 255, 255,0);"><span class="bg_prev" style="background-position: -78px -210px;"></span>上一页</span></li>';
} else {
//上一页可点击
$page_prev = $this -> current_page - 1;
$html .= '<li><a href="' . $this -> page_url . $page_prev . '" class="page-link prev" url="' . $this -> page_url . $page_prev . '" page="' . $page_prev . '" style="color: rgb(102, 102, 102); position: relative; background: rgb(255, 255, 255);"><span class="bg_prev" style="background-position: -99px -210px;"></span>上一页</a></li>';
}
//每一页的 链接
foreach ($pagintion as $page_id) {
if ($page_id == $this -> current_page) {
$html .= '<li class="active"><span class="current">' . $page_id . '</span></li>';
} elseif ($page_id == '...') {
$html .= '<li class="disabled"><span class="ellipse">…</span></li>';
} else {
$html .= '<li><a href="' . $this -> page_url . $page_id . '" class="page-link" page="' . $page_id . '">' . $page_id . '</a></li>';
}
}
//下一页
//下一页 不可点击
if ($this -> current_page >= $this -> total_page) {
$html .= '<li class="active"><span class="current next" style="color: #666; position: relative; background: rgb(255, 255, 255,0);"><span class="bg_next" style="background-position: -84px -210px;"></span>下一页</span></li>';
} else {
//下一页 可点击
$page_next = $this -> current_page + 1;
$html .= '<li><a href="' . $this -> page_url . $page_next . '" class="page-link next" url="' . $this -> page_url . $page_next . '" page="' . $page_next . '" style="color: rgb(102, 102, 102); position: relative; width: auto; background: rgb(255, 255, 255,0);"><span class="bg_next" style="background-position: -104px -210px;"></span>下一页</a></li>';
}
$html .= '</ul>';
return $html;
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xuqipeter/nrzx.git
[email protected]:xuqipeter/nrzx.git
xuqipeter
nrzx
你若在线
master

搜索帮助