/** * @group ZF-4037 */ public function testUsesDefaultScrollingStyleIfNoneSupplied() { // First we'll make sure the base case works $output = $this->_viewHelper->__invoke($this->_paginator, 'All', 'testPagination.phtml'); $this->assertContains('page count (11) equals pages in range (11)', $output, $output); Paginator\Paginator::setDefaultScrollingStyle('All'); $output = $this->_viewHelper->__invoke($this->_paginator, null, 'testPagination.phtml'); $this->assertContains('page count (11) equals pages in range (11)', $output, $output); Helper\PaginationControl::setDefaultViewPartial('testPagination.phtml'); $output = $this->_viewHelper->__invoke($this->_paginator); $this->assertContains('page count (11) equals pages in range (11)', $output, $output); }
/** * Load the data */ public function loadData() { if (true === $this->isDataLoaded) { return true; } if ($this->isInit() !== true) { throw new \Exception('The init() method has to be called, before you can call loadData()!'); } if ($this->hasDataSource() === false) { throw new \Exception('No datasource defined! Please call "setDataSource()" first"'); } /** * Apply cache */ $renderer = $this->getRenderer(); /** * Step 1.1) Only select needed columns (performance) */ $this->getDataSource()->setColumns($this->getColumns()); /** * Step 1.2) Sorting */ foreach ($renderer->getSortConditions() as $condition) { $this->getDataSource()->addSortCondition($condition['column'], $condition['sortDirection']); } /** * Step 1.3) Filtering */ foreach ($renderer->getFilters() as $filter) { $this->getDataSource()->addFilter($filter); } $this->getDataSource()->execute(); $paginatorAdapter = $this->getDataSource()->getPaginatorAdapter(); \Zend\Paginator\Paginator::setDefaultScrollingStyle('Sliding'); $this->paginator = new Paginator($paginatorAdapter); $this->paginator->setCurrentPageNumber($renderer->getCurrentPageNumber()); $this->paginator->setItemCountPerPage($renderer->getItemsPerPage($this->getDefaultItemsPerPage())); /* @var $currentItems \ArrayIterator */ $data = $this->paginator->getCurrentItems(); if (!is_array($data)) { if ($data instanceof \Zend\Db\ResultSet\ResultSet) { $data = $data->toArray(); } elseif ($data instanceof ArrayIterator) { $data = $data->getArrayCopy(); } else { if (is_object($data)) { $add = get_class($data); } else { $add = '[no object]'; } throw new \Exception(sprintf('The paginator returned an unknown result: %s (allowed: \\ArrayIterator or a plain php array)', $add)); } } /* * Save cache */ if ($renderer->isExport() === false) { $cacheData = ['sortConditions' => $renderer->getSortConditions(), 'filters' => $renderer->getFilters(), 'currentPage' => $this->getPaginator()->getCurrentPageNumber()]; $success = $this->getCache()->setItem($this->getCacheId(), $cacheData); if ($success !== true) { /** @var \Zend\Cache\Storage\Adapter\FilesystemOptions $options */ $options = $this->getCache()->getOptions(); throw new \Exception(sprintf('Could not save the datagrid cache. Does the directory "%s" exists and is writeable? CacheId: %s', $options->getCacheDir(), $this->getCacheId())); } } /* * Step 3) Format the data - Translate - Replace - Date / time / datetime - Numbers - ... */ $prepareData = new PrepareData($data, $this->getColumns()); $prepareData->setRendererName($this->getRendererName()); if ($this->hasTranslator()) { $prepareData->setTranslator($this->getTranslator()); } $prepareData->prepare(); $this->preparedData = $prepareData->getData(); $this->isDataLoaded = true; }
/** * * @param array|object $offers * @return \Zend\Paginator\Paginator */ private function _initPaginator($offers) { \Zend\Paginator\Paginator::setDefaultScrollingStyle('Sliding'); \Zend\View\Helper\PaginationControl::setDefaultViewPartial('layout/pagination_control.phtml'); $page = $this->params()->fromRoute('page'); $page = $page ? $page : 1; if (is_object($offers)) { $offers = $offers->getArrayCopy(); } $paginator = new \Zend\Paginator\Paginator(new \Zend\Paginator\Adapter\ArrayAdapter($offers)); $paginator->setCurrentPageNumber($page); return $paginator; }
public function testGetsAndSetsDefaultScrollingStyle() { $this->assertEquals(Paginator\Paginator::getDefaultScrollingStyle(), 'Sliding'); Paginator\Paginator::setDefaultScrollingStyle('Scrolling'); $this->assertEquals(Paginator\Paginator::getDefaultScrollingStyle(), 'Scrolling'); Paginator\Paginator::setDefaultScrollingStyle('Sliding'); }
public function getViewHelperConfig() { \Zend\Paginator\Paginator::setDefaultScrollingStyle('Sliding'); \Zend\View\Helper\PaginationControl::setDefaultViewPartial("layout/paginatorItem"); return array('invokables' => array(), 'factories' => array('App' => 'Home\\View\\Helper\\AppFactory')); }