Example #1
0
 /**
  * Prepares the Pagination object for the given DataRequest and number of entries per page
  * 
  * @access public
  * @param \Zepi\DataSource\Core\Entity\DataRequest $dataRequest
  * @param string $paginationUrl
  * @param integer $numberOfEntries
  * @param integer $numberOfEntriesPerPage
  * @return \Zepi\Web\UserInterface\Pagination\Pagination
  */
 public function prepare(DataRequest $dataRequest, $paginationUrl, $numberOfEntries, $numberOfEntriesPerPage = 10)
 {
     $this->paginationUrl = $paginationUrl;
     $neededPages = ceil($numberOfEntries / $numberOfEntriesPerPage);
     $activePage = $dataRequest->getPage();
     $pagination = new PaginationObject();
     if ($activePage > 1) {
         // Add the first page button
         $button = new Button('«', $this->buildUrl(1));
         $pagination->addEntry($button);
         // Add the prev page button
         $button = new Button('‹', $this->buildUrl($activePage - 1));
         $pagination->addEntry($button);
     }
     $this->addPages($pagination, $activePage, $neededPages);
     if ($activePage < $neededPages) {
         // Add the next page button
         $button = new Button('&rsaquo;', $this->buildUrl($activePage + 1));
         $pagination->addEntry($button);
         // Add the last page button
         $button = new Button('&raquo;', $this->buildUrl($neededPages));
         $pagination->addEntry($button);
     }
     return $pagination;
 }