Source of file Sliding.php
Size: 1,865 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Paginator/ScrollingStyle/Sliding.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Paginator\ScrollingStyle; use Zend\Paginator\Paginator; /** * A Yahoo! Search-like scrolling style. The cursor will advance to * the middle of the range, then remain there until the user reaches * the end of the page set, at which point it will continue on to * the end of the range and the last page in the set. * * @link http://search.yahoo.com/search?p=Zend+Framework */ class Sliding implements ScrollingStyleInterface { /** * Returns an array of "local" pages given a page number and range. * * @param Paginator $paginator * @param int $pageRange (Optional) Page range * @return array */ public function getPages(Paginator $paginator, $pageRange = null) { if ($pageRange === null) { $pageRange = $paginator->getPageRange(); } $pageNumber = $paginator->getCurrentPageNumber(); $pageCount = count($paginator); if ($pageRange > $pageCount) { $pageRange = $pageCount; } $delta = ceil($pageRange / 2); if ($pageNumber - $delta > $pageCount - $pageRange) { $lowerBound = $pageCount - $pageRange + 1; $upperBound = $pageCount; } else { if ($pageNumber - $delta < 0) { $delta = $pageNumber; } $offset = $pageNumber - $delta; $lowerBound = $offset + 1; $upperBound = $offset + $pageRange; } return $paginator->getPagesInRange($lowerBound, $upperBound); } } |