Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class Paginator {
- private $listCount = 5;
- private $limit;
- private $page = 1;
- private $count;
- private $pageCount;
- private $pageFrom;
- private $pageTo;
- public function setCount($count){
- if(!isset($this->count)){
- $this->count = intval($count);
- }
- }
- public function getCount(){
- return $this->count;
- }
- public function setLimit($limit){
- if(!isset($this->limit)){
- $this->limit = intval($limit);
- }
- }
- public function getLimit(){
- return $this->limit;
- }
- public function setPage($page){
- $pageCount = $this->getPageCount();
- if($page>1){
- $this->page = intval($page);
- if($pageCount<=$page){
- $this->page = intval($pageCount);
- }
- }
- }
- public function getPage(){
- return $this->page;
- }
- public function getPageCount(){
- if(!isset($this->pageCount)){
- return $this->pageCount = ceil($this->getCount()/$this->getLimit());
- }
- return $this->pageCount;
- }
- public function getOffset(){
- if(!isset($this->offset)){
- $page = $this->getPage();
- $limit = $this->getLimit();
- $pageCount = $this->getPageCount();
- $this->setPageFromTo($page,$limit,$pageCount);
- $this->offset = $page*$limit-$limit;
- }
- return $this->offset;
- }
- public function setPageFromTo($page,$limit,$pageCount){
- $pageFrom = $page-$this->listCount;
- $pageTo = $page+$this->listCount-1;
- if($pageFrom<1){
- $pageTo=$pageTo-$pageFrom+1;
- }
- if($pageTo>$pageCount){
- $pageFrom=$pageFrom+($pageCount-$pageTo);
- }
- if($pageFrom<1){
- $pageFrom=1;
- }
- if($pageTo>$pageCount){
- $pageTo=$pageCount;
- }
- $this->pageFrom = $pageFrom;
- $this->pageTo = $pageTo;
- }
- public function getPageFrom(){
- if(!isset($this->pageFrom)){
- $this->getOffset();
- }
- return $this->pageFrom;
- }
- public function getPageTo(){
- if(!isset($this->pageTo)){
- $this->getOffset();
- }
- return $this->pageTo;
- }
- }
Add Comment
Please, Sign In to add comment