/** * @param Varien_Data_Collection $collection * @throws Exception */ protected function _addPagingHeaderData(Varien_Data_Collection $collection) { $links = array(); $totalCount = $collection->getSize(); $pageSize = $collection->getPageSize(); $totalPageCount = ceil($totalCount / $pageSize); $currentPage = $collection->getCurPage(); if ($currentPage === null) { $currentPage = 1; } if ($currentPage > 1) { $links[] = $this->_getPageLink(1, 'first'); $links[] = $this->_getPageLink($currentPage - 1, 'prev'); } if ($currentPage < $totalPageCount) { $links[] = $this->_getPageLink($currentPage + 1, 'next'); $links[] = $this->_getPageLink($totalPageCount, 'last'); } $this->getResponse()->setHeader('Link', implode(", ", $links))->setHeader('X-Total-Count', $totalCount)->setHeader('X-Total-Pages', $totalPageCount)->setHeader('X-Current-Page', $currentPage); }
/** * Set collection without manipulating or initializing frame. This would result in inconsistencies * because the collection is already loaded. * Instead, use limit that already has been applied on collection. * * @param Varien_Data_Collection $collection * @return $this|Mage_Page_Block_Html_Pager */ public function setCollection($collection) { $this->_collection = $collection; $this->setLimit($collection->getPageSize()); return $this; }