- <?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;
- }
- }
# |
Change |
User |
Description |
Committed |
|
#1
|
18334 |
Liz Lam |
initial add of jambox |
9 years ago
|
|