/** * Get items to render on current page * * @access public * @param $string * @return null */ public function getItemsByPage($page = null) { if (NULL === $page) { $page = $this->getCurrentPageNumber(); } return parent::getItemsByPage($page); }
public function testCacheDoesNotDisturbResultsWhenChangingParam() { $this->_paginator->setCurrentPageNumber(1)->getCurrentItems(); $pageItems = $this->_paginator->setItemCountPerPage(5)->getCurrentItems(); $expected = new \ArrayIterator(range(1, 5)); $this->assertEquals($expected, $pageItems); $pageItems = $this->_paginator->getItemsByPage(2); $expected = new \ArrayIterator(range(6, 10)); $this->assertEquals($expected, $pageItems); // change the inside Paginator scale $pageItems = $this->_paginator->setItemCountPerPage(8)->setCurrentPageNumber(3)->getCurrentItems(); $pageItems = $this->_paginator->getPageItemCache(); $expected = array(3 => new \ArrayIterator(range(17, 24))); $this->assertEquals($expected, $pageItems); // get back to already cached data $this->_paginator->setItemCountPerPage(5); $pageItems = $this->_paginator->getPageItemCache(); $expected =array(1 => new \ArrayIterator(range(1, 5)), 2 => new \ArrayIterator(range(6, 10))); $this->assertEquals($expected, $pageItems); }
/** * Lists all servicePacks matching a criteria */ public function indexAction() { // Check permissions $sp = new ServicePackModel(); $this->_helper->allowed('list', $sp); // Pagination $params = $this->_getPaginatorParams(); // Filters $filters = $this->_mapToFilter($this->_getFilterParams()); $this->_checkFilterParams($filters, ServicePackFilterFields::getWhiteList()); $filterList = $this->_spSrv->buildFilterList($filters); $this->_helper->filterNotAllowedFilters('filter_by', $filterList); // Search $spList = $this->_spSrv->listAll($filterList, $params); if ($spList) { $list = array(); foreach ($spList->getItems() as $item) { try { $this->_helper->allowed('read', $item); $this->_helper->filterNotAllowedFields('read_field', $item); $list[] = $item; } catch (Exception $e) { // Do nothing } } // Simulate pagination $it = new ArrayIterator($list); $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Iterator($it)); $paginator->setItemCountPerPage($params['count']); // Result $iterator = $paginator->getItemsByPage($params['page']); $this->view->servicePacks = iterator_to_array($iterator, false); } }
public function testGetsItemsByPage() { $expected = new ArrayIterator(range(1, 10)); $page1 = $this->_paginator->getItemsByPage(1); $this->assertEquals($page1, $expected); $this->assertEquals($page1, $this->_paginator->getItemsByPage(1)); }