Source of file PaginationControl.php
Size: 4,004 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/View/Helper/PaginationControl.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 | <?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\View\Helper; use Zend\Paginator; use Zend\View; use Zend\View\Exception; class PaginationControl extends AbstractHelper { /** * Default Scrolling Style * * @var string */ protected static $defaultScrollingStyle = 'sliding'; /** * Default view partial * * @var string|array */ protected static $defaultViewPartial = null; /** * Render the provided pages. This checks if $view->paginator is set and, * if so, uses that. Also, if no scrolling style or partial are specified, * the defaults will be used (if set). * * @param Paginator\Paginator $paginator (Optional) * @param string $scrollingStyle (Optional) Scrolling style * @param string $partial (Optional) View partial * @param array|string $params (Optional) params to pass to the partial * @throws Exception\RuntimeException if no paginator or no view partial provided * @throws Exception\InvalidArgumentException if partial is invalid array * @return string */ public function __invoke(Paginator\Paginator $paginator = null, $scrollingStyle = null, $partial = null, $params = null) { if ($paginator === null) { if (isset($this->view->paginator) and $this->view->paginator !== null and $this->view->paginator instanceof Paginator\Paginator) { $paginator = $this->view->paginator; } else { throw new Exception\RuntimeException('No paginator instance provided or incorrect type'); } } if ($partial === null) { if (static::$defaultViewPartial === null) { throw new Exception\RuntimeException('No view partial provided and no default set'); } $partial = static::$defaultViewPartial; } if ($scrollingStyle === null) { $scrollingStyle = static::$defaultScrollingStyle; } $pages = get_object_vars($paginator->getPages($scrollingStyle)); if ($params !== null) { $pages = array_merge($pages, (array) $params); } if (is_array($partial)) { if (count($partial) != 2) { throw new Exception\InvalidArgumentException( 'A view partial supplied as an array must contain two values: the filename and its module' ); } if ($partial[1] !== null) { $partialHelper = $this->view->plugin('partial'); return $partialHelper($partial[0], $pages); } $partial = $partial[0]; } $partialHelper = $this->view->plugin('partial'); return $partialHelper($partial, $pages); } /** * Sets the default Scrolling Style * * @param string $style string 'all' | 'elastic' | 'sliding' | 'jumping' */ public static function setDefaultScrollingStyle($style) { static::$defaultScrollingStyle = $style; } /** * Gets the default scrolling style * * @return string */ public static function getDefaultScrollingStyle() { return static::$defaultScrollingStyle; } /** * Sets the default view partial. * * @param string|array $partial View partial */ public static function setDefaultViewPartial($partial) { static::$defaultViewPartial = $partial; } /** * Gets the default view partial * * @return string|array */ public static function getDefaultViewPartial() { return static::$defaultViewPartial; } } |