代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
PHP
】
tangframework分页实现
作者:
灏明
/ 发布于
2014/12/10
/
573
namespace Tang\Pagination; use Tang\I18n\II18n; /** * 分页实现 * Class Paginator * @package Tang\Pagination */ class Paginator implements IPaginator { private $total = 0; private $pageNumber = 20; private $maxPage = 0; private $nowPage = 0; /** * 语言包 * @var II18n */ private $II18n; public function setl18n(II18n $II18n) { $this->II18n = $II18n; } /** * 设置总量 * @param $total * @return mixed */ public function setTotal($total) { $total = (int) $total; $total < 0 && $total = 0; $this->total = $total; } /** * 设置每页数量 * @param $pageNumber * @return mixed */ public function setPageNumber($pageNumber) { $pageNumber = (int)$pageNumber; $pageNumber < 1 && $pageNumber = 20; $this->pageNumber = $pageNumber; } /** * 获取每页数量 * @return int */ public function getPageNumber() { return $this->pageNumber; } /** * 获取最大页数 * @return int */ public function getMaxPage() { return $this->maxPage; } /** * 获取当前页 * @return int */ public function getNowPage() { return $this->nowPage; } /** * 获取分页数组 * @param int $nowPage 当前页 * @param int $total 总数量 * @param int $pageNumber 一页数量 * @throws NowPageLtMaxPageException * @return array */ public function getPages($nowPage,$total = 0,$pageNumber = 0) { if ($total) { $this->setTotal($total); } if ($pageNumber) { $this->setPageNumber($pageNumber); } $nowPage = (int) $nowPage; $nowPage < 1 && $nowPage = 1; $this->nowPage = $nowPage; $maxPage = $this->maxPage = ceil($this->total / $this->pageNumber); if (!$maxPage) { return false; } if ($nowPage > $maxPage) { throw new NowPageLtMaxPageException('No more pages!',null,50013); } $pages = array(); $pages[] = array('name' => $this->II18n->get('First page'),'page'=>1); if ($nowPage > 1) { $pages[] = array('name' => $this->II18n->get('Prev page'),'page'=>$nowPage-1); } if ($nowPage > 5) { for ($i = $nowPage - 5; $i < $nowPage; $i ++) { if ($i <= 0) continue; $pages[] = array('name' => $i,'page'=>$i); } for ($i = 0; $i < 5; $i ++) { $p = $nowPage + $i; if ($p > $maxPage) { break; } $pages[] = array('name' => $p,'page'=>$p); } } else { for ($i = 1; $i < 10; $i ++) { if ($i > $maxPage) { break; } $pages[] = array('name' => $i,'page'=>$i); } } $nextPage = $nowPage + 1; if ($nowPage < $maxPage) { $pages[] = array('name' => $this->II18n->get('Next page'),'page'=>$nextPage); } $pages[] = array('name' => $this->II18n->get('End page'),'page'=>$maxPage); return $pages; } } namespace Tang\Pagination; use Tang\I18n\II18n; use Tang\Interfaces\ISetConfig; /** * 分页接口 * Interface IPaginator * @package Tang\Pagination */ interface IPaginator { /** * 设置语言包 * @param II18n $II18n * @return void */ public function setl18n(II18n $II18n); /** * 设置总量 * @param $total * @return void */ public function setTotal($total); /** * 设置每页数量 * @param $pageNumber * @return void */ public function setPageNumber($pageNumber); /** * 获取每页数量 * @return int */ public function getPageNumber(); /** * 获取最大页数 * @return int */ public function getMaxPage(); /** * 获取当前页 * @return int */ public function getNowPage(); /** * 获取分页数组 * 返回的结果数组为array( * array('name'=>'第一页','page' => 1), * array('name'=>'1','page' => 1), * array('name'=>'2','page' => 2), * array('name'=>'下一页','page' => 2) * )形式 * @param int $nowPage 当前页 * @param int $total 总数量 * @param int $pageNumber 一页数量 * @return array */ public function getPages ($nowPage,$total = 0,$pageNumber = 0); }
试试其它关键字
分页
tangframework
同语言下
.
用net匹配并替换iOS标准的emoji表情符号
.
处理带Emoji表情的的字符串
.
获取微信昵称时 过滤特殊字符
.
通过判断上传文件的头字符来判断文件的类型
.
模拟百度URL加密解密算法
.
以太坊检查地址是否合法
.
实现crontab解析类
.
获取每个月的开始和结束时间
.
图片上传工具类
.
APP手机应用信息采集
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
灏明
贡献的其它代码
(
23
)
.
获取目录下的文件数和文件夹数
.
全角转半角 半角转全角 接收文本框的值
.
替换jquer的默认$符号
.
获得Cpu使用率类
.
生成验证码,缩略图,及水印图
.
sql 2005 sql 2008导出数据字典方法
.
FileUpload触发图浏览事件
.
一般图匹配(邻接表形式)
.
掉链图片的替代图片方法
.
遍历m个元素取k个的递归解法
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3