Seitenzahlen "splitten".
Griever
- php
Hallo.
Es wird eigentlich fast überall verwendet. Jedoch weiß ich nicht, wonach ich suchen soll, um selbst solch eine Funktion zu bauen.
Was ich habe:
Was ich möchte:
Eine Anzeige der Seiten mit folgenden Regeln:
wenn weniger als 10 Seiten vorhanden sind:
Aktuelle Seite: 6
1 2 3 4 5 6 7 8 9
wenn mehr als 10 seiten vorhanden sind:
Aktuelle Seite: 2
1 2 3 4 5 ... 46 47 48 49 50
wenn mehr als 10 seiten vorhanden sind und eine seite gewählt ist, die nicht dabei ist:
Aktuelle Seite: 24
1 2 3 4 5 ... 22 23 24 25 26 ... 46 47 48 49 50
dabei aber zu beachten, dass wenn die seite NACH der maximalanzahl steht, dass daraus folgendes wird:
Aktuelle Seite: 70
1 2 3 4 5 ... 46 47 48 49 50 ... 70
(Maximale Anzahl der Seiten außer bei der ersten regel ist immer 50)
Kann mir da wer weiterhelfen? Dürfte ja nicht soooo schwer sein, da es ja wirklich auf vielen Seiten so eingebaut ist.
Hello,
Was ich habe:
- Ich habe die maximale Seitenzahl (50 wäre von 0 bis 49)
- Ich habe die aktuelle Seite (0 = erste seite, 49 = 50te seite)
Was ich möchte:
Eine Anzeige der Seiten mit folgenden Regeln:wenn weniger als 10 Seiten vorhanden sind:
Aktuelle Seite: 6
1 2 3 4 5 6 7 8 9wenn mehr als 10 seiten vorhanden sind:
Aktuelle Seite: 2
1 2 3 4 5 ... 46 47 48 49 50wenn mehr als 10 seiten vorhanden sind und eine seite gewählt ist, die nicht dabei ist:
Aktuelle Seite: 24
1 2 3 4 5 ... 22 23 24 25 26 ... 46 47 48 49 50dabei aber zu beachten, dass wenn die seite NACH der maximalanzahl steht, dass daraus folgendes wird:
Aktuelle Seite: 70
1 2 3 4 5 ... 46 47 48 49 50 ... 70(Maximale Anzahl der Seiten außer bei der ersten regel ist immer 50)
Kann mir da wer weiterhelfen?
Ich kann Dir weiterhelfen, schlage aber eine etwas andere Funktionsbeschreibung vor:
wenn nur 10 Seiten vorhanden sind:
Aktuelle Seite: 6
A 1 2 3 4 5 * 7 8 9 10 E
wenn mehr als 10 Seiten vorhanden sind
Aktuelle Seite: 6
A -10 1 2 3 4 5 * 7 8 9 10 +10 E
Die -10 und +10 nur dann gezeigt, wenn noch soviele Seiten in der passenden Richtung vorhanden sind. Allerdings sollte sich das Layout nicht verändern, die Lücke also stehenbleiben, oder aber die -10 und +10 ggf. nur ausgegraut werden.
Wenn mehr als 100 Seiten vorhanden sind, entsprechend:
Aktuelle Seite: 6
A -100 -10 1 2 3 4 5 * 7 8 9 10 +10 +100 E
A = Anfang
E = Ende
* = aktive Seite mit Wahlmöglichkeit in der Funktion,
ob ein Selflink stattfinden soll, oder nicht.
Üblicherweise werden aktive Seiten nicht verlinkt.
Das ist aber nur dann ratsam, wenn ein "Reload" der Seite
auch sicher funktioniert.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Diese Variante ist natürlich auch nicht übel.
Jedoch würde ich halt bevorzugen, dass meine Variante verwendet werden würde. Da es so an die 2000 oder mehr Seiten werden. (die Anzahl der Einträge kann ich nicht weiter erhöhen. Diese Schätzung zählt bereits für je 100 Einträge pro Seite)
Und bevor gefragt wird: Es wird eine Galerie mit Smileys, Avataren und Piktogrammen.
Deine Variante werde ich mal folgendermaßen probieren.
Aktuelle Seite: 2
1 * 3 4 5 ... [Letzte Seite]
Aktuelle Seite: 4
1 2 3 * 5 6 ... [Letzte Seite]
Aktuelle Seite: 20
[Erste Seite] ... 18 19 * 21 22 ... [Letzte Seite]
Aktuelle Seite: 20
Letzte Seite: 21
[Erste Seite] ... 17 18 19 * 21
Also quasi, dass immer 5 Seiten zur Auswahl stehen.
Hello,
Deine Variante werde ich mal folgendermaßen probieren.
Aktuelle Seite: 2
1 * 3 4 5 ... [Letzte Seite]Aktuelle Seite: 4
1 2 3 * 5 6 ... [Letzte Seite]Aktuelle Seite: 20
[Erste Seite] ... 18 19 * 21 22 ... [Letzte Seite]Aktuelle Seite: 20
Letzte Seite: 21
[Erste Seite] ... 17 18 19 * 21
Und eine Lösung dafür findest Du dann unter
http://selfhtml.bitworks.de/artikel_locking/show_visitors.php
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
*hust* Ganz ehrlich? Das System sieht grässlich aus.
Ich habs jetzt folgendermaßen gemacht:
$blo = 9; // anzahl stets angezeigter seiten
$start = 0; // start-variable
$end = $blo; // end-variable
if(floor($s / $as) > $blo / 2) { // wenn aktuelle seite über der hälfte der anzahl angezeigter seiten liegt
$end = (floor($s / $as) + 1) + floor($blo / 2); // endwert erhöhen
}
if(floor($s / $as) + 1 >= $blo / 2) { // für die korrektur, dass der anfangswert dann auch nachzieht.
$start = (floor($s / $as)) - floor($blo / 2);
}
if($end > $seiten) { // wenn das errechnete ende über der maximal vorhandenen seitenzahl liegt.
$end = $seiten; // endwerte berechnen
$start = $end - $blo; // startwerte von endwert ableiten
}
for($i = $start;$i < $end;$i++) { // dazu brauch ich nix schreiben. ^^
if($i == floor($s / $as)) {
echo "<b>" . ($i + 1) . "</b> ";
}else{
echo "<a href=\"index.php?p=gl&s=" . $i . "\">" . ($i + 1) . "</a> ";
}
}
if(floor($s / $as) > $end) { // wenn aktuelle seite über letzter seite liegt.
echo "... <b>" . (floor($s / $as) + 1) . "</b> ";
}
floor($s / $as) ist die aktuelle seite. $s = der aktuelle SQL-Limit-Startwert. $as = die Anzahl der Einträge pro Seite.
Ergebnis: wie vorher erwähnt. ^^
*hust* Ganz ehrlich? Das System sieht grässlich aus.
Was gefällt Dir denn an der Funktion
function make_buttons($pageno, ## aktuelle Seitennummer von 0 bis n-1
$max_pageno, ## Maximal vorhandene Seitennummer
$generate=5, ## Anzahl der anzuzeigenden Buttons
$gap="\r\n") ## Zwischenraum der Buttons
nicht?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Die Anwendung meine ich nicht.
ich finde es einfach hässlich mit den Buttons und so.
Ich kann ja mal zeigen, wie es bei mir jetzt ausschaut.
http://77.7.249.7/gbi.bgun.de/index.php?p=gl
sind aber noch keine Einträge drin. Ist testweise jetzt mit zahlen gefüttert, dass es funzt.
Hello,
Die Anwendung meine ich nicht.
ich finde es einfach hässlich mit den Buttons und so.
Du solltest das ja auch nur als Anregung benutzten.
Links statt Buttons: ändere das Markup (HTML)
Hübsch: ändere das CSS dafür, oder leg eins an
Aber Links sollte man nur benutzen, wenn der User die Seiten auch bookmarken können soll.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Ich soll buttons benutzen und dadurch dafür 3 mal so viel quelltext raushauen, wie mit der link-variante?
Falls mal wer in den quelltext geschaut hat. Ich habe extra drauf geachtet, dass es eben nich 5 seiten quelltext sind. Das Design besteht aus nur 2 Grafiken. Alles andere ist mit CSS umgesetzt. (Okay. IE hab ich ausgeklammert. Eh der IE sich an die CSS-Funktionen hält ...)
Und sagt net, das würd keinen Unterschied machen. Nur so als tipp: mein Upload beträgt derzeit nur rund 7 bis 10 kb/s. Und achte mal drauf, wie schnell meine Seite dennoch lädt. Klein fiech macht auch mist.
Also nich mit solchen tipps kommen, ich solle buttons statt links nehmen, weil links angeblich nur für das bookmarken gut sei ... *kopfschüttel* (ganz ehrlich: solch ne aussage find ich echt dämlich o.o nix gegen dich)
Mit buttons hätte ich
1. mehr quelltext, der übertragen werden müßte.
2. müßte ich umständlich die größe der buttons, auch wenn nur 1 zeichen drin ist, anpassen und dann noch hintergrund sowie rahmen entfernen, damit es eben auf allen rechnern gleich aussieht. Unnötiger CSS-Aufwand, welcher ebenfalls wieder auf die gesamt zu übertragenen zeichen geht.
3. Warum soll ichs mir kompliziert machen, wenns mit nem einfachen Link schon getan ist?
außerdem:
Selbst mit links oder umgemuddelt sieht das button-ding, was du mir vorgeschlagen hast, unschön aus.
naja. mein problem hab ich aber trotzdem mit deiner hilfe gelöst. Habs halt nur ein bischen anders gemacht. danke auf jeden fall.
ach ja: wers dann unbedingt bookmarken will, bitteschön. ;)
Hello,
Also nich mit solchen tipps kommen, ich solle buttons statt links nehmen, weil links angeblich nur für das bookmarken gut sei ... *kopfschüttel* (ganz ehrlich: solch ne aussage find ich echt dämlich o.o nix gegen dich)
Warum verdrehst Du mir das Wort im Mund?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Zitat:
Aber Links sollte man nur benutzen, wenn der User die Seiten auch bookmarken können soll.
find ich recht sinnlos
Zitat:
Aber Links sollte man nur benutzen, wenn der User die Seiten auch bookmarken können soll.
find ich recht sinnlos
...........
Insgesamt würde ich sagen, wenn mich meine Auffassung der Situation nicht täuscht, dass ihr an einem Punkt angelangt seid wo ihr aneinander vorbeiredet + nicht mehr versteht und die Postings zu Spam werden :-)
Ein Chat wäre dafür geeigneter das Problem zu beseitigen, da der Informationsaustausch wesentlich besser ist. Und da ihr zwei hier sowieso als einzige postet und damit ausgegangen werden kann, dass sich keiner mehr durch all die Beiträge wurschteln will um auch was zu sagen, wäre es hier denke ich angebracht ;-)
URL -> Isn leerer Chat, versuchts dort vll.?
Grüße
Hello,
Zitat:
Aber Links sollte man nur benutzen, wenn der User die Seiten auch bookmarken können soll.
find ich recht sinnlos
Ich finde Links sinnlos, die nicht verlinkt werden können, weil sie zu nichts oder nicht zu dem, was sie versprechen, führen.
Flüchtige Verweise sollten nicht verlinkt werden.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
es werden aber nie flüchtige links sein. denn die gallerie wird immer erweitert, jedoch nicht verringert. ^^
Hello,
es werden aber nie flüchtige links sein. denn die gallerie wird immer erweitert, jedoch nicht verringert. ^^
Woher soll ich das wissen?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
[latex]Mae govannen![/latex]
Ich löse mich mal von der aktuellen Problemstellung ...
wenn mehr als 10 seiten vorhanden sind:
Aktuelle Seite: 2
1 2 3 4 5 ... 46 47 48 49 50
Weshalb hat sich diese idiotische Form eigentlich auf so vielen Sites durchgesetzt? Macht echt Spaß, wenn z.B. 200 Seiten da sind:
1 2 3 4 5 ... 196 197 198 199 200
und man Seite 105 direkt anwählen will .. Kickorgie. Wenn man viel Glück hat, gibt es einen URL-Parameter, den man diesbezüglich identifizieren und händisch ändern kann.
Weshalb hat sich nicht eher eine Form ähnlich der von Tom vorgeschlagen, mit
(-y) -x n-2 n-1 n n+1 n+2 +x (+y)
wobei man y und y dynamisch entsprechend anpasst und ggf. noch weitere feinere/grobere Unterteilungen hinzukommen, durchgesetzt? _Nutzt_ eigentlich niemand das Web, daß soetwas nicht stört oder gibt es nur noch hirn- und willenlose Klickzombies?
Cü,
Kai