ZuVieL Geschrieben 2. November 2006 Geschrieben 2. November 2006 hi... ich habe mir eine kleine funktion zum blättern gebaut, soweit so gut momentan sieht es so aus Seite: << < 1 2 3 4 5 6 7 8 9 10 11 12 [ 13 ] 14 15 16 17 18 19 20 > >> ich möchte es aber bei so vielen seiten , also ab 20 denke ich so haben Seite: << < 9 10 11 12 [ 13 ] 14 15 16 17 > >> das er mir nur die vorherigen 4 und die nachfolgenden 4 anzeigt, ist sicher möglich aber ich hab 0 ahnung wie wenn jemand lange weile hat mein code: $seite = $_REQUEST[seite]; //$seite = aktuelle seite || $eintraege_anzahl = anzahl der einträge || $eintraege_pro_seite = einträge pro seite function seiten($seite, $eintraege_anzahl, $eintraege_pro_seite) { $anzahl_seiten = round($eintraege_anzahl / $eintraege_pro_seite) + 1; if(($eintraege_anzahl / $eintraege_pro_seite) > 1) { if(empty($seite)) { $seite = 1;} if($seite > 1) { if($seite != 2) { $seiten .= ' <a href="test.php?seite=1"> << </a>'; } //if ende $seiten .= ' <a href="test.php?seite='.($seite - 1).'"> < </a>'; } //if ende for($i = 1; $i < $anzahl_seiten; $i++) { if($seite == $i) { $seiten .= ' <a href="test.php?seite='.$i.'"><b>[ '.$i.' ]</b></a>'; } //if ende else { $seiten .= ' <a href="test.php?seite='.$i.'">'.$i.'</a>'; } //else ende } //for ende if($seite < ($anzahl_seiten - 1)) { $seiten .= ' <a href="test.php?seite='.($seite + 1).'"> > </a>'; if($seite != ($anzahl_seiten - 2)) { $seiten .= ' <a href="test.php?seite='.($anzahl_seiten -1).'"> >> </a>'; } //if ende } //if ende } //if ende $auflisten = 'Seite: '.$seiten; return $auflisten; }//function ende echo seiten($seite, 230, 10); [/PHP] ist sicher bisschen kompliziert geschrieben, verbesserungen gerne thx
Monty82 Geschrieben 2. November 2006 Geschrieben 2. November 2006 Ich habe dafür mal eine Funktion gemacht, die ein Array mit den Seiten zurück gibt, die angezeigt werden sollen... Kannst auch gern die Klasse haben, damit könntest Du dann direkt die Navigation in nem Template parsen... $arrNav = getNavigationArray(6,100,4,9); echo "<pre>"; print_r($arrNav); echo "</pre>"; function getNavigationArray($aktPage, $itemCount = 0, $itemsPerPage = 5, $pagesPerNavigation = 10) { $resArr = array(); $pageArr = array(); if (!(intval($aktPage) > 0)) $aktPage = 1; if (!(intval($itemCount) >= 0)) $itemCount = 0; if (!(intval($itemsPerPage) > 0)) $itemsPerPage = 5; if (!(intval($pagesPerNavigation) > 0)) $pagesPerNavigation = 10; $resArr['pageCount'] = ceil ($itemCount/$itemsPerPage); $resArr['aktPage'] = $aktPage; $resArr['itemCount'] = $itemCount; $resArr['itemsPerPage'] = $itemsPerPage; $resArr['pagesPerNavigation'] = $pagesPerNavigation; $deltaPages = floor($pagesPerNavigation/2); $tmpPages = $deltaPages; $preArr = array(); $postArr = array(); $count = 1; for ($i = 1; ($i <= $tmpPages) && $count < $resArr['pageCount'] && ($count < $pagesPerNavigation); $i++) { if (($aktPage - $i) > 0) { $preArr[($aktPage - $i)] = ""; $count++; } else $tmpPages++; if (($aktPage + $i) <= $resArr['pageCount']) { $postArr[($aktPage + $i)] = ""; $count++; } else $tmpPages++; } ksort($preArr); foreach ($preArr as $key=>$val) { if ($key != $aktPage) { $pageArr[$key] = true; //($itemsPerPage * ($key-1)).",".$itemsPerPage; } } $pageArr[$aktPage] = false; //($itemsPerPage * ($aktPage-1)).",".$itemsPerPage; foreach ($postArr as $key=>$val) { if ($key != $aktPage) { $pageArr[$key] = true; //($itemsPerPage * ($key-1)).",".$itemsPerPage; } } $resArr['pages'] = $pageArr; $resArr['fromRes'] = ($itemsPerPage * ($aktPage-1)) +1; $resArr['toRes'] = ($itemsPerPage * ($aktPage-1))+$itemsPerPage; if ($resArr['toRes'] > $itemCount) $resArr['toRes'] = $itemCount; return $resArr; } [/PHP]
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden