Gibt es eine fertige Blätterfunktion in Joomla

  • Hallo zusammen,

    kurze Frage: Ich brauche für eine große Menge von Daten, die ich aus einer Tabelle ausgebe, eine Blätterfunktion, damit ich nicht tausende Daten hoch und runterscrollen muss. Grundsätzlich wäre ich zwar in der Lage, selbst etwas zu bauen, aber ich habe mich gefragt, ob es nicht innerhalb Joomla eine fertige Blätterfunktion gibt, die ich einfach verwenden könnte.

    Weiß einer zufällig etwas?

    Besten Dank im Voraus!

  • Am besten wirst du noch etwas deutlicher und detaillierter, vielleicht ist ja das hier was für dich: https://www.tabulizer.com/index.php/demo…ation-filtering

    Danke für deine Antwort.

    Also die Blätter-Funktion in deinem Beispiel ist schon ziemlich cool. Aber das ist ja eine Lösung mit Tabellen, die zu befüllen sind.

    Im Grunde habe ich bereits mittels einer Abfrage -> Foreach ganz viele kleine Tabellen erstellt. Pro Datensatz aus der DB wird eine Tabelle mit je 3 Spalten und 3 Zeilen erstellt. Wenn nun aber in der DB tausende Datensätze sind, bedeutet das auch, dass ich tausende Datensätze untereinander ausgegeben bekomme und mir einen Wolf scrollen kann. Und deshalb benötige ich eine Blätter-Funktion, wie Sie in deinem Beispiel vorhanden ist. Ich hatte gehofft, dass es vielleicht etwas fertiges gibt, dass ich einfach bei mir einbauen kann. Aber ich befürchte inzwischen, dass ich mir etwas selbst bauen muss.

  • Bei einer Lösung mit Tabulizer hast du das schon dabei und musst es nicht selbst entwickeln, lediglich deine Tabellen-Daten als CSV einlesen.

    Der Algorithmus zur Anzeige einer begrenzten Datensatzanzahl ist sehr einfach, man braucht das Limit der anzuzeigenden Datensätze und den Start-Wert. Start-Wert * Limit ist der erste auszulesende Datensatz aus der Datenbank.

  • Danke für eure Tips.

    Also der Tabulizer scheidet meiner Meinung nach aus, weil die Daten, die ich mit Foreach ausgebe, in mehreren Tabellen ausgegeben werden. Heißt, jeder Datendatz ist eine eigene Tabelle. Beim Tabulizer hätte ich dann aber die Pagination für jede einzelne Tabelle. Ich brauche aber eine Pagination ganz unten unter den Tabellen. Z. B. Pro Seite 10 kleine Tabellen und dann die für die nächsten 10 Tabellen muss dann weitergeblättert werden. Das ist, wenn ich mich nicht täusche, mit dem Tabulizer nicht möglich.

    Der Hinweis zu jQuery war allerdings gut. Der Link zum Beispiel hat mir zwar nicht so zugesagt, aber ich habe hier ein andere jQuery-Plugin gefunden. Nun muss ich aber dazu sagen, dass ich kaum Kenntnisse in Javascript habe und auch mit jQuery noch nicht wirkllich viel gemacht habe. Vielleicht kann mir daher jemand ein wenig helfen, wie ich das Plugin einrichten muss.

    Hier erstmal der Link:

    https://pagination.js.org/

    Das Beispiel Format "Go" Input würde ich gerne nutzen. Ich gehe also davon aus, dass ich die beiden Plugins per ftp auf den Server laden muss. Allerdings habe ich keinen Plan, wie ich dann die Verbindung zwischen meiner PHP-Abfrage bzw. Ausgabe und diesem JS Schnipsel hergestellt bekomme.

    Kann mir hier jemand helfen?

  • Wenn du das mit jQuery machen willst würde ich dir dann doch datatables empfehlen, das ist weniger rudimentär. Die Tabellen lassen sich damit flexibel filtern und durchsuchen, für Datenanalyse hervorragend. Meine Einbindung in eine Seite kann ich hier aufführen, einbinden müsstest du es aber selbst.

  • Meine Ausgabe sieht bei mir quasi so aus:

    Jeder Datensatz erstellt eine solche Tabelle. Und ich möchte erreichen, dass z. B. 10 Tabellen angezeigt, darunter dann eine Pagination und dann werden die nächsten 10 angezeigt. Die Tabellen müssen klar voneinander getrennt sein.

    Das wäre datatables oder Tabulizer möglich?

  • Hmm, dann hätte ich noch ein paar Fragen, bevor ich entscheiden kann, ob das reicht.

    1. Kann ich auch beliebig Grouping per Column (also sowohl colspan als auch rowspan) machen?

    2. Kann man die Überschriften komplett ausblenden?

    3. Kann ich einzelne Zeilen per CSS stylen? z. B. abgerundete Ecken?

    4. Kann in eine Zelle auch ein Image eingefügt werden?

  • In der Tabelle darf sich kein Murks befinden, also gewissermaßen - mal abgesehen von CSS-JS-Hacking-Lösungen - nein.

    Dann müsste es eine spezielle Programmierung mit Javascript/jQuery sein, die ja auf eine der vorgeschlagenen Lösungen zurückgreifen kann.

  • Also ich hab mich nun nochmal ein wenig damit beschäftigt und würde eigentlich am liebsten gerne

    https://pagination.js.org/

    als jQuery Plugin in meine Site einbinden. Hab ich aber noch nie gemacht. Daher die Frage, ob mir mal jemand sagen kann, wie man grundsätzlich ein solches Plugin einbindet. Wenn ich es richtig verstehe, muss ich dir beiden Dateien downloaden und per ftp wahrscheinlich in das Verzeichnis meiner Template Site hochladen. Mit Jqueryeasy kann ich das ganze wahrscheinlich auch einbinden (so meine Vermutung).

    ABER, was mir Verständnismäßig vor allem fehlt: Wie packe ich meine Daten aus der PHP Abfrage in den JS Schnipsel? Wie gesagt, ich habe mit JS 0,0 Erfahrungen. Daher wäre es toll, wenn mir jemand einmal erklären könnte, wie sowas abläuft. Man lernt ja nie aus. ;)

    Im Voraus besten Dank!

  • Das Plugin darf erst nach der Einbindung von jQuery geladen und gestartet werden. Das wird mit jqueryeasy schon mal funktioneren.

    Der Rest nicht, weil das Plugin seine Daten für das Paging als Javascript-Struktur (Array, Object) erwartet und sie nicht aus dem gelieferten HTML-Code (Listen, Tabellen, Div-Strukturen etc.) erzeugt, siehe https://pagination.js.org/docs/index.html

    Daher dachte ich, dass ich meine Daten aus einer PHP Abfrage z. B. in ein Array packen kann und das Javascript dann damit füttern kann. Aber da ich wie gesagt mit jQuery und Javascript noch nicht viel zu schaffen hatte, ist mir halt nicht so ganz klar, ob das möglich ist und falls ja, wie ich mein PHP-Array für das Javascript lesbar machen kann. Kann ich im Javascript z. B. mit PHP Variablen arbeiten und falls ja, wie muss das aussehen?

  • Entweder müssen die Daten als PHP-Array mit json_encode in ein Javascript-Objekt überführt werden, dieses am besten mit addScriptOptions von Joomla ins Javascript überführt werden, um dort mit Joomla.getOptions an das Plugin übergeben zu werden.

    Die zweite Möglichkeit ist, die Daten vorab selbst nach JSON zu konvertieren, auf dem Server als Datei abzulegen und diese dann mit dem Plugin per Ajax abzurufen.

    Das Plugin scheint die Ausgabe nur als HTML-Liste vorzusehen, da wurde unnötig gespart.

  • Ahhhhhh,

    Ich glaube jetzt ist der Groschen gefallen. Dein Stichwort json_encode hat mir schon sehr geholfen, aber auch dein Tipp mit thatsoftwaredude ist interessant.

    Ich muss mich jetzt mal ein wenig austoben und rumprobieren, daher schließe ich hier auch noch nicht, falls sich für mich noch Fragen ergeben. Aber ich hoffe, dass ich mit den Infos von dir schon zurecht komme. Danke dir soweit erstmal vielmals!

  • So, nun habe ich gestern mal ein wenig rumgedoktert und die Pagination grundsätzlich schon mal aktiviert bekommen, was soviel heißt, dass mir die Pagination angezeigt wird, wie sie soll.

    Allerdings werden mir derzeit noch keine Datensätze angezeigt. In der Console habe ich einen Fehler drin:

    Daraus entnehme ich, dass dem JS-Schnipsel noch etwas hinzugefügt werden muss. Ich weiß aber nicht, was genau.

    So sieht der Schnipsel aktuell aus:

    Meine Vermutung ist, dass ich unter var html noch etwas ablegen muss (steht ja auch so nett "template method of yourself".

    Mir ist aber nicht klar, wie und was ich da einbauen muss.

    $ergebnisse_abfrage ist ein php-array mit den Datensätzen aus meiner foreach abfrage. Ich habe mit jedem Schleifenlauf den Datensatz zum Array hinzugefügt.

    Ein Datensatz soll eigentlich wie folgt ausgegeben werden:

    Kann mir hier nochmal jemand helfen?