Griever: Seitenzahlen "splitten".

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:

  • 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 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.

  1. 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 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?

    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

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. 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.

      1. 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

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. *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. ^^

          1. *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

            --
             ☻_
            /▌
            / \ Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. 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.

              1. 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

                --
                 ☻_
                /▌
                / \ Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
                1. 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.

                  • <a href="...">link</a>
                  • <input type="button" value="link" class="btn" onClick="window.location='...'" />
                  • <button onClick="window.location='...'">link</button>

                  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. ;)

                  1. 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

                    --
                     ☻_
                    /▌
                    / \ Nur selber lernen macht schlau
                    http://bergpost.annerschbarrich.de
                    1. Zitat:

                      Aber Links sollte man nur benutzen, wenn der User die Seiten auch bookmarken können soll.

                      find ich recht sinnlos

                      1. 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

                      2. 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

                        --
                         ☻_
                        /▌
                        / \ Nur selber lernen macht schlau
                        http://bergpost.annerschbarrich.de
                        1. es werden aber nie flüchtige links sein. denn die gallerie wird immer erweitert, jedoch nicht verringert. ^^

                          1. 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

                            --
                             ☻_
                            /▌
                            / \ Nur selber lernen macht schlau
                            http://bergpost.annerschbarrich.de
  2. [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

    --
    Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
    in Richtung "Mess up the Web".(suit)
    SelfHTML-Forum-Stylesheet