/** * Stel de pagina-links in. * * Deze methode genereert Html die dan wordt toegevoegd aan het tfoot element van de tabel. * De voornaamste paramete $links is een array waarvan de sleutel ofwel een paginanummer is, * ofwel ייn van de volgende termen: vorige, volgende, eerste, laatste. * De elementen in de array zelf moeten telkens een url zijn. Een mogelijke aanroep kan er dus als volgt uitzien: * <code> * $currentPage = 2; * $totalPages = 3; * $links = array ( '1' => 'index.php?p=1', * '2' => 'index.php?p=2', * '3' => 'index.php?p=3', * 'eerste' => 'index.php?p=1', * 'laatste'=> 'index.php?p=3', * 'vorige' => 'index.php?p=1', * 'volgende' => 'index.php?p=3' * ); * $tabel->setPageLinks ( $currentPage , $totalPages , $links ); * </code> * @param integer $currentPage * @param integer $totalPages * @param array $links Een array waarmee links aangemaakt moeten worden. */ public function setPageLinks($currentPage, $totalPages, &$links) { $pageLinks = ''; foreach ($links as $key => &$url) { if (is_numeric($key)) { $title = "Toon pagina {$key}"; $numericLinks[] = $this->_HtmlLinkHelper->genHtmlLink($url, $key, $title); } else { $title = "Toon {$key} pagina"; $url = $this->_HtmlLinkHelper->genHtmlLink($url, $key, $title); } } if (array_key_exists('vorige', $links)) { $pageLinks .= $links['vorige'] . ' | '; } $pageLinks .= "Pagina {$currentPage} van {$totalPages}"; if (array_key_exists('volgende', $links)) { $pageLinks .= ' | ' . $links['volgende']; } $pageLinks .= '<br />'; if (array_key_exists('eerste', $links)) { $pageLinks .= $links['eerste'] . ' | '; } if (isset($numericLinks)) { $pageLinks .= implode(' | ', $numericLinks); } if (array_key_exists('laatste', $links)) { $pageLinks .= ' | ' . $links['laatste']; } $this->setFooter($pageLinks); }
/** * toHtml * * @param int $range * @return string */ public function toHtml($range = 5, $showtotals = false) { $html = ''; if ($showtotals) { $html .= '<p><strong>Je zoekopdracht leverde ' . $this->pager->getTotalRecordCount() . ' resultaten.</strong></p>'; } if ($this->pager->getPage() > $this->pager->getFirstPage()) { $this->parameters[$this->paginaNaam] = $this->pager->getPrev(); $html .= $this->lh->genHtmlLink($this->ro->gen($this->route, $this->parameters), 'Vorige'); $html .= ' [ '; $this->parameters[$this->paginaNaam] = $this->pager->getFirstPage(); $html .= $this->lh->genHtmlLink($this->ro->gen($this->route, $this->parameters), $this->pager->getFirstPage()) . ' '; } else { $html .= 'Vorige [ '; } $html .= $this->pager->getPage() > $this->pager->getFirstPage() + $range ? '.. ' : ''; foreach ($this->pager->getPrevLinks($range) as $page) { if ($page != $this->pager->getFirstPage()) { $this->parameters[$this->paginaNaam] = $page; $html .= $this->lh->genHtmlLink($this->ro->gen($this->route, $this->parameters), $page) . ' '; } } $html .= '<strong>' . $this->pager->getPage() . '</strong> '; foreach ($this->pager->getNextLinks($range) as $page) { if ($page != $this->pager->getLastPage()) { $this->parameters[$this->paginaNaam] = $page; $html .= $this->lh->genHtmlLink($this->ro->gen($this->route, $this->parameters), $page) . ' '; } } $html .= $this->pager->getPage() < $this->pager->getLastPage() - $range ? '.. ' : ''; if ($this->pager->getPage() < $this->pager->getLastPage()) { $this->parameters[$this->paginaNaam] = $this->pager->getLastPage(); $html .= $this->lh->genHtmlLink($this->ro->gen($this->route, $this->parameters), $this->pager->getLastPage()); $html .= ' ] '; $this->parameters[$this->paginaNaam] = $this->pager->getNext(); $html .= $this->lh->genHtmlLink($this->ro->gen($this->route, $this->parameters), 'Volgende'); } else { $html .= ' ] Volgende'; } return $html; }