function gbook_pagination($currentPage, $elementsPerPage, $paginationsPerPage) { $qry = 'SELECT count(*) rowCount FROM ' . TBL_GBOOK; $sql = new sql(); $data = $sql->get_array($qry); $oneSidePaginations = floor($paginationsPerPage / 2); //var_dump( $oneSidePaginations); $rowCount = $data[0]['rowCount']; //var_dump( $rowCount); $pageCount = ceil($rowCount / $elementsPerPage) + 1; //var_dump( $pageCount); if ($currentPage <= $oneSidePaginations) { $start = 1; } else { $start = $currentPage - $oneSidePaginations; } //var_dump( $start); $str = ''; if ($currentPage != 0) { $str .= gbook_paginationurl(0, '«'); } for ($i = 0; $i <= $paginationsPerPage; $i++) { if ($start == $pageCount) { break; } $str .= gbook_paginationurl($start - 1, $start); $start++; } if ($currentPage != $pageCount - 2) { $str .= gbook_paginationurl($pageCount - 2, '»'); } return $str; }
/** * gbook_pagination * * @param $currentPage * @param $elementsPerPage * @param $paginationsPerPage * @param int status 1=online 0=offline * @return string komplette Seitennavigation */ function gbook_pagination($currentPage, $elementsPerPage, $paginationsPerPage) { $qry = 'SELECT count(*) rowCount FROM ' . TBL_GBOOK . ' WHERE ' . TBL_GBOOK . '.status = "1"'; $sql = new rex_sql(); $data = $sql->getArray($qry); $oneSidePaginations = floor($paginationsPerPage / 2); //var_dump( $oneSidePaginations); $rowCount = $data[0]['rowCount']; //var_dump( $rowCount); $pageCount = ceil($rowCount / $elementsPerPage) + 1; //var_dump( $pageCount); if ($currentPage <= $oneSidePaginations) { (int) ($start = 1); } else { (int) ($start = $currentPage - $oneSidePaginations); } //var_dump( $start); //DebugOut($pageCount); $str = ''; if ($currentPage != 0) { $str .= "\n" . gbook_paginationurl(0, '«', 'Anfang') . "\n"; } // Seitenzahlen in ein Array speichern $seiten_array = array(); // erste Seite // $seiten_array[] = gbook_paginationurl($start, $start +1, $start +1); for ($i = 0; $i <= $paginationsPerPage - 1; $i++) { if ($start == $pageCount) { break; } if ($currentPage == $start - 1) { $seiten_array[] = gbook_paginationurl($start - 1, $start, $start, 1); } else { $seiten_array[] = gbook_paginationurl($start - 1, $start, $start); } $start++; } // Arrayinhalt umdrehen und Seitenzahlen in eine Variable zurückschreiben // und ein Trennzeichen einfügen, damit man das im Seitenquelltext besser lesen kann //$str .= implode ("\n", array_reverse ($seiten_array)); $str .= implode("\n", $seiten_array); // zeige den Sprung zum Ende nur, wenn noch nicht alle Links zum anklicken zu sehen sind if ($currentPage != $pageCount - 3 and $currentPage != $pageCount - 2 and $pageCount - 2 > $currentPage) { $str .= "\n" . gbook_paginationurl($pageCount - 2, '»', 'Ende') . "\n"; } return $str; }