Esempio n. 1
0
 /**
  * Returns the items for a given page.
  *
  * @return ArrayIterator
  */
 public function getItemsByPage($pageNumber)
 {
     if (isset($this->_pageItems[$pageNumber])) {
         return $this->_pageItems[$pageNumber];
     }
     $offset = ($pageNumber - 1) * $this->_itemCountPerPage;
     $items = $this->_adapter->getItems($offset, $this->_itemCountPerPage);
     if (!$items instanceof Iterator) {
         $items = new ArrayIterator($items);
     }
     $this->_pageItems[$pageNumber] = $items;
     return $items;
 }
Esempio n. 2
0
 /**
  * Returns the items for a given page.
  *
  * @return Traversable
  */
 public function getItemsByPage($pageNumber)
 {
     $pageNumber = $this->normalizePageNumber($pageNumber);
     if ($this->_cacheEnabled()) {
         $data = self::$_cache->load($this->_getCacheId($pageNumber));
         if ($data !== false) {
             return $data;
         }
     }
     $offset = ($pageNumber - 1) * $this->getItemCountPerPage();
     $items = $this->_adapter->getItems($offset, $this->getItemCountPerPage());
     $filter = $this->getFilter();
     if ($filter !== null) {
         $items = $filter->filter($items);
     }
     if (!$items instanceof Traversable) {
         $items = new ArrayIterator($items);
     }
     if ($this->_cacheEnabled()) {
         self::$_cache->save($items, $this->_getCacheId($pageNumber), array($this->_getCacheInternalId()));
     }
     return $items;
 }