diff options
Diffstat (limited to 'library/Pbs/Pagination.php')
-rw-r--r-- | library/Pbs/Pagination.php | 168 |
1 files changed, 84 insertions, 84 deletions
diff --git a/library/Pbs/Pagination.php b/library/Pbs/Pagination.php index c83ec74..6468897 100644 --- a/library/Pbs/Pagination.php +++ b/library/Pbs/Pagination.php @@ -1,4 +1,4 @@ -<?php +<? php /* * Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg * This program is free software distributed under the GPL version 2. @@ -10,89 +10,89 @@ * General information about OpenSLX can be found at http://openslx.org/ */ -class Pbs_Pagination{ +class Pbs_Pagination { + + private $element; + private $perpage; + private $requestpage; + private $maxNumber; + private $numpages; + private $pageUrl; + + public function pagination($url = null, $selected = null, $max = null) { + if($selected == null) + { $selected = $this->requestpage; } + if($max == null) + { $max = $this->numpages; } + if($url == null) + { $url = $this->pageUrl; } + +#print_a($url,$selected,$max); + + $str = "<div class='pbs_pagination'>"; + if ( 1 <= $selected) { + $str . = "<a href='$url/page/0' ><<</a>"; + $str . = "<a href='$url/page/".(($selected) - 1)."' rel='next'><</a>"; + } else { + $str . = "<span class='disabled'><<</span>"; + $str . = "<span class='disabled'><</span>"; + } + +# + $rightleft = 2; + for($i = 0; $i < ($max); $i++) { + if($selected == $i) + { $str . = "<a class='active'>".($i + 1) ."</a> "; } + else if($i >= $selected - $rightleft && $i <= $selected + $rightleft) + { $str . = "<a href='$url/page/".($i)."'>".($i + 1) ."</a> "; } + } + +# + if ( $max - 2 >= $selected) { + $str . = "<a href='$url/page/".(($selected) + 1)."'>></a> "; + $str . = "<a href='$url/page/".($max - 1)."'>>></a> "; + } else { + $str . = "<span class='disabled'>></span> "; + $str . = "<span class='disabled'>>></span> "; + } + + $str . = "</div>"; + return $str; + } + public function setPerPage($perpage) { + $this->perpage = $perpage; + return $this; + } + public function getPerPage() { + return $this->perpage; + } + public function setRequestPage($requestpage) { + if($requestpage < 0 || !is_numeric($requestpage) ) + { $requestpage = 0; } + if($requestpage >= $this->numpages) + { $requestpage = $this->numpages - 1; } + $this->requestpage = $requestpage; + return $this; + } + public function getRequestPage() { + return $this->requestpage; + } + public function setElement($element) { + $this->element = $element; + $this->maxNumber = count($element); + $this->numpages = ceil(count($element) / $this->perpage); + return $this; + } + public function getStartItem() { + return $this->requestpage * $this->perpage; + } + public function getElements() { + return array_slice($this->element, $this->getStartItem(), $this->getPerPage(), true); + } + public function setPageUrl($url) { + $this->pageUrl = $url; + return $this; + } - private $element; - private $perpage; - private $requestpage; - private $maxNumber; - private $numpages; - private $pageUrl; - - public function pagination($url=null,$selected=null,$max=null){ - if($selected == null) - $selected = $this->requestpage; - if($max == null) - $max = $this->numpages; - if($url == null) - $url = $this->pageUrl; - - #print_a($url,$selected,$max); - - $str = "<div class='pbs_pagination'>"; - if ( 1 <= $selected){ - $str .= "<a href='$url/page/0' ><<</a>"; - $str .= "<a href='$url/page/".(($selected)-1)."' rel='next'><</a>"; - }else{ - $str .= "<span class='disabled'><<</span>"; - $str .= "<span class='disabled'><</span>"; - } - - # - $rightleft = 2; - for($i=0;$i<($max);$i++){ - if($selected == $i) - $str .= "<a class='active'>".($i+1) ."</a> "; - else if($i >= $selected -$rightleft && $i <= $selected+$rightleft) - $str .= "<a href='$url/page/".($i)."'>".($i+1) ."</a> "; - } - - # - if ( $max-2 >= $selected){ - $str .= "<a href='$url/page/".(($selected)+1)."'>></a> "; - $str .= "<a href='$url/page/".($max-1)."'>>></a> "; - }else{ - $str .= "<span class='disabled'>></span> "; - $str .= "<span class='disabled'>>></span> "; - } - - $str .= "</div>"; - return $str; - } - public function setPerPage($perpage){ - $this->perpage = $perpage; - return $this; - } - public function getPerPage(){ - return $this->perpage; - } - public function setRequestPage($requestpage){ - if($requestpage < 0 || !is_numeric($requestpage) ) - $requestpage = 0; - if($requestpage >= $this->numpages) - $requestpage = $this->numpages-1; - $this->requestpage = $requestpage; - return $this; - } - public function getRequestPage(){ - return $this->requestpage; - } - public function setElement($element){ - $this->element = $element; - $this->maxNumber = count($element); - $this->numpages = ceil(count($element)/$this->perpage); - return $this; - } - public function getStartItem(){ - return $this->requestpage * $this->perpage; - } - public function getElements(){ - return array_slice($this->element,$this->getStartItem(),$this->getPerPage(),true); - } - public function setPageUrl($url){ - $this->pageUrl = $url; - return $this; - } - } |