private function showRecordsPerPage() { $numbers = array(Config::getInstance()->getInt("tablePaging/rowsPerPage", 10), 50, 100, 200); if ($this->getPaging()->getTotalRows() < $numbers[0]) { return; } $body = "Show:"; foreach ($numbers as $number) { if ($number == $this->getPaging()->getRecordsPerPage()) { $recordsNumber = new HTMLElement("span"); $recordsNumber->setBody($number); } else { $recordsNumber = new Link(Href::current()); $recordsNumber->setParam(PagingInfoPrefs::getPageNumberParamName($this->getName()), floor($this->getPaging()->getFirstRecord() / $number)); $recordsNumber->setTitle($number)->setParam(PagingInfoPrefs::getRecordsPerPageParamName($this->getName()), $number); } $body .= $recordsNumber; if ($this->getPaging()->getTotalRows() < $number) { break; } } $recordsPerPageSpan = new HTMLElement("span"); $recordsPerPageSpan->set("class", "recordsPerPage"); $recordsPerPageSpan->setBody($body); echo $recordsPerPageSpan; }
/** * Write the links to the various pages, including the 'prev' and 'next' * links. */ protected function writePageLinks() { $linksCount = Config::getInstance()->getInt("tablePaging/maxLinksCount", 10); $pageNumParamName = PagingInfoPrefs::getPageNumberParamName($this->getName()); $recordsPerPageParamName = PagingInfoPrefs::getRecordsPerPageParamName($this->getName()); $pageLink = new Link(Href::current()); $pageLink->set("class", "pageNumber"); $arrowLink = new Link(Href::current()); $arrowLink->set("class", "arrows"); $totalPages = $this->pagingInfo->getTotalPages(); $lastLinkablePage = min($totalPages, $this->pagingInfo->getPageNumber() + $linksCount); $lastLinkIsShown = $lastLinkablePage == $totalPages; $i = max($this->pagingInfo->getPageNumber() - $linksCount, 0); $firstLinkIsShown = $i == 0; if (!$firstLinkIsShown) { echo $arrowLink->setTitle("First")->setParam($pageNumParamName, 0); echo " | "; } if ($this->pagingInfo->getPageNumber() > 0) { echo $arrowLink->setTitle("Previous")->setParam($pageNumParamName, $this->pagingInfo->getPageNumber() - 1); echo " "; } if (!$firstLinkIsShown) { echo "... "; } // If there's only one page available, don't write anything if ($i == $lastLinkablePage - 1) { echo " "; return; } while ($i < $lastLinkablePage) { if ($i == $this->pagingInfo->getPageNumber()) { // Write current page number (not a link) $currentPageSpan = new HTMLElement("span"); $currentPageSpan->set("class", "currentPage"); $currentPageSpan->setBody($i + 1); echo $currentPageSpan; } else { // Write a link to this page $pageLink->setParam($pageNumParamName, $i); $pageLink->setTitle($i + 1); echo $pageLink; } echo " "; $i++; } if (!$lastLinkIsShown) { echo "..."; } //echo ($this->pagingInfo->getFirstRecord()+1) . " - " . ($this->pagingInfo->getFirstRecord() + $this->rowCount) . " of " . $this->pagingInfo->getTotalRows(); if (!$this->pagingInfo->isLastPage()) { echo " "; echo $arrowLink->setTitle("Next")->setParam($pageNumParamName, $this->pagingInfo->getPageNumber() + 1); } if (!$lastLinkIsShown) { echo " | "; echo $arrowLink->setTitle("Last")->setParam($pageNumParamName, $totalPages - 1); } }