Malcolm Beck´s: Weiterblättern-Menu

0 101

Weiterblättern-Menu

  1. 0
    1. 0

      Mein posting hat sich verselbständigt

      1. 0

        Doppelposting!

        1. 0
  2. 0
    1. 0
  3. 0
    1. 0
      1. 0
        1. 0
          1. 0
            1. 0
              1. 0
                1. 0
      2. 0
        1. 0
          1. 0
            1. 0
        2. 0
  4. 0
  5. 0
    1. 0
  6. 0
    1. 0
      1. 0
        1. 0
  7. 0

    Weiterblättern-Menu Fertig

    1. 0
      1. 0
    2. 1
      1. 0
        1. 0
          1. 0
    3. 0
      1. 0
        1. 0
          1. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 0
                      1. 0
                        1. 0
                        2. 0
                          1. 1
                            1. 0
                              1. 0
                                1. 0
                                  1. 0
                                    1. 0

                                      Weiterblättern-Menu „quasi“ Fertig

                                      1. 0
                                        1. 0
                                          1. 0
                                            1. 0
                                              1. 0

                                                OOP, __construct und zugriff auf $this-Variablen

                                                1. 0
                                                  1. 0
                                                    1. 0
                                                      1. 0
                                                        1. 0
                                                          1. 0
                                                            1. 0
                                                              1. 0
                                                                1. 0
                                                                  1. 0
                                                                    1. 0
                                                                      1. 0
                                                                        1. 0
                                                                          1. 0

                                                                            OOP - Olter orientierte Postingberatung

                                                                            1. 0
                                                2. 0
                                                  1. 0
                                                    1. 0
                                                      1. 0

                                                        N-Paginator V2.6 | Beta Release ist Online

                              2. 0
                                1. 1
    4. 0
      1. 0
        1. 0
          1. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 0
                      1. 0
                      2. 0
                        1. 0
                          1. 0
                            1. 0
                              1. 0
                                1. 0
      2. 0
        1. 0
          1. 0
            1. 0
              1. 0
                1. 0

                  Positive Vibes

  8. 0

    Weiterblättern-Menu -- Feuertaufe

hi,

Warum muss eigentlich diese Gesamtauswahl irgendwie dazwischen stehen? Bei Deinem ersten Versuch (siehe Screenshot oben) stand sie doch auch sehr sinnvoll "nebendran"...

Ma muss experimentieren, um zu wissen, ob man etwas mag.
Gab wieder ein Update, diesesmal sieht es aber vielversprechend aus.

http://dj-tut.de/z_test/a-ng/?rerereloaded

Einzige Macke (an sich nicht mal ne Macke) ist, dass man vorwärts jeweils über 2 Seiten springen kann, und zurück nur jeweils über eine.
Fällt euch noch irgend etwas auf, ausser dem besagtem?

mfg

  1. h1,

    http://dj-tut.de/z_test/a-ng/?rerereloaded

    sieht richtig gut aus!!!

    Fällt euch noch irgend etwas auf, ausser dem besagtem?

    Ja, die Gleichbreitigkeit der Seitenzahlen machts. Das ist so das Wichtigste, damit ein solches Menu nicht zappelt.

    Schönen Sonntag,
    Rolf

    1. hi,

      http://dj-tut.de/z_test/a-ng/?rerereloaded

      sieht richtig gut aus!!!

      Danke, das hört man doch gern (habe jetzt auch schon Paar Tage damit verbracht).

      Ja, die Gleichbreitigkeit der Seitenzahlen machts. Das ist so das Wichtigste, damit ein solches Menu nicht zappelt.

      Das hat mich die meiste Mühe gekostet, dafür ist es jetzt in Flexibel einsetzbar, da es nur Zahlen kennt.

      Aber eins Frage ich mich jetzt sehr: was hat meine Antwort an Felix hier oben im Forum verloren?
      Mein Browser war gerade abgestürzt, nach dem ich ihn neu gestartet hatte, war alles noch da, also habe ich auf absenden geklickt; kann das daran liegen?

      Schönen Sonntag,

      Auch so.

      mfg

      1. Hallo Malcolm!

        Aber eins Frage ich mich jetzt sehr: was hat meine Antwort an Felix hier oben im Forum verloren?

        Doppelposting! Ich bin enttäuscht!

        Mein Browser war gerade abgestürzt, nach dem ich ihn neu gestartet hatte, war alles noch da, also habe ich auf absenden geklickt; kann das daran liegen?

        jaja, Ausrede! Lies die Charta!

        Viele Grüße aus Frankfurt/Main,
        Patrick

        --
        _ - jenseits vom delirium - _

           Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
        Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
        1. AOP!

          Aber eins Frage ich mich jetzt sehr: was hat meine Antwort an Felix hier oben im Forum verloren?

          Doppelposting! Ich bin enttäuscht!

          aber -- aber ...

          jaja, Ausrede! Lies die Charta!

          mkay ...

          mfg

  2. Gab wieder ein Update, diesesmal sieht es aber vielversprechend aus.

    Sehr schön.

    Fällt euch noch irgend etwas auf, ausser dem besagtem?

    Unter „Direktlinks +“ konnte ich mir zunächst nichts vorstellen und hätte nicht erwartet, eine komplette Seitenübersicht zu finden. Vielleicht wäre eine Linkbeschreibung wie „Seitenübersicht“, „Alle Seiten“, „Seitenauflistung“ oder etwas ähnliches verständlicher.

    mfg Bernhard

    1. hi,

      Vielleicht wäre eine Linkbeschreibung wie „Seitenübersicht“, „Alle Seiten“, „Seitenauflistung“ oder etwas ähnliches verständlicher.

      Danke für den Hinweis, habe ich gleich übernommen.

      mfg

  3. Hello,

    bei "erste" knipst Du die ... aus, bei "letzte" aber nicht. Das irritiert.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

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

      bei "erste" knipst Du die ... aus, bei "letzte" aber nicht. Das irritiert.

      Dadurch umgehe ich ungewollte zappelei der Links, wenn neue hinzukommen oder andere verschwinden.
      Wenn ich nach dem letzten Link die Pünktchen verschwinden lassen würde, würde der letzte Link "Letzte" nach Links rutschen -- das möchte ich verhindern.

      Eventuell kann ich es ja entgegensetzt machen -- muss ich aber auf heute Abend verschieben. War 'ne lange Schicht heute.

      mfg

      1. Hello,

        bei "erste" knipst Du die ... aus, bei "letzte" aber nicht. Das irritiert.

        Dadurch umgehe ich ungewollte zappelei der Links, wenn neue hinzukommen oder andere verschwinden.
        Wenn ich nach dem letzten Link die Pünktchen verschwinden lassen würde, würde der letzte Link "Letzte" nach Links rutschen -- das möchte ich verhindern.

        Du könntest auch eine Lücke lassen. Die drei Pünktchen dueten aber an, dass im Moment des Requests da noch mehr vorhanden war.

        Du hast aber Recht. Die Zappelei ist nicht schön.
        Ich müsste das auch mal überarbeiten für die Beispiele
        http://selfhtml.bitworks.de/artikel_locking/show_visitors.php

        Und mit 530 Seiten als serialisiertes Array sind auch langsam die Grenzen erreicht.
        Dass es solange dauert, bi Antwort kommt, liegt aber wohl an der IP->Hostname-Auflösung.

        Eventuell kann ich es ja entgegensetzt machen -- muss ich aber auf heute Abend verschieben. War 'ne lange Schicht heute.

        Verstehe ich jetzt nicht.

        Dein Blättermenu ist auf jeden Fall chic. Ich würde es mir aber auch wünschen, eine besonders platzsparende, elegante Version, die trotzdem gut lesnbar ist, davon zu haben. Ich habe jetzt nicht geguckt, ist das Menu vollständig per CSS anpassbar?

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

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

          Du könntest auch eine Lücke lassen. Die drei Pünktchen dueten aber an, dass im Moment des Requests da noch mehr vorhanden war.

          Das wäre auch ne Option, ich werde heute Abend ein Paar beispiele einfügen und hier posten.

          Und mit 530 Seiten als serialisiertes Array sind auch langsam die Grenzen erreicht.
          Dass es solange dauert, bi Antwort kommt, liegt aber wohl an der IP->Hostname-Auflösung.

          Warum eigentlich ein Formular, statt normaler Links? Ich könnte mir vorstellen, dass dieses Formular auch noch ein wenig bremst.

          Eventuell kann ich es ja entgegensetzt machen
          Verstehe ich jetzt nicht.

          So, wie ich auf der Linken Seite die Pünktchen neben dem Link "Erste" verschwinden lasse, auch auf der rechten Seite verschwinden lassen (ab einem bestimmten Punkt).

          Ich habe jetzt nicht geguckt, ist das Menu vollständig per CSS anpassbar?

          Natürlich ;)

          Ich kann dir heute Abend eine abgespeckte Version kritzeln.
          Gibt aber auch diese Seite mit sehr schönen Beispielen, vielleicht ist ja was dabei.

          mfg

          1. Hello,

            Warum eigentlich ein Formular, statt normaler Links? Ich könnte mir vorstellen, dass dieses Formular auch noch ein wenig bremst.

            Glaub ich nicht, dass das auf Serverseite mehr bremst, als Links. Ob nun $_POST oder $_GET ausgewertet werden muss, sollte keinen Zeitunterschied ergeben.

            Ein Fomular wurde in diesem Beispiel aber gewählt, weil die einzelnen Seiten nicht in Suchmaschinen verlinkt werden sollten. Als Link würde sich Google z.B. alle Seiten einzeln greifen. Das würde zwar bestimmt den Page-Rank hochtreiben, aber das war ja nicht der Sinn der Übung :-)

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

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

              Glaub ich nicht, dass das auf Serverseite mehr bremst, als Links. Ob nun $_POST oder $_GET ausgewertet werden muss, sollte keinen Zeitunterschied ergeben.

              Ich habe das Gefühl, dass bei Formularen Generell alles etwas langsamer läuft, da ja alle Felder erstmal ausgewertet müssen, aber dass ist nur ein Gefühl.

              Ein Fomular wurde in diesem Beispiel aber gewählt, weil die einzelnen Seiten nicht in Suchmaschinen verlinkt werden sollten.

              Da gibt's doch die robots.txt für.

              Ich habe jedenfalls meine Funktion etwas erweitert, und in einem der Beispiele deinen Vroschlag (die „…“ zu entfernen) übernommen.
              Jetzt ist das ganze schon fast zu einem kleinen CMS verkommen ;)

              mfg

              1. Hello,

                Ein Fomular wurde in diesem Beispiel aber gewählt, weil die einzelnen Seiten nicht in Suchmaschinen verlinkt werden sollten.

                Da gibt's doch die robots.txt für.

                Das ist aber trotzdem ein Unterschied. Der Deep-Link lässt dich dann immer noch speichern und/oder verschicken. Das sollte nicht unterstützt werden in diesem Beispiel.

                Ich habe jedenfalls meine Funktion etwas erweitert, und in einem der Beispiele deinen Vroschlag (die „…“ zu entfernen) übernommen.
                Jetzt ist das ganze schon fast zu einem kleinen CMS verkommen ;)

                Und jetzt bist Du wieder über das Ziel hinausgeschossen, denke ich. Die Buttons ">" und "letzte" solltest Du nicht ausschalten. In dynamsichen Datenbeständen könnten von einem Klick zum nächsten ja schon wieder neue Sätze hinzugekommen sein.

                Liebe Grüße aus dem schönen Oberharz

                Tom vom Berg

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

                  Und jetzt bist Du wieder über das Ziel hinausgeschossen, denke ich. Die Buttons ">" und "letzte" solltest Du nicht ausschalten. In dynamsichen Datenbeständen könnten von einem Klick zum nächsten ja schon wieder neue Sätze hinzugekommen sein.

                  Das wäre aber, zumindest für das, was ich plane (ein Simples Gästebuch) zu weit gedacht. Ich gehe nicht davon aus, dass Sekündlich einträge erscheinen werden, von daher finde ich das schon Sinnvoll, wenn die besagten Links deaktiviert werden.
                  Wenn sie Aktiv blieben, fände ich als User das viel irritierender, denn ich bin laut dem Hinweis auf der Seite auf der letzten Seite, kann aber weiterhin auf "weiter" klicken.

                  Habe ich dich überhaupt richtig verstanden? ;)

                  mfg

      2. Lieber Malcolm,

        bei "erste" knipst Du die ... aus, bei "letzte" aber nicht. Das irritiert.

        Dadurch umgehe ich ungewollte zappelei der Links, wenn neue hinzukommen oder andere verschwinden.
        Wenn ich nach dem letzten Link die Pünktchen verschwinden lassen würde, würde der letzte Link "Letzte" nach Links rutschen -- das möchte ich verhindern.

        und warum kannst Du das beim "erste"-Link, nicht aber beim "letzte"-Link? Beim "erste"-Link erscheint dann eben eine Seitenzahl mehr. Das kannst Du auch beim "letzte"-Link so machen, oder nicht?

        Visuell jedenfalls ist das Teil sehr ansprechend gelöst.

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. hi Felix,

          und warum kannst Du das beim "erste"-Link, nicht aber beim "letzte"-Link? Beim "erste"-Link erscheint dann eben eine Seitenzahl mehr. Das kannst Du auch beim "letzte"-Link so machen, oder nicht?

          Ich kriege das nicht gebacken -- bzw. kriege ich natürlich die Punkte weg, wann ich will, aber nicht ohne gezappel.
          Ich verstehe auch nicht, warum es auf der einen Seite geht, auf der anderen aber nicht. Ich habe leider auch alle versuche überschrieben, daher kein Bsp. (im Endeffekt sind es ja eh nur erweiterte bedingungen).

          Ich habe es jetzt so, wie Tom das vorgeschlagen hat, gelöst, in dem ich die Punkte bei erreichen der letzten Seite einfach entferne, die Box aber so lasse, wie sie ist.

          http://dj-tut.de/z_test/a-n1/?example=2
          Mit ein Paar anderen Fall-Beispielen und fast dem Gesamten Script.

          Visuell jedenfalls ist das Teil sehr ansprechend gelöst.

          Danke -- und was ist mit dem nicht-Visuellen? Paar Tipps für das Script ansich (nur die Funktion selbst)?

          mfg

          1. Lieber Malcolm,

            und warum kannst Du das beim "erste"-Link, nicht aber beim "letzte"-Link? Beim "erste"-Link erscheint dann eben eine Seitenzahl mehr. Das kannst Du auch beim "letzte"-Link so machen, oder nicht?

            Ich kriege das nicht gebacken -- bzw. kriege ich natürlich die Punkte weg, wann ich will, aber nicht ohne gezappel.

            wieso kannst Du auf der letzten Seite nicht auch fünf Seitenzahlen anzeigen lassen, anstatt vier und einer um ihre Punkte beraubte "Ellipsenbox"?

            Visuell jedenfalls ist das Teil sehr ansprechend gelöst.

            Danke -- und was ist mit dem nicht-Visuellen? Paar Tipps für das Script ansich (nur die Funktion selbst)?

            Das schaue ich mir erst an, wenn die Funktionalität meinen Vorstellungen entspricht. ;-) Und natürlich wäre es auch schön, wenn Du da noch nen Spoiler und Breitreifen aufzögest - getönte Scheiben nicht zu vergessen! Ähm, ich meine, wenn Du diverse Dinge konfigurierbar machst, wie z.B. das mit der Max-Anzahl der anzuzeigenden Seitenlinks, und ob man nun "1" oder "first" oder "« Erste" oder "custom" anzeigen lässt (ebenso für "letzte")... und ob man für jede zehnte/hundertste/tausendste "mittendrin" auch noch eine mögliche Seitenzahl hat... und mit Flügeln, aufblasbarem Lenkrad und einem Auspuff, dass jeder Mensch Angst bekommt!

            Ich meine bei einer Forensoftware schoneinmal soetwas gesehen zu haben:

            |<|1|...|10|50|100|200|...|237|238|239|240|...|300|400|...|497|>|

            Ob das nun wünschenswert ist, bleibt dahingestellt.

            Liebe Grüße,

            Felix Riesterer.

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
            1. hi Felix,

              wieso kannst Du auf der letzten Seite nicht auch fünf Seitenzahlen anzeigen lassen, anstatt vier und einer um ihre Punkte beraubte "Ellipsenbox"?

              Die Punkte in der Ellipsenbox werden bei erreichen der letzten Seite entfernt, nur alles andere, wie Bspw. Links entfernen und so weiter bringt das ganze Konstrukt zum zappeln.
              Wenn ich Zeit finde, baue ich ein Bsp., wo man sich das ansehen kann.

              Das schaue ich mir erst an, wenn die Funktionalität meinen Vorstellungen entspricht. ;-)

              Dein Post suggerierte mir, dass du da was entdeckt hattest, was mich interessieren könnte, daher die Nachfrage.

              Ähm, ich meine, wenn Du diverse Dinge konfigurierbar machst, wie z.B. das mit der Max-Anzahl der anzuzeigenden Seitenlinks, und ob man nun "1" oder "first" oder "« Erste" oder "custom" anzeigen lässt (ebenso für "letzte")...

              Das kommt zum Schluss; ich widme mich erstmal der User-Experience, statt dem Admin-Luxus.

              Ich meine bei einer Forensoftware schoneinmal soetwas gesehen zu haben:
              |<|1|...|10|50|100|200|...|237|238|239|240|...|300|400|...|497|>|

              Das muss wirklich nicht sein. Dann lieber ein Eingabefeld, wo der User direkt eingeben kann, wohin er will.
              Mir geht es ja nicht darum, zu zeigen, was möglich ist, sondern dem User soweit unter die Arme zu greifen, wie es geht, dabei aber so zurückhaltend bleiben, wie möglich.

              mfg

        2. hi Felix und Tom,

          bei "erste" knipst Du die ... aus, bei "letzte" aber nicht. Das irritiert.

          und warum kannst Du das beim "erste"-Link, nicht aber beim "letzte"-Link? Beim "erste"-Link erscheint dann eben eine Seitenzahl mehr. Das kannst Du auch beim "letzte"-Link so machen, oder nicht?

          Nach geschlagenen, ungezählten Stunden, habe ich es doch noch hingekriegt.

          Allerdings weiss ich vor lauter Schlaflosigkeit nicht, was ich da genau gemacht habe, aber es funzt[TM].

          Ich habe einfach an den zahlen rumgespielt, und

                  if ($page < 3) {  
                    $start = 1;  
                    $stop  = 6;  
                  }  
                  else if ($page == $rate) {  
                    $start = $page-4;  
                    $stop  = $rate+1;  
                    $hellip = '';  // $hellip sind die auslassungszeichen  
                  }  
                  else if ($page > $rate-2) {  
                    $start = $page-3;  
                    $stop  = $rate+1;  
                    $hellip = '';  
                  }  
                  else if ($page < $rate/2) {  
                    $start = $page-1;  
                    $stop  = $page+3;  
                  }  
                  else if ($page > $rate/2-2) {  
                    $start = $page-2;  
                    $stop  = $page+2;  
                  }
          

          Et Voilà.

          mfg

  4. Hola!

    Sieht schon pornös gut aus.

    --
    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
          - T. Pratchett
  5. Hi!

    http://dj-tut.de/z_test/a-ng/?rerereloaded

    Ich war aber gerade ohne Javascript unterwegs und da ist mir was aufgefallen:
    Der <noscript>-Bereich wird nicht von deinem PHP-Script erzeugt - oder? Da stimmt die Seitenanzahl nämlich nicht.

    FG Ulysses

    1. hi,

      Ich war aber gerade ohne Javascript unterwegs und da ist mir was aufgefallen:
      Der <noscript>-Bereich wird nicht von deinem PHP-Script erzeugt - oder? Da stimmt die Seitenanzahl nämlich nicht.

      Ja, stimmt. Das war mir gerade auch aufgefallen und wurde mit dem letzten Update gefixt.

      http://dj-tut.de/z_test/a-n1/

      Danke trotzdem für den Hinweis.

      mfg

  6. Moin!

    Ich will ja nicht noelen, aber ist das Absicht, dass die Seite vor/zurueck Schaltflaechen nicht mehr da sind? Hab ich da was verpasst?

    --
    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
          - T. Pratchett
    1. hi,

      Ich will ja nicht noelen, aber ist das Absicht, dass die Seite vor/zurueck Schaltflaechen nicht mehr da sind? Hab ich da was verpasst?

      Wenn du mit dem IE < 7 unterwegs bist, dann ja, volle Absicht ;)

      Ich weiss nicht mal, ob's im IE 7 ok ist, habe nur noch einen echten 6er und 8er zum testen.
      Im 8er ist es richtig, und im 6er fehlen die eine Seite vor und eine Seite zurück Links -- Eventuell fix ich das (hängt von meiner Laune ab :)).

      mfg

      1. Ich will ja nicht noelen, aber ist das Absicht, dass die Seite vor/zurueck Schaltflaechen nicht mehr da sind? Hab ich da was verpasst?

        Wenn du mit dem IE < 7 unterwegs bist, dann ja, volle Absicht ;)

        Treffer, versenkt. :'(  Aber dann stoerts mich auch nicht wirklich.

        --
        "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
              - T. Pratchett
        1. hi,

          Wenn du mit dem IE < 7 unterwegs bist, dann ja, volle Absicht ;)

          Treffer, versenkt. :'(  Aber dann stoerts mich auch nicht wirklich.

          Ist Quasi gefixt :)
          Man sieht jedenfalls die Links zum weiterblättern -- sieht zwar Optisch nicht mehr Pornös gut aus, aber es funzt[TM].

          mfg

  7. hi,

    so, dass ding ist Fertig -- und IE-Tauglich ist es auch noch geworden.

    http://dj-tut.de/z_test/a-d/c-n/

    Ich habe alle Beispiele auf dieses umgeleitet.

    Was sagt ihr zu meinem Weiterblättern-Menu? Noch irgendwas, dass verbessert gehört, oder kann ich es so lassen?

    mfg

    1. Hi!

      Was sagt ihr zu meinem Weiterblättern-Menu?

      Gratuliere! Schön, übersichtlich, funktionell!

      FG Ulysses

      1. hi,

        Gratuliere! Schön, übersichtlich, funktionell!

        Danke -- sowas liest man doch am liebsten :)

        mfg

    2. [latex]Mae  govannen![/latex]

      Was sagt ihr zu meinem Weiterblättern-Menu? Noch irgendwas, dass verbessert gehört, oder kann ich es so lassen?

      Wenn JS aktiv ist, erscheint ja statt des Select-Elements eine Box mit den Seiten, wenn man mit der Maus über "Seitenübersicht"
      geht. Dazu zwei Gedanken:

      1. Ich würde den Aufruf leicht verzögern, damit man nicht jedes Mal, wenn man nur „zufällig“ über diesen Bereich kommt, diese Auswahlbox aufgeht. 200 - 400ms dürften da reichen. In etwa wie hier (die roten Fragezeichen). Ich habe in diesem Beispiel 450ms verzögert.

      2. Wie verhält sich diese Box bei »richtig vielen«™ Seiten? Soll heißen: Wenn die Ausmaße der Box den sichtbaren Bereich überschreiten und man scrollen muß, bleibt die Box dann erhalten? Wenn man gescrollt hat, ist ggf. der aktive Bereich außerhalb des sichtbaren Bereiches und man müßte wieder zurückscrollen, womit man dann wiederum nicht an die unteren Seiten käme usw.
      Könnte man lösen, indem man das Schließen verzögert, wenn die Box aus dem sichtbaren Bereich geht und wenn man innerhalb der Zeit wieder über die Box hovert, bleibt diese offen. Oder man paßt die Seitenanzeige dynamisch an, daß bei hohen Seitenzahlen erst mal nur jede zehnte / zwanzigste / fünfzigste angezeigt wird und die Einzelseiten erst bei Auswahl einer dieser Gruppen erscheinen. Oder noch anders, man kann da beliebig komplizierte Lösungen zusammenspinnen :D

      Cü,

      Kai

      --
      Even if you are a master of jQuery, you can only create mediocre (at best)
      scripts. The problem is that the authors you rely on have not mastered the
      DOM themselves. It's like one blind guy leading another off a cliff (D.Mark/clj)
      Foren-Stylesheet Site Selfzeug JS-Lookup
      SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
      1. hi,

        wenn man mit der Maus über "Seitenübersicht" geht.

        Wenn man drauf klickt, bleibt diese auch geöffnet; ich habe jetzt auch diesbezüglich auf der Seite einen Hinweis angebracht. Auch mit der Tastatur lässt sich das ganze sehr gut navigieren. Seitenübersicht antabben, mit Enter bestätigen und durch die Liste tabben.

        1. Ich würde den Aufruf leicht verzögern, damit man nicht jedes Mal, wenn man nur „zufällig“ über diesen Bereich kommt, diese Auswahlbox aufgeht. 200 - 400ms dürften da reichen.

        Dann müsste ich das hovern erstmal umändern, da derzeit fast das Gesamte aussehen über CSS gesteuert wird; Per Javascript setze ich eigentlich nur die Klassen.
        Ich muss mal _probieren_, die Klassen Zeitverzögert zu setzen -- ich weiss nämlich nicht wirklich, was ich da mit Javascript mache :) .

        1. Wie verhält sich diese Box bei »richtig vielen«™ Seiten?

        Guckst du einfach:
        8 Seiten
        300 Seiten

        Soll heißen: Wenn die Ausmaße der Box den sichtbaren Bereich überschreiten und man scrollen muß, bleibt die Box dann erhalten? Wenn man gescrollt hat, ist ggf. der aktive Bereich außerhalb des sichtbaren Bereiches und man müßte wieder zurückscrollen, womit man dann wiederum nicht an die unteren Seiten käme usw.

        Ab 30 Seiten wird die Box Breiter, ab 60 bekommt es eine Feste Höhe und overflow steht auf auto, also sollte die Box eigentlich immer im Sichtbaren Bereich sein (ich sitz gerade vor einem 15" und hier sieht alles Ok aus).

        Oder man paßt die Seitenanzeige dynamisch an, daß bei hohen Seitenzahlen erst mal nur jede zehnte / zwanzigste / fünfzigste angezeigt wird und die Einzelseiten erst bei Auswahl einer dieser Gruppen erscheinen.

        Hehe, nönö :)
        Ich hatte schon genug schwierigkeiten mit PHP und CSS, zumal ich Javascript gerade erst lerne -- evtl. versuche ich mich mal daran, denn vielversprechend klingt der Vorschlag auf jeden fall, aber ob ich dass hinkriege ...

        Das mit dem Zeitverzögert klingt aber gut, dass werde ich als nächstes angehen.

        mfg

        1. [latex]Mae  govannen![/latex]

          1. Ich würde den Aufruf leicht verzögern, damit man nicht jedes Mal, wenn man nur „zufällig“ über diesen Bereich kommt, diese Auswahlbox aufgeht. 200 - 400ms dürften da reichen.

          Dann müsste ich das hovern erstmal umändern, da derzeit fast das Gesamte aussehen über CSS gesteuert wird; Per Javascript setze ich eigentlich nur die Klassen.
          Ich muss mal _probieren_, die Klassen Zeitverzögert zu setzen -- ich weiss nämlich nicht wirklich, was ich da mit Javascript mache :)

          Der Ansatz ist schon richtig. In meiner Seite, die ich als Beispiel angeführt habe, mache ich es auch nicht anders.
          Die Links haben eine Klasse, auf die wird mit CSS ein „Verhalten“ bei :hover definiert, ganz normal also.

          Bei aktivem JS wird diese Klasse bei onload geändert - die CSS-Regeln greifen also nicht mehr. Bei mouseover wird nach der gewünschten Zeit die ursprüngliche Klasse wieder gesetzt - CSS greift wieder. Das ist alles. Bei mouseout wieder die 'falsche' Klasse setzen - fertig.

          Mich nervt es nämlich sehr, daß ich bei vielen Web-Seiten tausend Popups oder Änderungen habe, wenn ich z.B. mit der Maus nur mal eben quer über die Seite zum Scrollbalken will oder ähnliches. Na ja, wie ich bereits sagte…

          Cü,

          Kai

          --
          Even if you are a master of jQuery, you can only create mediocre (at best)
          scripts. The problem is that the authors you rely on have not mastered the
          DOM themselves. It's like one blind guy leading another off a cliff (D.Mark/clj)
          Foren-Stylesheet Site Selfzeug JS-Lookup
          SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
          1. hi,

            Der Ansatz ist schon richtig. In meiner Seite, die ich als Beispiel angeführt habe, mache ich es auch nicht anders.
            Die Links haben eine Klasse, auf die wird mit CSS ein „Verhalten“ bei :hover definiert, ganz normal also.

            Ich habe mich daran versucht, aber dass ist schon eine etwas kompliziertere Geschichte, wie in deinem Beispiel.
            Ich schaffe es zwar, die Elemente zeitverzögert einzublenden, nur muss ich dann alle möglichen Elemente prüfen, ob die mouse over oder out ist.

            Bsp.:

            <button/> <!--  
              mouseover, zeige Element mit den Links  
              mouseout, verstecke Element wieder  
            -->  
            <p id="links">  
            <a/><a/><a/>  
            </p>  
            <!-- <button/> und <p> werden absolut positioniert, daher kann ich auf das  
            umgebende Element nicht zurück greifen -->
            

            In diesem Fall muss ich ja auch immer wieder prüfen, wo die Maus ist, denn wenn ich sage,

            button.onmouseover = function() {  
              setTimeout(function() {links.className = 'show';}, 600);  
            }  
            button.onmouseout = function() {  
              setTimeout(function() {links.className = 'hide';}, 200);  
            }
            

            dann klappt die Box zu, sobald die Maus nicht mehr auf dem button ist.
            Wie könnte ich dieses Problem lösen, oder angehen?

            Mich nervt es nämlich sehr, daß ich bei vielen Web-Seiten tausend Popups oder Änderungen habe, wenn ich z.B. mit der Maus nur mal eben quer über die Seite zum Scrollbalken will oder ähnliches.

            Dito, mir geht es nicht anders.

            mfg

    3. Hello,

      so, dass ding ist Fertig -- und IE-Tauglich ist es auch noch geworden.

      http://dj-tut.de/z_test/a-d/c-n/

      Ich finde es immer noch irritierend.
      Könntest Du Dir noch eine weitere Version vorstellen, die ungefähr so funktioniert:

      ┌───┐                             ┌───┐ ┌───┐     ┌───┐ ┌───┐
      ││◄ │                         1   │ 2 │ │ 3 │ ... │ ► │ │ ►││
      └───┘                             └───┘ └───┘     └───┘ └───┘

      ┌───┐ ┌───┐           ┌───┐       ┌───┐ ┌───┐     ┌───┐ ┌───┐
      ││◄ │ │ ◄ │           │ 1 │   2   │ 3 │ │ 4 │ ... │ ► │ │ ►││
      └───┘ └───┘           └───┘       └───┘ └───┘     └───┘ └───┘

      ┌───┐ ┌───┐     ┌───┐ ┌───┐       ┌───┐ ┌───┐     ┌───┐ ┌───┐
      ││◄ │ │ ◄ │     │ 1 │ │ 2 │   3   │ 4 │ │ 4 │ ... │ ► │ │ ►││
      └───┘ └───┘     └───┘ └───┘       └───┘ └───┘     └───┘ └───┘

      ┌───┐ ┌───┐     ┌───┐ ┌───┐       ┌───┐ ┌───┐     ┌───┐ ┌───┐
      ││◄ │ │ ◄ │ ... │ 2 │ │ 3 │   4   │ 5 │ │ 6 │ ... │ ► │ │ ►││
      └───┘ └───┘     └───┘ └───┘       └───┘ └───┘     └───┘ └───┘

      ┌───┐ ┌───┐     ┌───┐ ┌───┐       ┌───┐ ┌───┐     ┌───┐ ┌───┐
      ││◄ │ │ ◄ │ ... │ 3 │ │ 4 │   5   │ 6 │ │ 7 │     │ ► │ │ ►││
      └───┘ └───┘     └───┘ └───┘       └───┘ └───┘     └───┘ └───┘

      ┌───┐ ┌───┐     ┌───┐ ┌───┐       ┌───┐           ┌───┐ ┌───┐
      ││◄ │ │ ◄ │ ... │ 4 │ │ 5 │   6   │ 7 │           │ ► │ │ ►││
      └───┘ └───┘     └───┘ └───┘       └───┘           └───┘ └───┘

      ┌───┐ ┌───┐     ┌───┐ ┌───┐                             ┌───┐
      ││◄ │ │ ◄ │ ... │ 5 │ │ 6 │   7                         │ ►││
      └───┘ └───┘     └───┘ └───┘                             └───┘

      Gemeint ist damit, dass die Bedienelemente und die Anzeige der aktiven Seite immer am gleichen Platz bleiben. Das sollte mit CSS doch möglich sein. Die Bedienung würde das sehr konfortabel machen...

      Wobei die Diskussion um den Weiter-Knopf, wenn  man bereits am Anschlag steht, schon gelaufen ist...
      Ich würde die Bedienelemente immer alle anzeigen, weil es sich im Netz ja meistens um dynamische Datenbestände handelt.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

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

        Ich finde es immer noch irritierend.
        Könntest Du Dir noch eine weitere Version vorstellen, die ungefähr so funktioniert:

        Danke für das Bsp., ich habe mal was in die Richtung gehend probiert, um zu sehen, ob es mir gefällt -- ist zwar nicht ein exakter Nachbau deines Entwurfes (der mittlere Teil), aber man kann sich was drunter vorstellen.
        http://dj-tut.de/z_test/a-d/z_gb_1/

        Aber wirklich gefallen tut mir das nicht.

        Ich bleib bei dem, was ich habe, gefällt mir schon ziemlich gut.
        Ich habe es mittlerweile um einige Features bereichert, die ich euch nicht vorenthalten möchte (wer klicken mag, wird daran seine Freude haben ;)))

        http://dj-tut.de/z_test/a-d/z_gb/
        Gibt noch Diverse Probleme bei der Übergabe der GET-Parameter an die Funktion, um die richtigen Links zu generieren; das muss ich noch fixen.
        Ich muss eh dringend mal aufräumen -- habe mittlerweile 20 Sicherungskopien auf 2 Rechnern verteilt.

        Gemeint ist damit, dass die Bedienelemente und die Anzeige der aktiven Seite immer am gleichen Platz bleiben. Das sollte mit CSS doch möglich sein.

        Es wäre eine haarsträubende rechnerei, dass mit CSS zu lösen (der mittel-Block) :)

        Ich würde die Bedienelemente immer alle anzeigen, weil es sich im Netz ja meistens um dynamische Datenbestände handelt.

        Ja, aber es geht ja nicht weiter. Wenn die Elemente Aktiv blieben, weiss User nicht, was los ist.
        Ich finde sowas irritierend.

        mfg

        1. Hello,

          Ich finde es immer noch irritierend.
          Könntest Du Dir noch eine weitere Version vorstellen, die ungefähr so funktioniert:

          Danke für das Bsp., ich habe mal was in die Richtung gehend probiert, um zu sehen, ob es mir gefällt -- ist zwar nicht ein exakter Nachbau deines Entwurfes (der mittlere Teil), aber man kann sich was drunter vorstellen.
          http://dj-tut.de/z_test/a-d/z_gb_1/

          Mir gefällt das schon besser, weil die Bedienelemente immer am selben Ort bleiben, zumindest, was die horizontale Ausrichtung betrifft. Die vertikale könnte dann ja noch vom Content abhängen, der darüber eingeblendet wird.

          DSie Punktesteuerung stimmt aber noch nicht. Die linken Punkte müssen dann angeknipst sein, wenn nach links außerhalb des angezeigten Nummernbereiches noch Dateien kommen und die rechten Punkte entsprechend dann, wenn außerhalb des _angezeigten_ Nummernbereiches noch Seiten kommen.

          Deine Sammlung ist inzwischen so interessant, dass Du die auf jeden Fall erhalten solltest und zu jeder Lösung eine Dialogmöglichkeit bereitstellen solltest :-)

          Und es wäre dann im Sinne der OOP-Freunde auch gut, die Lösungen auch als Klasse mit leicht verständlicher Schnittstelle bzw. Initialisierung anzubieten.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

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

            http://dj-tut.de/z_test/a-d/z_gb_1/
            Die vertikale könnte dann ja noch vom Content abhängen, der darüber eingeblendet wird.

            Welche Vertikale? Laut meinem Empfinden dürfte eigentlich nichts Vertikal sein :)

            Die linken Punkte müssen dann angeknipst sein, wenn nach links außerhalb des angezeigten Nummernbereiches noch Dateien kommen und die rechten Punkte entsprechend dann, wenn außerhalb des _angezeigten_ Nummernbereiches noch Seiten kommen.

            Done ;)
            Bei den anderen Versionen war es unbewusst schon so, wie du hier vorschlägst.

            Deine Sammlung ist inzwischen so interessant, dass Du die auf jeden Fall erhalten solltest und zu jeder Lösung eine Dialogmöglichkeit bereitstellen solltest :-)

            Wenn die Lösung Sauber wäre, würde ich das sogar ... aber diese Quick&Dirty Funktion ist nicht wirklich schön.
            Allein die Rechnerei, um festzustellen, wo sich User befindet und wieviel Seiten vor und zurück ...
            Das ist aber Generell eine Gute Idee, ich richte eine Subdomain auf meiner Hauptdomain ein, wo ich sowas reinstellen kann.

            Und es wäre dann im Sinne der OOP-Freunde auch gut, die Lösungen auch als Klasse mit leicht verständlicher Schnittstelle bzw. Initialisierung anzubieten.

            Wenn ich denn wüsste, wie ich das ding in eine Klasse bekomme; ich hatte schon versucht, die Funktion in eine Klasse zu packen, aber ich weiss ja immer noch nicht, wie ich überhaupt eine Sinnvolle Klasse zustande kriege :(

            Erfreulich ist an der Funktion nur, dass sie sich schnell Integrieren lässt. Auf der Disko-Seite hat es keine 5 min. gebraucht.

            http://dj-tut.de/z_test/a-d/source-code/
            Hier befinden sich alle wichtigen Ressourcen, um das ding zum laufen zu kriegen; aber wie gesagt, schön ist anders.

            mfg

            1. Wenn ich denn wüsste, wie ich das ding in eine Klasse bekomme; ich hatte schon versucht, die Funktion in eine Klasse zu packen, aber ich weiss ja immer noch nicht, wie ich überhaupt eine Sinnvolle Klasse zustande kriege :(

              Klassen Ansich sind leider ein sehr komplexes Thema, von daher frag ich mal... woran mangelt es den? Also welches ist Quasi dein erstes Problem?

              1. hi,

                Klassen Ansich sind leider ein sehr komplexes Thema, von daher frag ich mal... woran mangelt es den? Also welches ist Quasi dein erstes Problem?

                Die Kapselung Generell ist ein Problem für mich.
                Ich habe schon versucht (unzählige male), anhand der Beispiele auf dieser Seite so eine Klasse zu schreiben.
                Ich glaube mittlerweile, dass gerade diese Seite mich verwirrt, da dort in den Beispielen eine Klasse genutzt wird, in der eine Funktion aufgerufen wird, die genauso heisst, wie die Klasse selbst.

                class Klasse {  
                  function Klasse($newname) { $this->name=$newname; }  
                }
                

                Macht das überhaupt Sinn?

                Nehmen wir an, ich baue die Klasse wie folgt auf:

                class paginator {  
                  
                  function build_pagination() {  
                  // ...  
                  }  
                }
                

                Hier weiss ich schon nicht mehr, wann ich welche Parameter für die Funktion übergeben soll, da ich insgesamt 4 habe, und diese auch brauche.
                Ich werd heute Abend nochmal versuchen, da irgendwie durchzusteigen.

                mfg

                1. [latex]Mae  govannen![/latex]

                  Ich habe schon versucht (unzählige male), anhand der Beispiele auf dieser Seite so eine Klasse zu schreiben.
                  Ich glaube mittlerweile, dass gerade diese Seite mich verwirrt, da dort in den Beispielen eine Klasse genutzt wird, in der eine Funktion aufgerufen wird, die genauso heisst, wie die Klasse selbst.

                  Vergiß das einfach, das ist PHP4-Syntax, die braucht man nicht mehr.

                  Schau lieber bei php.net rein.

                  Cü,

                  Kai

                  --
                  Even if you are a master of jQuery, you can only create mediocre (at best)
                  scripts. The problem is that the authors you rely on have not mastered the
                  DOM themselves. It's like one blind guy leading another off a cliff (D.Mark/clj)
                  Foren-Stylesheet Site Selfzeug JS-Lookup
                  SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
                  1. hi,

                    Schau lieber bei php.net rein.

                    Danke für den Link, dass hätte ich eigentlich von Anfang an tun sollen; bei der suche kam HTML-World immer als erster treffer, daher habe ich es immer zu mit deren Beispielen versucht.

                    mfg

                    1. hi,

                      Ich habe jetzt einfach angefangen, allerdings muss ich erstmal rumexperimentieren, um die für mich benötigte Logik herauszufinden, ich wüsste nur gerne, ob ich mich auf dem richtigen Pfad bin.

                      Ich möchte jetzt einfach nur die Seitenanzahl berechnen und den ermittelten Wert speichern, da ich ihn später an diversen stellen brauchen werde.

                      <?php  
                        error_reporting(E_ALL | E_STRICT);  
                        
                      class Pagination  
                      {  
                        /*  
                           Gesamte Seitenanzahl anhand der Anzahl  
                           Dateien und anzuzeigenden Dateien pro Seite Berechnen  
                        
                           Könnte ich ja eigentlich direkt beim ersten Aufruf der Klasse erledigen, oder?  
                        */  
                        public $ratePage;  
                        public function total_page($files,$perpage)  
                        {  
                          return $this->ratePage = ceil($files / $perpage);  
                        }  
                      }  
                        
                      class Pagination_builder extends Pagination  
                      {  
                        function calculate_pages($files,$perpage)  
                        {  
                          return $this->total_page($files,$perpage);  
                        }  
                      }  
                        
                      $_pagination = new Pagination_builder;  
                      /*  
                         Param_1 = Dateien Gesamt  
                         Param_2 = Dateien Pro Seite  
                      */  
                      echo $_pagination->calculate_pages(1541,13);  
                      // Ergebnis 119
                      

                      mfg

                      1. hi,

                        Ich habe jetzt einfach angefangen, allerdings muss ich erstmal rumexperimentieren, um die für mich benötigte Logik herauszufinden, ich wüsste nur gerne, ob ich mich auf dem richtigen Pfad bin.

                        ich bin etwas verwundert, weshalb du eine Builder Klasse verwendest.

                        ich würde mehr in diesem Stil arbeiten:

                        class ClassName {  
                           private $anz;  
                          
                           function __construct() {  
                              this->anz = calculate();  
                              /* something */  
                           }  
                          
                           private calculate() {  
                           }  
                        }
                        
                        1. private calculate() {

                          Natürlich:
                          private function calculate() {

                        2. hi,

                          ich bin etwas verwundert, weshalb du eine Builder Klasse verwendest.

                          Wenn ich das nur wüsste :)
                          Ich dachte mir, wenn ich schon dabei bin, versuche ich das ganze gleich zu strukturieren; aber du hast Recht, ich sollte mit kleinen Schritten anfangen.

                          <?php  
                            error_reporting(E_ALL | E_STRICT);  
                            
                          class Pagination_builder  
                          {  
                             public $files, $ratePage, $persite, $pageinfo;  
                            
                             public function __construct($files,$persite) {  
                               // $this->pageinfo = calc($files,$persite); erzeugt eine Fehlermeldung, dass die Funktion „calc()“ nicht existiert  
                               $this->calc($files,$persite);  
                               $this->headinfo($files,$persite);  
                             }  
                             /*  
                              * Seitenanzahl aus „Dateien Gesamt“ und „Dateien pro Seite“ berechnen  
                             */  
                             private function calc ($files,$persite) {  
                               $this->ratePage = ceil($files/$persite);  
                             }  
                             /*  
                              * Seiten-Info: Anzahl aller Dateien und Dateien pro Seite  
                             */  
                             private function headinfo ($files,$persite) {  
                               $this->pageinfo = ' Dateien: ' . $files . ' -- Pro Seite: ' . $persite;  
                             }  
                          }  
                          /*  
                           * @param int  Dateien Gesamt  
                           * @param int  Dateien pro Seite  
                          */  
                          $_pagination = new Pagination_builder(30235, 15);  
                          echo $_pagination->ratePage;                      // Seiten Gesamt  
                          echo $_pagination->pageinfo;                      // Seiten-Info
                          

                          Ok, soweit habe ich das hoffe ich mal verstanden; nur, was mache ich jetzt?

                          Was die Klasse soll:
                          Ich benötige 2 Objekte mit überwiegend gleichen Eigenschaften, die sich je nach Konfiguration leicht abweichen werden.

                          Dann auch zu enthaltenen Text-Bausteinen, wie in „pageinfo“; wie lade ich eine XML-Datei in die Klasse? Gibt es da Empfehlenswerte Methoden? Ist es überhaupt Sinnvoll, die Klasse von einer XML-Datei abhängig zu machen?

                          mfg

                          1. hi,

                            Hallo,

                            Was die Klasse soll:
                            Ich benötige 2 Objekte mit überwiegend gleichen Eigenschaften, die sich je nach Konfiguration leicht abweichen werden.

                            Ich versteh zwar noch nicht warum zwei, aber ok.

                            Dann auch zu enthaltenen Text-Bausteinen, wie in „pageinfo“; wie lade ich eine XML-Datei in die Klasse? Gibt es da Empfehlenswerte Methoden? Ist es überhaupt Sinnvoll, die Klasse von einer XML-Datei abhängig zu machen?

                            XML Dateien sind nur Sinnvoll, wenn du längere Texte oder ähnliches hast, einfache Konfiguration kann man über eine bessere Variante lösen:

                            $_pagination = new Pagination(array("files" => 30235, /* Anzahl der ....*/  
                                                                "persite" => 15,  
                                                                "About_URL" => "..."  
                                                                ));
                            

                            Am ende einfach ein Beispiel mit allen Parametern und eine kleine Beschreibung und es ist perfekt.
                            Der Konstruktor sollte noch für jeden Parameter ein Standardwert beinhalten:

                            class Pagination_builder
                            {
                               public $files, $ratePage, $persite, $pageinfo;

                            public function __construct($param) {
                                 if (!isset($param['files'])) {/*Fehler melden - Wichtiger Wert - bsp. die(); */ }
                                 $this->files = $param['files'];
                                 $this->persite = (isset($param['persite']))?$param['persite']: /* Standardwert */10 ;
                                 $this->pageinfo = $this->calc($this->files,$this->persite); // so ist es richtig
                               }

                            ...
                            }

                            mfg

                            mfg Pryos

                            1. hi,

                              Ich versteh zwar noch nicht warum zwei, aber ok.

                              Ah Sorry, hätte ich vielleicht näher erläutern sollen.
                              Diese Klasse soll meine einfach gestrickte Paginator-Funktion ersetzen.
                              Die diversen möglichkeiten zum konfiguerien sollen mit unter sein:

                              Default: Pageinfo und normale Linkliste unten
                              Bsp. 2: ohne die nummerierte Liste oben
                              Bps. 3: keine nummerierten Links (Bspw. für einzeleinträge oder Bildergalerien)
                              Bsp. 4: wie Bsp. 3, nur mit zusätzlicher Pageinfo in der unteren Leiste (eigentlich überflüssig)

                              Das soll einfach nur ein möglichst Flexibles Menu werden.

                              XML Dateien sind nur Sinnvoll, wenn du längere Texte oder ähnliches hast, einfache Konfiguration kann man über eine bessere Variante lösen:

                              Es geht in erster Linie um die „Linkbeschriftungen“ und „beschreibungen“ im Paginator selbst.
                              Der Gedanke ist, dass man die Klasse oder das aufrufende Script selbst nicht anrühren braucht, sondern alle Textbausteine Zentral in einer Datei speichert, auch in verschiedenen Sprachen. Macht es hier Sinn?

                              $_pagination = new Pagination(array("files" => 30235, /* Anzahl der ....*/

                              "persite" => 15,
                                                                  "About_URL" => "..."
                                                                  ));

                                
                              
                              > Am ende einfach ein Beispiel mit allen Parametern und eine kleine Beschreibung und es ist perfekt.  
                              > Der Konstruktor sollte noch für jeden Parameter ein Standardwert beinhalten:  
                                
                              Danke für dieses Bsp.; der fehler mit calc() hatte mir zu schaffen gemacht -- ich stand schon kurz davor, auf [Singleton](http://www.phpbar.de/w/Singleton) überzugehen, weil ich die Parameterübergabe, und viel wichtiger, die weitere verwendung im \_\_constructor nicht verstanden hatte.  
                                
                              mfg
                              
                              -- 
                              [Die Welt ist verändert ...](http://www.youtube.com/watch?v=Obn8FA7kfD0)  
                                
                              [Es gibt so viele nette Opas, was ist bei ihnen bloss schief gelaufen?](http://www.youtube.com/watch?v=lllr32BWXGs)
                              
                              1. hi,

                                Hallo,

                                Ah Sorry, hätte ich vielleicht näher erläutern sollen.
                                Diese Klasse soll meine einfach gestrickte Paginator-Funktion ersetzen.
                                Die diversen möglichkeiten zum konfiguerien sollen mit unter sein:

                                Das soll einfach nur ein möglichst Flexibles Menu werden.

                                Dafür sind Klassen ja da, also wolltest du einfach ein frei Konfigurierbares Objekt

                                Es geht in erster Linie um die „Linkbeschriftungen“ und „beschreibungen“ im Paginator selbst.

                                Dann würde ich auch hier einfach auf Parameter setzten.

                                Der Gedanke ist, dass man die Klasse oder das aufrufende Script selbst nicht anrühren braucht, sondern alle Textbausteine Zentral in einer Datei speichert, auch in verschiedenen Sprachen. Macht es hier Sinn?

                                Wenn du Sprachdateien mitliefern willst, wo würde das natürlich sinn machen. Wobei ich hier aus einfachheitshalber (faulheit) auf PHP Dateien setze
                                bsp. "de.php" => $lang = array("Platzhalter"=> "Übersetztung", ... )

                                Ansonsten benötigst du ein XML Parser Objekt, aber das ist auch kein Hexenwerk.

                                Danke für dieses Bsp.; der fehler mit calc() hatte mir zu schaffen gemacht -- ich stand schon kurz davor, auf Singleton überzugehen, weil ich die Parameterübergabe, und viel wichtiger, die weitere verwendung im __constructor nicht verstanden hatte.

                                der __constructor ist das, was sofort bei der Erstellung der Klasse gemacht wird. Hier forderst du die wichtigen Parameter und kannst Fehler werfen wenn Sie nicht vorhanden sind. Außerdem bereitest du hier das Objekt vor.

                                Die Parameterübergabe basiert auf einem Assoziatives Array.
                                Vorteil:
                                 - man kann welche auslassen ohne irgendwelche Leerstrings oder NULL.
                                 - Name und Wert stehen nebeneinander
                                 - einfach auszulesen
                                Nachteil:
                                 - Wenn man Sie nicht kennt und man kein Beispiel/Doku hat, sind sie nur schwer zu Identifizieren

                                Einfach fragen wenn du etwas nicht verstehst.
                                Und wie weiter oben schon jemand anders schrieb, ich würde bei php.net bleiben. Es ist auch größtenteils deutsch. Es ist aktuell und es gibt super Beispiele. Das aller beste sind jedoch die EN - Kommentare, die sind oft Gold wert.

                                Btw. Singleton ist hier auch der falsche Ansatzpunkt. Soetwas verwendet man nur bei dingen die pro Script einmalig sind ... z.b. eine Verwaltung des HTTP Headers.
                                Es spricht jedoch technisch nichts dagegen mehrere Objekte deiner Klasse zu verwenden.

                                mfg

                                mfg Pryos

                                1. hi,

                                  also wolltest du einfach ein frei Konfigurierbares Objekt

                                  Ja :)

                                  Wenn du Sprachdateien mitliefern willst, wo würde das natürlich sinn machen. Wobei ich hier aus einfachheitshalber (faulheit) auf PHP Dateien setze
                                  bsp. "de.php" => $lang = array("Platzhalter"=> "Übersetztung", ... )

                                  Ich bleib wohl bei der XML, weil mir das am saubersten erscheint; da kann ich auch direkt alle Sprachen unterbringen.

                                  Ansonsten benötigst du ein XML Parser Objekt, aber das ist auch kein Hexenwerk.

                                  Hab ich schon ;)
                                  $_msg = simplexml_load_file($_sDir . 'script-inc/i18n.xml');
                                  Und das hin und her switchen zwischen Sprachen funktioniert auch.

                                  Nachteil:

                                  • Wenn man Sie nicht kennt und man kein Beispiel/Doku hat, sind sie nur schwer zu Identifizieren

                                  Ich hatte einfach nur das Problem, dass ich nicht verstanden hatte, wie ich die übergebenen Parameter-Werte in anderen Funktionen verändere und anschließend ausgebe/ aufrufe; jetzt habe ich es verstanden.
                                  Nochmals vielen Dank.

                                  Das aller beste sind jedoch die EN - Kommentare, die sind oft Gold wert.

                                  Da hatte ich auch die Idee mit dem Singleton, was ich aber ganz schnell wieder gelöscht habe.
                                  Dieser Singleton war mir von vornherein nicht Sympathisch :)

                                  mfg

                                  1. Dieser Singleton war mir von vornherein nicht Sympathisch :)

                                    Singleton ist eine wunderbare Sache, sobald es um dinge geht die Einzigartig bleiben sollten.

                                    1. hi,

                                      ich mach mal hier unten weiter.

                                      Dieser Singleton war mir von vornherein nicht Sympathisch :)
                                      Singleton ist eine wunderbare Sache, sobald es um dinge geht die Einzigartig bleiben sollten.

                                      Hehe, ich bin „Eierlegendewollmilchsau“-Züchter, einzigartig gibt es bei mir nicht ;)
                                      Danke für den Hinweis.

                                      1.) Die Funktion wird Einzigartig für den Paginator gebraucht -> cass Paginator
                                      2.) Die Funktion ist allgemein gebräuchlich -> eine einfache functions.php z.b. oder bei mehreren Funktionen eines Themas ein eigenes Objekt welches in deinem Objekt verwendet wird (egal ob als Parameter oder im Script)
                                      3.) die Funktion kannst du Ideal für weitere ähnliche Klassen gebrauchen -> Elternklasse

                                      Das kann ich jetzt noch gar nicht so recht beurteilen. Ich habe wieder in eine Falsche Richtung gedacht, nämlich daran, einfach nur „aufzuräumen“ statt Sinnvoll zu Strukturieren.

                                      Danke erstmal für die Hilfe und die Hinweise, ich werde mich jetzt einfach mal dran setzen und die Klasse fertig schreiben, und mich dann mit dem fertigen Script wieder melden.

                                      mfg

                                      1. hi,

                                        Sorry, aber ich muss einfach nochmal nachhaken, da mir das, was ich in der Klasse treibe, zu haarsträubend ist; inneinander verschachtelte str_replace und direkter zugriff auf $this-Variablen, statt die Variablen für die Funktionen mittels Parameter zu übergeben.
                                        Es funktioniert Tadellos, nur ist das noch Sauber und soll ich auf diese Weise weitermachen?
                                        Das Bsp. ist ohne Fehlerbehandlung, da ich es erst einmal anteste und es derzeit keine Fehler gibt.

                                        <?php  
                                          error_reporting(E_ALL | E_STRICT);  
                                          header('Content-Type: text/html; charset=utf-8');  
                                          $_sDir = dirname(__FILE__) . '/';  
                                          $_msg = simplexml_load_file($_sDir . '[link:http://dj-tut.de/z_test/class/script-inc/i18n.xml@title=script-inc/i18n.xml]'); // auf das wesentliche gekürzt  
                                          
                                          $setting               = array();                       // Settings initialisieren  
                                          $setting['prefix']     = 'page';                        // GET-Präfix  
                                          $setting['perpage']    = 15;                            // Dateien pro Seite  
                                          $setting['total_data'] = 452;                           // Daten gesamt  
                                          $setting['language']   = 'de';                          // Sprache  
                                          $setting['msg']        = $_msg->$setting['language'];   // XML mit passender Sprachsektion  
                                          $setting['getsite']    = get_numeric($setting['prefix']) ? $_GET[$setting['prefix']] : 1 ; // $_GET['page']  
                                          
                                        class Pagination_builder  
                                        {  
                                          public function __construct($param) {  
                                            $this->msg         = $param['msg']->pagination;  // XML-Datei, direkt auf die gewünschte Sektion  
                                            $this->total_data  = $param['total_data'];  
                                            $this->perpage     = $param['perpage'];  
                                            $this->getsite     = $param['getsite'];  
                                            $this->total_pages = $this->calculate_pages();  
                                            $this->pagefromto  = $this->head_data();  
                                          }  
                                          /* Gesamte Seitenanzahl berechnen  
                                           * @param: Dateien gesamt  
                                           * @param: Dateien pro Seite  
                                          */  
                                          private function calculate_pages() {  
                                            return ceil($this->total_data / $this->perpage);  
                                          }  
                                          /* Ersetzt in den Strings aus der XML-Datei die Platzhalter  
                                           * [b]  mit <strong>  
                                           * [/b] mit </strong>  
                                          */  
                                          private function temp_replace($str) {  
                                            return str_replace('[/b]', "</strong>", str_replace('[b]', "<strong>", $str));  
                                          }  
                                          /* Der erste Block in Head-Data  (in diesem Fall: Seite X von Y)  
                                           * Ab hier wird es Wild  
                                           * Erst wird die Funktion temp_replace aufgerufen, in dieser ersetze ich einen String  
                                           * aus der XML-Datei mit den Werten $_GET['page'],  
                                           * aber nur, wenn $_GET kleiner ist als die Gesamte Seitenanzahl  
                                          */  
                                          private function head_data() {  
                                            return $this->temp_replace( sprintf($this->msg->pagefromto /* String aus der XML-File*/  
                                                                        ,$this->getsite < $this->total_pages+1 && $this->getsite > 0  
                                                                          ? $this->getsite  /* $_GET ist kleiner als Gesamte Seitenanzahl */  
                                                                          : 1  
                                                                        , $this->total_pages));  
                                          }  
                                        }  
                                          
                                        /*  
                                         * Objekt erzeugen und anschliessend aufrufen  
                                        */  
                                        $_pagination = new Pagination_builder($setting);  
                                        echo $_pagination->pagefromto;                 // Ausgabe bei [link:http://dj-tut.de/z_test/class/?page=2@title=($_GET['page'\]==2)]: Seite 2 von 31  
                                          
                                        /*  
                                         * $_GET prüfen, ob nur zahlen enthalten sind  
                                        */  
                                        function get_numeric($key) {  
                                          return (isset($_GET[$key]) AND is_numeric($_GET[$key])) ? $_GET[$key] : false ;  
                                        }
                                        

                                        Ist der Ansatz so Ok?

                                        mfg

                                        1. hi,

                                          Hallo,

                                          Sorry, aber ich muss einfach nochmal nachhaken, da mir das, was ich in der Klasse treibe, zu haarsträubend ist; inneinander verschachtelte str_replace und direkter zugriff auf $this-Variablen, statt die Variablen für die Funktionen mittels Parameter zu übergeben.
                                          Es funktioniert Tadellos, nur ist das noch Sauber und soll ich auf diese Weise weitermachen?
                                          Das Bsp. ist ohne Fehlerbehandlung, da ich es erst einmal anteste und es derzeit keine Fehler gibt.

                                          Entschuldige, das ich erst jetzt antworte, aber ich hatte bisher nicht die Luft und den Kopf dafür ;).

                                          <?php

                                          error_reporting(E_ALL | E_STRICT);
                                            header('Content-Type: text/html; charset=utf-8');
                                            $_sDir = dirname(FILE) . '/';
                                            $_msg = simplexml_load_file($_sDir . '[link:http://dj-tut.de/z_test/class/script-inc/i18n.xml@title=script-inc/i18n.xml]'); // auf das wesentliche gekürzt

                                          // ausserhalb der Klasse isses eigendlich wurst wo du deine Daten her holst :)

                                          $setting               = array();                       // Settings initialisieren
                                            $setting['prefix']     = 'page';                        // GET-Präfix
                                            $setting['perpage']    = 15;                            // Dateien pro Seite
                                            $setting['total_data'] = 452;                           // Daten gesamt
                                            $setting['language']   = 'de';                          // Sprache
                                            $setting['msg']        = $_msg->$setting['language'];   // XML mit passender Sprachsektion
                                            $setting['getsite']    = get_numeric($setting['prefix']) ? $_GET[$setting['prefix']] : 1 ; // $_GET['page']

                                          class Pagination_builder
                                          {
                                            public function __construct($param) {
                                              $this->msg         = $param['msg']->pagination;  // XML-Datei, direkt auf die gewünschte Sektion
                                              $this->total_data  = $param['total_data'];
                                              $this->perpage     = $param['perpage'];
                                              $this->getsite     = $param['getsite'];
                                              $this->total_pages = $this->calculate_pages();
                                              $this->pagefromto  = $this->head_data();
                                            }
                                            private function calculate_pages() {
                                              return ceil($this->total_data / $this->perpage);
                                            }

                                          // Du verwendest hier ein merkwürdiges Mischmasch aus 2 Möglichkeiten. Entweder schreibst du Funktionen mit Parametern und Rückgabewerten:
                                             public function __construct($param) {
                                               $this->total_pages = $this->calculate_pages($this->total_data, $this->perpage);
                                             }
                                             private function calculate_pages($total_data, $perpage) {
                                               return ceil($total_data / $perpage);
                                             }
                                          // Oder du verwendest Funktionen, welche gleich die Klassenvariablen bearbeiten
                                             public function __construct($param) {
                                               $this->calculate_pages();
                                             }
                                             private function calculate_pages($total_data, $perpage) {
                                               $this->total_pages =  ceil($this->total_data / $this->perpage);
                                             }
                                          // Insgesamt finde ich es aber merkwürdig, weshalb du für ein ceil eine eigene Funktion schreibst ;)-

                                          private function temp_replace($str) {
                                              return str_replace('[/b]', "</strong>", str_replace('[b]', "<strong>", $str));
                                            }

                                          // Hier hast du die Funktion ja richtig meacht

                                          private function head_data() {
                                              return $this->temp_replace( sprintf($this->msg->pagefromto /* String aus der XML-File*/
                                                                          ,$this->getsite < $this->total_pages+1 && $this->getsite > 0
                                                                            ? $this->getsite  /* $_GET ist kleiner als Gesamte Seitenanzahl */
                                                                            : 1
                                                                          , $this->total_pages));
                                            }
                                          }

                                          $_pagination = new Pagination_builder($setting);
                                          echo $_pagination->pagefromto;                 // Ausgabe bei [link:http://dj-tut.de/z_test/class/?page=2@title=($_GET['page']==2)]: Seite 2 von 31

                                          // Ansich auch eine Interesante Idee, aber ich würde ehr zu Funktionen greifen und die notwendigen Daten beim Aufruf berechnen
                                          $_pagination->PrintPageHeader();
                                          // oder
                                          echo $_pagination->GetPageFooder();

                                          function get_numeric($key) {
                                            return (isset($_GET[$key]) AND is_numeric($_GET[$key])) ? $_GET[$key] : false ;
                                          }

                                          
                                          >   
                                          >   
                                          > Ist der Ansatz so Ok?  
                                          
                                          Sieht eigendlich recht gut aus.  
                                          
                                          > mfg  
                                          
                                          mfg Pryos
                                          
                                          1. hi,

                                            Entschuldige, das ich erst jetzt antworte, aber ich hatte bisher nicht die Luft und den Kopf dafür ;).

                                            Ach, kein Problem. Ich bin dir schon dankbar, dass ich überhaupt endlich mal die verwendung von Klassen verstanden habe :)

                                            // Insgesamt finde ich es aber merkwürdig, weshalb du für ein ceil eine eigene Funktion schreibst ;)-

                                            Das selbe ist mir vor 2 St. auch durch den Kopf gegangen, und ich habe es verworfen; und bei der Gelegenheit auch einige andere dinge vereinfacht.

                                            // aber ich würde ehr zu Funktionen greifen und die notwendigen Daten beim Aufruf berechnen
                                            $_pagination->PrintPageHeader();
                                            echo $_pagination->GetPageFooder();

                                            Das kommt als letzter Schritt, der auch Default sein wird.
                                            Auf die von mir verwendete Weise besteht aber noch die möglichkeit, dass man zusätzlich auf die einzelnen Ausgaben zugreifen kann; so als kleiner Bonus, einfach der Flexibiltät willen.

                                            Ist der Ansatz so Ok?
                                            Sieht eigendlich recht gut aus.

                                            Dann bleibe ich dabei. Ich habe mittlerweile auch die erste Sektion, die komplette Infoanzeige fertiggestellt, und kam mit überraschenden 25 Zeilen in der Klasse aus. Ich muss es noch kommentieren und dann den nächsten Abschnitt angehen, aber so langsam fällt es mir immer leichter.

                                            class Pagination_builder  
                                            {  
                                              public function __construct($param) {  
                                                $this->msg         = $param['msg']->pagination; // XML-Datei, direkt auf die gewünschte Sektion  
                                                $this->total_data  = $param['total_data'];  
                                                $this->perpage     = $param['perpage'];  
                                                $this->getsite     = $param['getsite'];  
                                                $this->total_pages = ceil($param['total_data'] / $param['perpage']);  
                                                // Seite X von Y  
                                                $this->pagefromto  = $this->temp_replace(sprintf($this->msg->pagefromto, $param['getsite'] < $this->total_pages+1 && $param['getsite'] > 0 ? $param['getsite'] : 1, $this->total_pages));  
                                                // Die Komplette Infoanzeige  
                                                $this->total_info  = $this->head_all();  
                                              }  
                                              
                                              private function head_all() {  
                                                $seperate = ' <span>' . $this->msg->pageinfoseperator . '</span> ';  
                                                if ($this->total_data < 1)  
                                                  return $this->msg->nodatafound;  
                                                else if ($this->total_data < $this->perpage+1)  
                                                  return $this->temp_replace( sprintf($this->msg->totalfiles, $this->total_data) );  
                                                else  
                                                  return $this->pagefromto . $seperate  
                                                       . $this->temp_replace( sprintf($this->msg->totalfiles, $this->total_data) ) . $seperate  
                                                       . $this->temp_replace( sprintf($this->msg->filesperpage, $this->perpage) );  
                                              }  
                                              private function temp_replace($str) {  
                                                return str_replace('[/b]', "</strong>", str_replace('[b]', "<strong>", $str));  
                                              }  
                                            }
                                            

                                            OOP ist Geil! ;)

                                            mfg

                                            1. OOP ist Geil! ;)

                                              und dann erst autoload:
                                              __autoload() {}

                                              1. hi,

                                                OOP ist Geil! ;)
                                                und dann erst autoload:
                                                __autoload() {}

                                                Das kommt zum guten schluss.

                                                Aber hier hat sich wieder eine Frage bei mir angestaut.

                                                Ich bin mittlerweile ganz gut vorangekommen, was das Menu angeht.

                                                Nur, wenn ich mit dem Konstruktor (__construct) arbeite, muss ich alle Variablen, die ich dem Objekt bei der erzeugung übergebe, "initialisieren", damit ich mit $this in der Klasse auf alle Variablen zugreifen kann.
                                                Mittlerweile habe ich schon 10 Variablen (und es werden mehr), die ich so initialisieren muss; ist das Normal, wenn man mit __construct arbeitet?
                                                Bspw. habe ich eine Liste mit Settings erstellt

                                                  
                                                  $setting['prefix']      = 'page';  
                                                  $setting['getsperator'] = '&amp;';  
                                                  $setting['perpage']     = 10;  
                                                  $_pagination = new Pagination_builder($setting);
                                                

                                                Jetzt kam mir die Idee, dieses Array zu erweitern und dann im __construct nur eine Variable initialisieren, und dann über die Array-Keys auf die Settings zuzugreifen, nur weiss ich nicht, ob das so Üblich ist (funktionieren tut es), also

                                                  $setting['pager']['prefix']      = 'page';  
                                                  $setting['pager']['getsperator'] = '&amp;';  
                                                  $setting['pager']['perpage']     = 10; 
                                                

                                                Dann kann ich, nachdem ich

                                                  public function __construct($param) {  
                                                    $this->arr = $param['pager'];  
                                                  }
                                                

                                                initialisiere, in allen Methoden der Klasse über

                                                $this->arr['perpage'];

                                                direkt auf die Settings zugreifen, aber ist dass noch Sauberer Stil oder überhaupt Praxistauglich, vielleicht auch eine Performance-Bremse?

                                                mfg

                                                1. ARE!

                                                  Ich bin mittlerweile ganz gut vorangekommen, was das Menu angeht.

                                                  Jetzt machst Du das Ganze noch in Perl, dann kann ich das in die seit Jahren brachliegende Neufassung meines Gästebuchs [1] einbauen.

                                                  ;)

                                                  [1] BTW: Schau Dir mal Date::Today an (Sig). Kannst Du mir alles auf Türkisch übersetzen? Natürlich nur, wenn Du noch wirklich türkisch kannst, und nicht, wie ein hier aufgewachsener polnischer Kunde von mir, der für die Übersetzung seine deutschsprachigen Webseiten durch Google-Sprachtools gejagt hat ;)

                                                  Viele Grüße aus Frankfurt/Main,
                                                  Patrick

                                                  --
                                                  _ - jenseits vom delirium - _

                                                     Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                  Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                                                  1. AOP!

                                                    Jetzt machst Du das Ganze noch in Perl, dann kann ich das in die seit Jahren brachliegende Neufassung meines Gästebuchs [1] einbauen.

                                                    Das kann dauern, hab gerade OOP in PäHAPä gelernt, dass wird erst mal ausgereizt.
                                                    Gästebuch, Kontaktformular und schon morgen ein CMS in OOP mit Javascript Perfektioniert :)

                                                    [1] BTW: Schau Dir mal Date::Today an (Sig). Kannst Du mir alles auf Türkisch übersetzen?

                                                    Das ist aber'n Ordentlicher happen :) Also ich will dir nichts versprechen, s. u..
                                                    Ich hatte beim Felix für weit aus weniger schon Wochen gebraucht, und bei ihm war es noch sehr übersichtlich. Warum nutzt du keine XML-Ähnliche Struktur für sowas? Da gibt es doch bestimmt genug Module in Perl.

                                                    Natürlich nur, wenn Du noch wirklich türkisch kannst, und nicht, wie ein hier aufgewachsener polnischer Kunde von mir, der für die Übersetzung seine deutschsprachigen Webseiten durch Google-Sprachtools gejagt hat ;)

                                                    So saß ich die meiste Zeit an Felix XML :)
                                                    Viele Wörter gibt es im Türkischen nicht einmal, und wenn ich hier richtige Türken gefragt hatte, konnten die mir auch nicht helfen, da die Älteren mit DocumentRoot und ähnlichem nichts anfangen können; von der Jugend ganz zu schweigen.

                                                    Sorry, aber wenn ich daran zurück denke, wie ich an Felix XML saß; muss nicht nochmal sein.

                                                    mfg

                                                    1. ARE!

                                                      Das kann dauern, hab gerade OOP in PäHAPä gelernt, dass wird erst mal ausgereizt.
                                                      Gästebuch, Kontaktformular und schon morgen ein CMS in OOP mit Javascript Perfektioniert :)

                                                      Und vor weniger als zwei Jahren wußtest Du nicht, wie man Webseite richtig buchstabiert. Alle Achtung, mein Junge, das alles zeigt, dass, ein bisschen Grips vorausgesetzt, dank dieses Forums alles möglich ist ;)

                                                      [1] BTW: Schau Dir mal Date::Today an (Sig). Kannst Du mir alles auf Türkisch übersetzen?
                                                      Das ist aber'n Ordentlicher happen :)

                                                      Ich meinte natürlich nicht die ganze Datei, die unter dem Link in meiner Sig ist, sonder die Teile unter »Modulcode«: Also die Monatsnamen, Tagesnamen, ob die Monate Upper- oder Lowercase geschrieben sind sowie die Übersetzung für Daylight Saving Time vs. Winterzeit usw...

                                                      Ich hatte beim Felix für weit aus weniger schon Wochen gebraucht

                                                      'sch weiß.

                                                      und bei ihm war es noch sehr übersichtlich

                                                      Findest Du (sorry, Felix) ;)

                                                      Warum nutzt du keine XML-Ähnliche Struktur für sowas? Da gibt es doch bestimmt genug Module in Perl.

                                                      Weil mit XML nichts an der Glatze habe.

                                                      Viele Wörter gibt es im Türkischen nicht einmal

                                                      Wie gesagt geht es hier nur im Monats- und Tagesnamen... und... die werdet Ihr wohl in Eurer Sprache auch haben, oder?

                                                      da die Älteren mit DocumentRoot

                                                      Hehe, darum geht es dann bei der Übersetzung der config.ini für das neue GB ;)

                                                      Sorry, aber wenn ich daran zurück denke, wie ich an Felix XML saß; muss nicht nochmal sein.

                                                      Wie gesagt, es dreht sich nur um ein Paar Monatsnamen (sechs an der Zahl - also: sechs Paar = 12 ;) ) und soviele Tagesnamen, wie die Woche Tage hat ;)

                                                      Und Sommerzeit/Winterzeit und Ähnliches ;)

                                                      Viele Grüße aus Frankfurt/Main,
                                                      Patrick

                                                      --
                                                      _ - jenseits vom delirium - _

                                                         Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                      Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                                                      1. AOP!

                                                        Und vor weniger als zwei Jahren wußtest Du nicht, wie man Webseite richtig buchstabiert. Alle Achtung, mein Junge, das alles zeigt, dass, ein bisschen Grips vorausgesetzt, dank dieses Forums alles möglich ist ;)

                                                        Sky's the Limit.
                                                        Bei der gebündelten Lehrkraft hier müsste ich schon ziemlich Blöde sein, es nicht zu lernen :))

                                                        Ich meinte natürlich nicht die ganze Datei, die unter dem Link in meiner Sig ist,

                                                        Ich hatte schon ein schlechtes Gewissen, nein zu sagen; aber die ganze Datei wäre echt'n Brocken.

                                                        sonder die Teile unter »Modulcode«:

                                                        my %daynames = (  
                                                                         tr => [  
                                                                                 "Pazar", "Pazartesi", "Salı", "&Ccedil;arşamba",  
                                                                                 "Perşembe", "Cuma", "Cumartesi"  
                                                                               ],  
                                                                    );  
                                                          
                                                        my %monthnames = (  
                                                                         tr => [  
                                                                                 "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran",  
                                                                                 "Temmuz", "Ağustos", "Eyl&uuml;l", "Ekim", "Kasım", "Aralık"  
                                                                               ],  
                                                                    );  
                                                          
                                                        my %dst_name = (  
                                                                 tr => ["Yaz Saati", "Kış Saati"],  
                                                        ## Diese beiden Begriffe sind so'ne Sache; Sommerzeit hab ich noch gefunden  
                                                        ## Winterzeit kennen die Türken nicht, alles Freunde der Sonne ;)  
                                                                );  
                                                          
                                                        ## Folgende Buchstaben haben nur Unicode, keine HTML-Maskierung  
                                                        ## Ş = &#350;  = (Sch)  
                                                        ## ş = &#351;  = (sch)  
                                                        ## ğ = &#287;  = (Weiches g)  
                                                        ## ı = &#305;  = (i ohne Punkt)  
                                                        ## UTF-8 lässt grüssen ;)
                                                        

                                                        Diesen Block?

                                                        'sch weiß.

                                                        ich weiß es ... auch!!!

                                                        Findest Du (sorry, Felix) ;)

                                                        Joa, sieht im Highlighter schön Bunt aus ;)

                                                        Weil mit XML nichts an der Glatze habe.

                                                        Und ich hab bald wegen XML ne Glatze.

                                                        Wie gesagt geht es hier nur im Monats- und Tagesnamen... und... die werdet Ihr wohl in Eurer Sprache auch haben, oder?

                                                        Einige kannte ich vom hören, aber schreiben konnte ich keines aus dem Kopf.

                                                        Hehe, darum geht es dann bei der Übersetzung der config.ini für das neue GB ;)

                                                        Schreibst du ein neues?

                                                        mfg

                                                        1. ARE!

                                                          Sky's the Limit.
                                                          Bei der gebündelten Lehrkraft hier müsste ich schon ziemlich Blöde sein, es nicht zu lernen :))

                                                          Ich verstehe nur nicht, warum Du Dich damals nicht für Perl entschieden hast. Bei dem Power, die wir damals hatten, bei den Scripts, die ich Dir gezeigt und erklärt hatte... . Aber OK, nachdem Siechfred hier weg ist, der von allen am Besten erklären konnte, und Struppi sich doch lieber auf  »JavaScript ist toll!« besinnt, Beat nur schwer erklären kann, dass es sogar für mich unklar ist, was er meint,  was er wirklich sagen will, Alexander(HH) und CPAN (fast) nur für Eingeweihte schreiben - dann kann ich das verstehen (und ja: für alle Erwähnten war's hier ein Rundumschlag: man kann nicht eine so wunderbare Sprache wie Perl verteidigen durch eine Art der Antworten, die nur bereits fortgeschrittene verstehen. Ich persönlich bleibe bei Perl. Aber wenn PHP »gewonnen« hat, dass die Mehrheit der Billighoster nur noch PHP bereitstellen und kein Perl mehr, hat das mit großer Sicherheit auch damit zu tun).

                                                          Ich hatte schon ein schlechtes Gewissen, nein zu sagen; aber die ganze Datei wäre echt'n Brocken.

                                                          Nein, zurerst kommen Anwendungsbeispiele, die sind nur für deutschsprachige gedacht. Und meine Möchtegern-POD ist eh unvollständig - außerdem würde sie in englischer Sprache bleiben ;)

                                                          sonder die Teile unter »Modulcode«:

                                                          my %daynames = (

                                                          tr => [
                                                                                   "Pazar", "Pazartesi", "Salı", "&Ccedil;arşamba",
                                                                                   "Perşembe", "Cuma", "Cumartesi"
                                                                                 ],
                                                                      );

                                                          my %monthnames = (
                                                                           tr => [
                                                                                   "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran",
                                                                                   "Temmuz", "Ağustos", "Eyl&uuml;l", "Ekim", "Kasım", "Aralık"
                                                                                 ],
                                                                      );

                                                          my %dst_name = (
                                                                   tr => ["Yaz Saati", "Kış Saati"],

                                                          Genau das wollte ich, danke!

                                                          Diese beiden Begriffe sind so'ne Sache; Sommerzeit hab ich noch gefunden

                                                          Winterzeit kennen die Türken nicht, alles Freunde der Sonne ;)

                                                          Hehe. Aber es leben Türken in Deutschland. Da müssen die doch einen Begriff haben für Winterzeit/Sommerzeit, oder?

                                                          UTF-8 lässt grüssen ;)

                                                            
                                                          Ich werde sehen, was Perl draus macht. Es gibt noch das Pragma `use utf8;`{:.language-perl}  
                                                            
                                                          
                                                          > Diesen Block?  
                                                            
                                                          ??  
                                                            
                                                            
                                                          
                                                          > > Weil mit XML nichts an der Glatze habe.  
                                                          > Und ich hab bald wegen XML ne Glatze.  
                                                            
                                                          Sag bloß! Du beschäftigst Dich auch noch mit XML? Wieviel Zeit haste denn? ;)  
                                                            
                                                          
                                                          > > Hehe, darum geht es dann bei der Übersetzung der config.ini für das neue GB ;)  
                                                          > Schreibst du ein neues?  
                                                            
                                                          Ja: Anfang 2009 habe das Read-Modul geschrieben. War noch einfach, geht es doch nur darum, die Flat-File zu lesen, und mit Hilfe der config.ini in die jeweilige Spracche zu bringen (nicht die Einträge, sondern die Metadaten). Aber das Write-Modul... daran habe ich seit einem Jahr nicht mehr gearbeitet (aufgrund der vielen Prüfungen einerseits, die dem Namen »unmöglich« weiter ermöglichen sollen, aber auch, weil ich schlicht und einfach keine Zeit, keinen Nerv mehr habe).  
                                                            
                                                          IUGB soll das übrigens heißen (ugb kennst Du, I steht dann für International) ;)  
                                                            
                                                            
                                                          Viele Grüße aus Frankfurt/Main,  
                                                          Patrick
                                                          
                                                          -- 
                                                          \_ - jenseits vom delirium - \_  
                                                          ![](http://www.atomic-eggs.com/fuernA.jpg)  
                                                             [Diblom](http://www.atomic-eggs.com/pics/diblom.png)   [[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash](http://www.atomic-eggs.com/)]  
                                                          Achtung [Agentur](http://www.atomic-eggs.com/cwi/cwi_5.shtml#a5)! | Nichts ist unmöglich? [Doch!](http://www.atomic-eggs.com/cwi/cwi_4.shtml) | [Heute](http://www.atomic-eggs.com/cgi-bin/date_today.pl) schon ge[gök](http://goek.atomic-eggs.com/goek_goek.html)t?
                                                          
                                                          1. AOP!

                                                            Ich verstehe nur nicht, warum Du Dich damals nicht für Perl entschieden hast.

                                                            Wurde alles einfach zuviel zur damaligen Zeit, und da ich zu der Zeit auch einige Seiten schnell Online bringen musste, und Perl mir zu kompliziert war, was HTML/ XHTML anging, fiel die entscheidung auf PHP.

                                                            Bei dem Power, die wir damals hatten, bei den Scripts, die ich Dir gezeigt und erklärt hatte... .

                                                            Ich hatte nicht wirklich viel verstanden damals. Vor ein Paar Monaten wollte ich dann doch noch mal "Einführung in Perl" lesen, da ich mittlerweile mit den meisten Begriffen was anfangen kann, aber ich hab das Buch verlegt -- ich hab ja noch die 2. Ausgabe, und dachte die ganze Zeit, dass ist Ausgabe 4 -- was mit 4 passiert ist, weiss ich nicht.
                                                            Aber jetzt ist's auch egal -- ich lerne OOP, und es macht Spass.

                                                            Diese beiden Begriffe sind so'ne Sache; Sommerzeit hab ich noch gefunden

                                                            Winterzeit kennen die Türken nicht, alles Freunde der Sonne ;)

                                                            Hehe. Aber es leben Türken in Deutschland. Da _müssen_ die doch einen Begriff haben für Winterzeit/Sommerzeit, oder?

                                                            Ja, Winterzeit/Sommerzeit ;)

                                                            Ich frag gleich im Laden, ich muss eh runter.

                                                            Diesen Block?

                                                            Auf den zu übersetzenden Block bezogen (ob's der richtige war).

                                                            Sag bloß! Du beschäftigst Dich auch noch mit XML? Wieviel Zeit haste denn? ;)

                                                            Nicht wirklich. In PHP gibt es ein Modul, dass das Handling ziemlich vereinfacht, daher nutze ich es jetzt für solche Zwecke.
                                                            Passt jetzt auch Wunderbar zusammen, erst ab PHP 5 verfügbar; was anderes will ich garnicht mehr schreiben.

                                                            und mit Hilfe der config.ini in die jeweilige Spracche zu bringen (nicht die Einträge, sondern die Metadaten). http://forum.de.selfhtml.org/cgi-bin/user/fo_post?fupto=194406%2C1303618&a=answer

                                                            Und hier ist das XML-modul in PHP Perfekt für geeignet.

                                                            <msg>  
                                                             <de>  
                                                              <title>International Unmögliche Gästebuch</title>  
                                                             </de>  
                                                             <en>  
                                                              <title>International impossible Guestbook</title>  
                                                             </en>  
                                                            </msg>
                                                            

                                                            Wenn die XML geladen ist, einfach $msg->en->title;.

                                                            IUGB soll das übrigens heißen (ugb kennst Du, I steht dann für International) ;)

                                                            Ah, das UGB expandiert ;)

                                                            mfg

                                                            1. ARE!

                                                              Hehe. Aber es leben Türken in Deutschland. Da _müssen_ die doch einen Begriff haben für Winterzeit/Sommerzeit, oder?
                                                              Ja, Winterzeit/Sommerzeit ;)
                                                              Ich frag gleich im Laden, ich muss eh runter.

                                                              Ich habe zunächst die türkischen Begriffe von Deinem Vorposting genommen ;)

                                                              Lokal auf meinem Apache funktioniert das schon wunderprächtig, ich brauche noch ein paar Details. Diese wären:

                                                              1. Wie wird ein Datum geschrieben?

                                                              Beispiel deutsch: Sonntag, 31. Januar 2010
                                                                                   Komma nach dem Tag, Punkt nach der Zahl, Monat großgeschrieben
                                                                 Beispiel frz.:    Dimanche 31 janvier 2010
                                                                                   Kein komma, kein Punkt, Monat kleingeschrieben
                                                                 Beispiel engl.:   Sunday, January 31st 2010
                                                                                   Komma nach dem Tag, Monat großgeschrieben, Ordinalsuffix nach der Zahl (st, rd, nd oder th)

                                                              2. Welches ist das Trennzeichen beim Kurzdatum?

                                                              Beispiel deutsch: 31.01.10
                                                                 Beispiel frz.:    31/10/10
                                                                 Beispiel NL:      31-01-10

                                                              IUGB soll das übrigens heißen (ugb kennst Du, I steht dann für International) ;)
                                                              Ah, das UGB expandiert ;)

                                                              Ja, sozusagen. Es bekommt auch eine abgeänderte Form des Date::Today-Moduls.

                                                              Viele Grüße aus Frankfurt/Main,
                                                              Patrick

                                                              --
                                                              _ - jenseits vom delirium - _

                                                                 Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                              Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                                                              1. Re!

                                                                http://www.google.com/search?q=Pazar%2C+31+Ocak+2010

                                                                1. Wie wird ein Datum geschrieben?

                                                                Sieht so aus, als wäre das Format:

                                                                Beispiel Türkisch: 31 Ocak 2010 Pazar
                                                                                         Tageszahl, Monat groß, Jahr, Wochentag groß

                                                                Richtig?

                                                                Viele Grüße aus Frankfurt/Main,
                                                                Patrick

                                                                --
                                                                _ - jenseits vom delirium - _

                                                                   Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                                Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                                                                1. AOP!

                                                                  Sieht so aus, als wäre das Format:

                                                                  Beispiel Türkisch: 31 Ocak 2010 Pazar
                                                                                           Tageszahl, Monat groß, Jahr, Wochentag groß

                                                                  Richtig?

                                                                  Ich glaube ja, zumindest scheint es das gängige Format zu sein.

                                                                  http://www.hurriyet.com.tr/anasayfa/ -- Neben dem Logo
                                                                  ... amiye_kacarak_kurtuldu/284613/1/Gundem -- über der Überschrift

                                                                  Ich habe Gestern vergessen, nachzufragen. Mache ich heute.

                                                                  1. Welches ist das Trennzeichen beim Kurzdatum?
                                                                       Beispiel deutsch: 31.01.10

                                                                  Ich denke dieses.

                                                                  mfg

                                                                  1. Hallo Malcolm!

                                                                    Sieht so aus, als wäre das Format:

                                                                    Beispiel Türkisch: 31 Ocak 2010 Pazar
                                                                                             Tageszahl, Monat groß, Jahr, Wochentag groß

                                                                    Richtig?

                                                                    Ich glaube ja, zumindest scheint es das gängige Format zu sein.

                                                                    Hm, da muss ich die private Subroutine für's Datumsformat anpassen, sind aber nur drei Stellen zu ändern ;)

                                                                    Ich habe Gestern vergessen, nachzufragen. Mache ich heute.

                                                                    Wg. Winterzeit/Sommerzeit?

                                                                    1. Welches ist das Trennzeichen beim Kurzdatum?
                                                                         Beispiel deutsch: 31.01.10
                                                                      Ich denke dieses.

                                                                    Hm, müsste schon sicher sein. Was ist mit der Kurzkurzschreibweise (ohne Jahr):

                                                                    31.01. # deutsch
                                                                    31-01  # NL
                                                                    31/01  # andere

                                                                    Leider hat Steffen Beyer in seiner Date::Calc-Neufassung (Version 6.3) kein Türkisch. Dafür Somali oder so... ;)

                                                                    Viele Grüße aus Frankfurt/Main,
                                                                    Patrick

                                                                    --
                                                                    _ - jenseits vom delirium - _

                                                                       Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                                    Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                                                                    1. AOP!

                                                                      Beispiel Türkisch: 31 Ocak 2010 Pazar
                                                                                               Tageszahl, Monat groß, Jahr, Wochentag groß
                                                                      Richtig?

                                                                      Ich hab unseren Immo-Fachmann gefragt, er sagt:

                                                                      31 Ocak 2010, Pazar

                                                                      mit Komma hinter das Jahr, wenn noch der Tag dazu geschrieben wird.
                                                                      Kein '.' nach Tag (31) und Monat wird groß geschrieben.
                                                                      Punkt (.) hinter dem Tag ist wohl eher die Seltenheit, da wir hier 31.'te' lesen.

                                                                      Ich habe Gestern vergessen, nachzufragen. Mache ich heute.
                                                                      Wg. Winterzeit/Sommerzeit?

                                                                      Schei?enkleister nein, nur nach dem Format; heute Abend, wenn ich dran denke.

                                                                      1. Welches ist das Trennzeichen beim Kurzdatum?
                                                                           Beispiel deutsch: 31.01.10
                                                                        Ich denke dieses.

                                                                      Immo-Mann sagt obiges Format, Begründung:
                                                                      Von klein nach groß: Woche hat 7 Tage, Monat 28-31, Jahr hat 300 und paar zerquetschte

                                                                      kann hinkommen; überall auf der Welt werden Dinge wie diese so Plausibel und einfach wie möglich gelöst, nur nicht in Deutschland, hier haste'n Amt für Syntax, 7 Bücher mit Richtlinien, was es jeweils zu beachten gibt und welche Ordnungswidrigkeit du begehst, wenn du irgendwas davon nicht ein hältst

                                                                      ;)

                                                                      Hm, müsste schon sicher sein. Was ist mit der Kurzkurzschreibweise (ohne Jahr):
                                                                      31.01. # deutsch

                                                                      Ich wusste nicht einmal, dass es so richtig ist. da muss ich nochmal fragen, aber ich tendiere zu deutsch.

                                                                      Leider hat Steffen Beyer in seiner Date::Calc-Neufassung (Version 6.3) kein Türkisch. Dafür Somali oder so... ;)

                                                                      mfg

                                                                      1. ARE!

                                                                        Ich hab unseren Immo-Fachmann gefragt, er sagt:

                                                                        31 Ocak 2010, Pazar

                                                                        mit Komma hinter das Jahr, wenn noch der Tag dazu geschrieben wird.
                                                                        Kein '.' nach Tag (31) und Monat wird groß geschrieben.
                                                                        Punkt (.) hinter dem Tag ist wohl eher die Seltenheit, da wir hier 31.'te' lesen.

                                                                        Super, so machen wir's!

                                                                        Ich habe Gestern vergessen, nachzufragen. Mache ich heute.
                                                                        Wg. Winterzeit/Sommerzeit?
                                                                        Schei?enkleister nein, nur nach dem Format; heute Abend, wenn ich dran denke.

                                                                        So lange lasse ich die Pünktchen ohne i, eh, anders'rum...

                                                                        kann hinkommen; überall auf der Welt werden Dinge wie diese so Plausibel und einfach wie möglich gelöst, nur nicht in Deutschland, hier haste'n Amt für Syntax, 7 Bücher mit Richtlinien, was es jeweils zu beachten gibt und welche Ordnungswidrigkeit du begehst, wenn du irgendwas davon nicht ein hältst

                                                                        ;)

                                                                        Hehe, aber die EU hat die Krummregelung für Bananen und die Kalibrierung der Äpfel wieder 'rausgenommen ;)

                                                                        Hm, müsste schon sicher sein. Was ist mit der Kurzkurzschreibweise (ohne Jahr):
                                                                        31.01. # deutsch

                                                                        Ich wusste nicht einmal, dass es so richtig ist. da muss ich nochmal fragen, aber ich tendiere zu deutsch.

                                                                        OK, ich war heute eh nicht daheim und konnte nichts dran machen. Eben heimgekommen, und jetzt kommt erstma Forum lesen.

                                                                        Viele Grüße aus Frankfurt/Main,
                                                                        Patrick

                                                                        --
                                                                        _ - jenseits vom delirium - _

                                                                           Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                                        Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                                                                        1. AOP!

                                                                          ich bin unentschuldbar -- und vor allem, Senil :(
                                                                          Ich hab vergessen zu fragen.

                                                                          Hehe, aber die EU hat die Krummregelung für Bananen und die Kalibrierung der Äpfel wieder 'rausgenommen ;)

                                                                          Deutschland backt doch nur seine eigenen Kuchen :)
                                                                          Die pfeifen hier auf unser eigenes Grundgesetz, meinste da machen die vor den EU-Richtlinien halt?

                                                                          mfg

                                                                          1. ARE!

                                                                            ich bin unentschuldbar -- und vor allem, Senil :(

                                                                            ja, ab 30 fängt's an - herzlichen Glückwunsch nachträglich (jetzt entdecke ich mich selbst als senil, ich wollte schon früher gratulieren)...

                                                                            Viele Grüße aus Frankfurt/Main,
                                                                            Patrick

                                                                            --
                                                                            _ - jenseits vom delirium - _

                                                                               Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                                                            Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                                                                            1. AOP!

                                                                              Senil :(

                                                                              ja, ab 30 fängt's an -

                                                                              Ich habe das Gefühl, dass ich das schon länger habe, weiss aber nicht mehr so genau.
                                                                              So langsam spüre ich das auch mit dem Alter; letztens hatte ich mir einen richtig üblen Zug in der gegend um die Bandscheiben eingefangen (ich war 3 Tage fast wie gelähmt vor Schmerzen und hab 3 Flaschen Whisky dagegen gehalten) -- das muss man sich mal vorstellen, Wind hat mich verletzt.

                                                                              herzlichen Glückwunsch nachträglich (jetzt entdecke ich mich selbst als senil, ich wollte schon früher gratulieren)...

                                                                              Danke.

                                                                              mfg

                                                2. Hallo,

                                                  Aber hier hat sich wieder eine Frage bei mir angestaut.
                                                  ...

                                                  Ich verstehe gerade nicht, wozu du die Verschachtelung ['pager'] brauchst, aber sagen was wirklich gängig ist, kann ich dir auch nicht.

                                                  btw. du kannst auch in deiner Klasse ein Array mit Defaultwerten definieren und danach das neue einfach mergen:

                                                    
                                                    $this->conf = array(  
                                                      "prefix"       => "page"  
                                                      "getsperator'] => '&amp;';  
                                                      "perpage']     => 10;  
                                                    );  
                                                    
                                                    public function __construct($param) {  
                                                      $this->conf = array_merge($this->conf, $param);  
                                                    }
                                                  

                                                  und dann halt nur :

                                                    
                                                    $setting['perpage']     = 20;  
                                                    $_pagination = new Pagination_builder($setting);
                                                  

                                                  und trotzdem währen alle Parameter in conf mit perpage = 20, rest default.

                                                  direkt auf die Settings zugreifen, aber ist dass noch Sauberer Stil oder überhaupt Praxistauglich, vielleicht auch eine Performance-Bremse?

                                                  Der Performance-Unterschied, sofern es ihn gibt, sollte jedoch bei ein paar Variablen nicht weiter auffallen.
                                                  Ich persönlich verwende gern Arrays für gleiche Variablen, da diese dynamischer zu Handhaben sind. Mit normalen geht zwar auch vieles, aber so ist es einfacher.

                                                  mfg

                                                  mfg pryos

                                                  1. hi,

                                                    Ich verstehe gerade nicht, wozu du die Verschachtelung ['pager'] brauchst

                                                    Sorry, nennen wir es "einen Anflug von Euphorie", ob der möglichkeiten, die ich da sah :)
                                                    Ich war etwas überfordert mit dem ganzen, daher hatte mein Logisches Denkvermögen nachgelassen -- es kam mir so vor, als ob ich nur im __construct auf die Array-Keys zugreifen konnte; jetzt geht's wieder.

                                                    $setting['perpage']     = 20;
                                                      $_pagination = new Pagination_builder($setting);

                                                      
                                                    Danke für das merge-Beispiel. Ich hatte die Idee zwar verworfen, aber für die Default-Settings kann ich das evtl. nehmen.  
                                                      
                                                    
                                                    > Ich persönlich verwende gern Arrays für gleiche Variablen, da diese dynamischer zu Handhaben sind. Mit normalen geht zwar auch vieles, aber so ist es einfacher.  
                                                      
                                                    Sehe ich genau so.  
                                                      
                                                    Was hältst du denn von der Idee, Generell für Funktionen in PHP Arrays zu verwenden?  
                                                    Die Idee kam mir, als ich hier eine Funktion drei mal umgeschrieben hatte und dann jedes Probleme mit den Parametern bekam. Mit einem Array hätte ich diese Schwierigkeiten nicht, aber vielleicht Nachteile, die ich jetzt nicht sehe. Fallen dir da welche ein?  
                                                      
                                                      
                                                      
                                                    Jedenfalls habe ich die [Klasse so weit Fertig](http://dj-tut.de/z_test/class/) gekriegt, es läuft wie gewünscht und Kommentiert (eher kleine Inhaltsangeben) ist es auch schon.  
                                                    Nur noch an der Ausgabe muss ich etwas tüfteln (auf der verlinkten Seite ist jetzt die Default-Ausgabe ohne Parameter), dann gibt es das erste Beta-Release :)  
                                                      
                                                    mfg
                                                    
                                                    -- 
                                                    [Die Welt ist verändert ...](http://www.youtube.com/watch?v=Obn8FA7kfD0)  
                                                      
                                                    [Es gibt so viele nette Opas, was ist bei ihnen bloss schief gelaufen?](http://www.youtube.com/watch?v=lllr32BWXGs)
                                                    
                                                    1. hi,

                                                      Hallo,

                                                      Sorry, nennen wir es "einen Anflug von Euphorie", ob der möglichkeiten, die ich da sah :)
                                                      Ich war etwas überfordert mit dem ganzen, daher hatte mein Logisches Denkvermögen nachgelassen -- es kam mir so vor, als ob ich nur im __construct auf die Array-Keys zugreifen konnte; jetzt geht's wieder.

                                                      Das kenn ich nur zu gut ;-)

                                                      Danke für das merge-Beispiel. Ich hatte die Idee zwar verworfen, aber für die Default-Settings kann ich das evtl. nehmen.

                                                      Jup, dafür verwend ich es auch immer.

                                                      Was hältst du denn von der Idee, Generell für Funktionen in PHP Arrays zu verwenden?

                                                      Ist sehr Funktions abhängig. Bei Funktionen mit Parametern die auf einander aufbauen ist es überflüssig, aber wenn du recht viele Optionale Parameter hast, die wirklich Optional sind, dann macht es sehr viel sinn.

                                                      Ich verwende es auch oft bei "Add" Funktionen.
                                                      obj.addValue("Name", "Value");
                                                      oder
                                                      obj.addValue(array("Name"=>"Value", "Name2"=>"Value2"));

                                                      Die Idee kam mir, als ich hier eine Funktion drei mal umgeschrieben hatte und dann jedes Probleme mit den Parametern bekam. Mit einem Array hätte ich diese Schwierigkeiten nicht, aber vielleicht Nachteile, die ich jetzt nicht sehe. Fallen dir da welche ein?

                                                      Nachteile? Nun du musst immer ein Array definieren, das kann bei kleineren Funktionen mit den man gerne Verschachtelt etwas unübersichtlich werden. Bei grösseren erhöhnt es hingegen die Übersicht weil man nicht dauernd nachschauen muss an welcher Stelle welcher Parameter war.

                                                      Jedenfalls habe ich die Klasse so weit Fertig gekriegt, es läuft wie gewünscht und Kommentiert (eher kleine Inhaltsangeben) ist es auch schon.
                                                      Nur noch an der Ausgabe muss ich etwas tüfteln (auf der verlinkten Seite ist jetzt die Default-Ausgabe ohne Parameter), dann gibt es das erste Beta-Release :)

                                                      Ich freue mich schon mal darauf.

                                                      mfg

                                                      mfg Pryos

                                                      1. hi,

                                                        aber wenn du recht viele Optionale Parameter hast, die wirklich Optional sind, dann macht es sehr viel sinn.

                                                        Genau sowas meinte ich; bei ein oder zwei Parametern macht es echt keinen Sinn.

                                                        Ich verwende es auch oft bei "Add" Funktionen.

                                                        Was sind denn "Add" Funktionen?

                                                        dann gibt es das erste Beta-Release :)

                                                        Ich freue mich schon mal darauf.

                                                        Ich habe Fertig (oder keine Lust mehr; wie man's nimmt) :)

                                                        http://dj-tut.de/z_test/paginator/

                                                        Ich hab die Seite, so wie sie dort zusehen ist, in ein Zip-Archiv gepackt und bin bereit für Kritik, schiesst los :)

                                                        mfg

                              2. hi,

                                eine klitzekleinigkeit noch.
                                So wie es jetzt ausschaut, wird dieser Paginator eine Menge Funktionen beinhalten; soll ich alles in diese eine Klasse packen, oder evtl. eine Klasse für die beteiligten Funktionen als „Hauptklasse“, und den Aufruf und die diversen ausgabemöglichkeiten dann über den Pagination_builder?

                                mfg

                                1. So wie es jetzt ausschaut, wird dieser Paginator eine Menge Funktionen beinhalten; soll ich alles in diese eine Klasse packen, oder evtl. eine Klasse für die beteiligten Funktionen als „Hauptklasse“, und den Aufruf und die diversen ausgabemöglichkeiten dann über den Pagination_builder?

                                  Die frage ist doch: Wie viele Klassen und Objekte brauchst du wirklich.

                                  Eine Elternklasse macht sinn, wenn dein Paginator Methoden enthält welche du auch für andere ähnliche Zwecke verwenden kannst und willst (funktionen erben).
                                  Beispiel: Klasse Fahrzeug -> währe eine Ideale Elternklasse für die Klassen PKW und LKW

                                  Eine Builderklasse macht nur sinn, wenn du entweder mehrere Objekte erstellst oder für die Erstellung mehrere Objekte benötigst, welche verwaltet werden müssen. Ansonsten ist __constructor der einzige Builder den du brauchst.
                                  Leider fällt mir hier kein Beispiel ein. Ich kenne Builderklassen nur aus Java und da sind sie sehr selten.

                                  Daneben gibt es noch die Möglichkeit Klassen für weitere Zwecke zu erstellen, die einfach innerhalb deiner Klasse verwendet werden:
                                  Beispiel: die Klasse Color, hier kann man die Farbe als RGB speichern und Funktionen zum Errechnen oder Umrechnen der Farbe Implementieren (toHex/fromHex/toCMYK/fromCMYK)

                                  Um diese Frage zu klären musst du dir alle Funktion die du verwendest anschauen und sie in 3 Kategorien aufteilen:

                                  1.) Die Funktion wird Einzigartig für den Paginator gebraucht -> cass Paginator
                                  2.) Die Funktion ist allgemein gebräuchlich -> eine einfache functions.php z.b. oder bei mehreren Funktionen eines Themas ein eigenes Objekt welches in deinem Objekt verwendet wird (egal ob als Parameter oder im Script)
                                  3.) die Funktion kannst du Ideal für weitere ähnliche Klassen gebrauchen -> Elternklasse

                                  Das ist zuminst meine Sicht, man möge mich korrigieren wenn meine Ansicht falsch ist.

    4. http://dj-tut.de/z_test/a-d/c-n/

      Ich habe alle Beispiele auf dieses umgeleitet.

      Was sagt ihr zu meinem Weiterblättern-Menu? Noch irgendwas, dass verbessert gehört, oder kann ich es so lassen?

      Sieh ok aus - was mir persönlich nicht gefällt ist das asymetrische verhalten - in der mitte sind immer 4 Ziffern zu sehen - ich würde 5 bevorzugen (zwei vor und zwei nach der aktuellen Seite).

      Btw: ich würde mir gerne nochmal den Sourcecode anschaun, lässt sich das einrichten?

      1. hi,

        Sieh ok aus - was mir persönlich nicht gefällt ist das asymetrische verhalten - in der mitte sind immer 4 Ziffern zu sehen - ich würde 5 bevorzugen (zwei vor und zwei nach der aktuellen Seite).

        Wenn du die verrenkungen siehst, die ich Mathematisch anstelle, um überhaupt was hinzukriegen :)
        Wenn du eine Saubere Lösung für die Berechnung der Start und Stoppunkte findest, lasse es mich Bitte wissen.

        Btw: ich würde mir gerne nochmal den Sourcecode anschaun, lässt sich das einrichten?

        Die letzte Stabile Version (wobei da noch ein wenig unordnung herrscht; frag einfach nach, wenn was ist)
        http://dj-tut.de/z_test/a-d/_gb_2.rar (Das Komplette Verzeichnis, quasi Ready to Go)

        Oder du wartest ein paar tage, dann steht hier eine NigelNagelNeue Klasse zur verfügung :)

        mfg

        1. Die letzte Stabile Version (wobei da noch ein wenig unordnung herrscht;

          Mich interessiert eigentlich nur der theoretische Ansatz um zu sehen, ob der auch etwas für meine Bedürfnisse ist.

          frag einfach nach, wenn was ist)

          ggf. könnte ich die Sache mal 1:1 gebrauchen, wie siehts mit der Lizenz aus - hast du irgendetwas vorgesehen?

          Oder du wartest ein paar tage, dann steht hier eine NigelNagelNeue Klasse zur verfügung :)

          Wie erwähnt brauch ich die Lösung vielleicht irgendwann mal :)

          1. hi,

            Mich interessiert eigentlich nur der theoretische Ansatz um zu sehen, ob der auch etwas für meine Bedürfnisse ist.

            Schon analysiert?

            ggf. könnte ich die Sache mal 1:1 gebrauchen, wie siehts mit der Lizenz aus - hast du irgendetwas vorgesehen?

            Noch nicht. Aber ein Backlink macht sich doch immer gut.
            Muss auch nicht mit dem Hinweis geschehen, dass der Paginator von mir ist; ich bin bescheiden, ein einfacher Link sollte reichen und die Mühe sollte es Wert sein, ge"backlinked" zu werden :)

            Wie erwähnt brauch ich die Lösung vielleicht irgendwann mal :)

            Den ersten Part habe ich fertig (Der Infohead-Bereich), der rest kann aber noch ein paar Tage dauern, da ich vor habe, den Über-Über-Paginator zu bauen.

            mfg

            1. Mich interessiert eigentlich nur der theoretische Ansatz um zu sehen, ob der auch etwas für meine Bedürfnisse ist.

              Schon analysiert?

              Ja, habe ich - allerdings wird das für meine Zwecke vermutlich zu übertrieben sein - das Ding kann mittlerweile viel zu viel :) Featureritis halt.

              Noch nicht. Aber ein Backlink macht sich doch immer gut.

              Sollte das Ding mal in meiner Seite (wenn die jemals ansatzweise fertig wird) landen gerne - im Quelltext selbstverständlich. Darum hatte ich nach eine Lizenz gefragt.

              1. hi,

                Ja, habe ich - allerdings wird das für meine Zwecke vermutlich zu übertrieben sein - das Ding kann mittlerweile viel zu viel :) Featureritis halt.

                In der Klasse habe ich es jetzt vereinfacht; ein Parameter ist Pflicht (Datenmenge), der rest ist über ein array Optional konfigurierbar. Ohne Kommentare prächtige 160 Zeilen schwer, nicht schön, aber Selten :)

                Beta-Release sollte die Tage soweit sein.

                mfg

                1. In der Klasse habe ich es jetzt vereinfacht; ein Parameter ist Pflicht (Datenmenge), der rest ist über ein array Optional konfigurierbar. Ohne Kommentare prächtige 160 Zeilen schwer, nicht schön, aber Selten :)

                  Ich hab' mit inzwischen mein eigenes Casino gebaut :)

                  88 Zeilen - basiert relativ lose auf deinem Code (sprich, die Idee dahinter - der Code hat nicht viele Gemeinsamkeiten), ist aber auf das (für meine Zwecke) wesentliche reduziert. Man muss aber auch sagen, dass Funktionen wie etwa das Translation-Handling oder die Linkerzeugung (bzw. das durchschleifen bestehender Parameter) in externe (bestehende) Funktionen ausgelagert wurde.

                  1. hi,

                    Ich hab' mit inzwischen mein eigenes Casino gebaut :)

                    Dann zeig doch mal her ;)

                    Man muss aber auch sagen, dass Funktionen wie etwa das Translation-Handling oder die Linkerzeugung (bzw. das durchschleifen bestehender Parameter) in externe (bestehende) Funktionen ausgelagert wurde.

                    Ich züchte nur „Eierlegendewollmilchscripte“; eigentlich sind diese Funktionen Separat, sollte ich vllt. auch Sinnvoll trennen.

                    mfg

                    1. Dann zeig doch mal her ;)

                      Ich kann dir bei interessen einen Link mailen, öffentlich posten "geht net" :)

                      1. Dann zeig doch mal her ;)

                        Ich kann dir bei interessen einen Link mailen, öffentlich posten "geht net" :)

                        schade, neugierig währe ich auch

                      2. hi,

                        Ich kann dir bei interessen einen Link mailen, öffentlich posten "geht net" :)

                        Wir warten :)

                        Zur Not kannst du meine für diesen Zweck angelegte (4 min. Frische) Seite, die ich zusätzlich gegen Bots geschützt habe, nutzen.
                        Dann kann auch der Pryos reinschauen.
                        http://dj-tut.de/  -> krimskrams

                        mfg

                        1. Wir warten :)

                          An die Adresse in deinem Impressum? :)

                            1. Ja, passt.

                              done

                              1. done

                                magst mir auch? derzeit hab ich serverprobleme deshalb muss ich auf das deutsche GMX zurückgreifen, name: okama

                                1. magst mir auch? derzeit hab ich serverprobleme deshalb muss ich auf das deutsche GMX zurückgreifen, name: okama

                                  done

      2. Hello,

        http://dj-tut.de/z_test/a-d/c-n/

        Ich habe alle Beispiele auf dieses umgeleitet.

        Was sagt ihr zu meinem Weiterblättern-Menu? Noch irgendwas, dass verbessert gehört, oder kann ich es so lassen?

        Sieh ok aus -

        Nee!

        Die Bedienelemente müssen am selben Platz bleiben und dürfen nicht springen.
        Ob jetzt aber Punkte oder ein leerer Platzhalter oder eine Zahl angezeigt werden, ist ziemlich egal, solange es sich nicht um regelmäßig benutzte Bedienelemente handelt...

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

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

          Die Bedienelemente müssen am selben Platz bleiben und dürfen nicht springen.
          Ob jetzt aber Punkte oder ein leerer Platzhalter oder eine Zahl angezeigt werden, ist ziemlich egal, solange es sich nicht um regelmäßig benutzte Bedienelemente handelt...

          In der func.php ziemlich weit unten aus

          $_defList = pagination_template_builder(  
          'list',(($rate>3)?$first.$ellip.$aback:'').$list.(($rate>3)?$forth.$hellip.$last:''));  
          /*  
            $rate ist die Gesamt-Seitenanzahl  
            $ellip ist das Auslassungszeichen Links und $hellip Rechts  
          */  
          $_defList = pagination_template_builder(  
          'list',(($rate>3)?$first.$aback.$ellip:'').$list.(($rate>3)?$hellip.$forth.$last:''));  
          
          

          machen.

          Sieht wirklich besser aus, Danke Tom, so lasse ich es.

          mfg

          1. Hello,

            Sieht wirklich besser aus, Danke Tom, so lasse ich es.

            Das gefällt mir jetzt auch gut. Will ich glatt haben mit lebenslanger Lizenz zur Verbreitung, -änderung, -wendung, -vielfältigung usw. :-))

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

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

              Das gefällt mir jetzt auch gut. Will ich glatt haben mit lebenslanger Lizenz zur Verbreitung, -änderung, -wendung, -vielfältigung usw. :-))

              Ach komm, du schreibst doch in 'ner Stunde was besseres :)

              Das ZIP-Archiv ist verlinkt, bedien dich.
              In ein Paar Tage gibt's das Beta-Release als Klasse, da freue ich mich schon richtig drauf, wenn's Fertig ist ;))

              mfg

              1. Hello,

                Das ZIP-Archiv ist verlinkt, bedien dich.
                In ein Paar Tage gibt's das Beta-Release als Klasse, da freue ich mich schon richtig drauf, wenn's Fertig ist ;))

                Und schwupps hast Du wieder einen riesigen Schritt nach vorne geschafft.

                Du weißt ja, dass ich OOP in PHP nicht immer für sinnvoll halte, aber an einem solchen praktischen Beispiel lernt man dann doch, wie sie funktionieren würde :-)

                Und da hier auch wahlweise Flatfiles, Filesysteme (Directories), Datenbanken usw. angesprochen werden könnten, ist OOP hier schon ganz nett einzusetzen mit dem vollen Programm. Stichwort Adaptor Pattern.

                Liebe Grüße aus dem schönen Oberharz

                Tom vom Berg

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

                  Und schwupps hast Du wieder einen riesigen Schritt nach vorne geschafft.

                  Und dieses mal sogar einer, über den ich mich richtig freue. Ich habe seid Ewigkeiten versucht, diese Klassen-Geschichte zu lernen/ verstehen.

                  Das war das Perfekte Geburtstagsgeschenk von Pryos.org, ohne, dass er es wusste :)
                  Gestern 30 geworden, und noch vor dem Jubiläum OOP verstanden; wie Geil ist das denn? ;)))

                  mfg

  8. hi,

    so, ich hab das Script erstmals auf die Menschheit los gelassen ;)))

    http://nispet-club.de/?site=galerie;switch_galerie=haluk-08-03

    Die Implementierung ging so, wie ich es mir vorgestellt hatte; Script einbinden, anzahl der Dateien übergeben und wenn benötigt, Parameter für die URL.

    Übrigens, Tom, dass Script arbeitet mit deinem damals geschriebenen Galerie-Script :)

    Ein Paar Ideen, das Script zu erweitern kamen auch dazu.

    Und, was sagt ihr? (nicht zu den Feinheiten der Seite, da herrscht noch etwas Chaos -- nur der Paginator)

    mfg