/** * @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); }