Geschrieben von: Sven
Veröffentlicht am: 08.12.2017 12:16 Uhr
Bewertung:
In einigen Fällen macht es Sinn, dem Nutzer die Wahl zu lassen, wie viele Einträge in einer Liste pro Seite angezeigt werden sollen. In dieser Anleitung erfahren Sie, wie Sie dem Nutzer mit Seblod eine Auswahlliste in einem Suchformular zur Verfügung stellen können, mit der er die Anzahl der Einträge pro Seite individuell verändern kann.
Anzeige

Warum ist das sinnvoll?

Natürlich könnten Sie auch einfach immer alle Einträge auf einer Seite anzeigen, jedoch wird das ab einer bestimmten Menge, je nach Leistung des Hosting Tarifs, die Ladezeit sehr negativ beeinflussen. Auf diese Weise können Sie als Standard eine relativ niedrige Anzahl an Zeilen (z.B. 20 oder 30 Zeilen) pro Seite anzeigen und dem Nutzer trotzdem ermöglichen, mehr oder sogar alle Einträge auf einer einzigen Seite anzeigen zu lassen. Sobald tausende Einträge zum Anzeigen vorhanden sind, sollte man darüber nachdenken die Anzeige auch im Maximum zu begrenzen, um eventuelle Performanceprobleme zu umgehen.

Auswahlfeld im Suchformular für das Frontend erstellen

Als Erstes erstellen Sie nun ein simples Auswahlfeld in Ihrem List & Search Type direkt in der Suchform. Nennen Sie dieses „limit“, besonders wichtig ist, dass dieses Feld exakt den Namen „limit“ trägt, da dieser Name bei der Nutzung als Variable hinter der URL der Suchliste auftaucht. Dieser Wert ist fix vorgegeben und der zugeordnete Wert bestimmt später die Anzahl der angezeigten Einträge pro Seite.

In dem großen grün eingerahmten Bereich können Sie die von Ihnen gewünschten Auswahlmöglichkeiten für die Seitenanzahl festlegen, es reicht hier einfach jeweils die Zahlen einzutragen. Wenn Sie eine „0“ eintragen, werden alle Einträge angezeigt, dies ist für den Nutzer so allerdings nicht sofort ersichtlich, darum ist es sinnvoll an dieser Stelle „0=Alle“ oder z. B. „Alle“ einzutragen da hier auch Wörter wie eine 0 gewertet werden. In diesen Fällen wird dem Nutzer lediglich das Wort „Alle“ in der Liste angezeigt.

Auf dem Screenshot wurden nun die Werte: 20, 30, 50, 100 und 0=Alle genutzt, da diese Werte wohl häufig sinnvoll sind. In diesem Beispiel werden die Werte aber auf unrealistische 2, 5 und 0=Alle geändert, damit die Funktion vorgeführt werden kann.

Sie können das Feld in einem beliebigen App Ordner speichern, da hier keine Speicherung in der Datenbank erfolgt und diese somit auch bei geschlossenem Schloss nicht auf einen bestimmten Form & Content Type verlinkt wird. Sie können das Feld später also in jedes Suchformular ziehen.

Auswahlfeld - Limit - erstellen

Nachdem Sie das Feld gespeichert haben, können Sie die Auswahlliste bereits im Frontend sehen. Die Liste hat so allerdings noch keinerlei weitere Funktion. Wollen Sie später keinen Text wie in diesem Fall „Anzahl wählen“ in der Auswahlliste stehen haben, bearbeiten Sie Ihr Auswahlfeld und leeren Sie das Textfeld hinter „Select Label“.

Frontend - Limit Auswahlfeld

Limit URL-Variable nutzbar machen

Damit die später an die URL angehängte Variable „limit“ funktioniert, muss im List & Search Type in der Suchform die Option „Configuration“ gewählt werden. Stellen Sie dort bei Pagination den Wert „Use Native“ ein. Auf diese Weise nutzt Seblod hier die Einstellungen und Funktionen von Joomla.

Pagination - Use Native

Die Auswahlbox konfigurieren

Damit Sie für diese kleine Auswahlbox nicht noch einen Submitbutton verbauen müssen, stellen Sie in Ihrem List & Search Type unter „Variation“ das Feld auf „Form – Filter“. Wenn Sie nach dem Speichern nun in das Frontend wechseln und Ihre Suchliste aufrufen, können Sie bereits die Zeilenanzahl durch Ihre Auswahl verändern. Nach Ihrer Auswahl wird also auch bereits entsprechend Ihrer Auswahl z. B. die Variable „?limit=5“ an die URL gehängt. Die Seite wird durch den Filter bei jeder Änderung neu geladen.

Form - Filter wählen bei Auswahlfeld

Um einen Standardwert in der Auswahlliste im Frontend vorzugeben, klicken Sie im Backend in Ihrem List & Search Type auf der rechten Seite auf den Button mit der [2] und wählen Sie bei „Live Value“ den gewünschten Standardwert aus. In der Auswahl stehen die von Ihnen zuvor in diesem Feld angelegten Optionen. In diesem Fall steht bis jetzt zwar der gewünschte Wert in der Auswahlliste, dieser hat aber beim ersten laden der Seite keine Funktion.

Live Value vergeben bei Auswahlfeld

Um beim ersten laden der Website im Frontend den richtigen Wert zu erhalten, gibt es mindestens zwei Möglichkeiten, dies umzusetzen.

Richtige Anzahl Einträge beim ersten laden der Seite anzeigen – Möglichkeit 1

Da zuvor in der Konfiguration des Such Formulars die Option „Use Native“ bei Pagination gewählt wurde, kann man den Standardwert der Zeilen pro Seite über die globale Joomla Konfiguration festlegen (Standard Listenlänge). Dieser Wert beeinflusst aber auch alle anderen Listen von Joomla, also auch beispielsweise die Beitragsliste im Backend etc. die dann ebenfalls diesen Standardwert aufweisen und nach jedem Login manuell angepasst werden müssen.

Joomla Systemkonfiguration - Standard Listenlänge

Wenn man nun die Seite frisch lädt, steht wie gewünscht eine „5“ in der Auswahlliste und es werden auch 5 der 6 Einträge (hier 4 mit und einer ohne Logo) angezeigt. Die URL bleibt beim ersten Aufruf, wie sie ist, es gibt hier keine Variablen in der Adresszeile. Unter der Liste erscheint nun auch die Seitenauswahl, in der Sie auf Seite 2 etc. wechseln können.

Erster Aufruf mit Standardlimit

Wie man sehen kann, wird z. B. bei der Auswahl „Alle“, alles angezeigt und in der URL befindet sich nun auch die Variable „limit“.

Alle Zeilen auf der ersten Seite anzeigen

Wenn Sie nun auf einen anderen Menüpunkt im Frontend wechseln und wieder zurück in Ihre Suchliste gehen, wird Ihre vorherige Einstellung beibehalten, jedoch ändert sich die Zahl in der Auswahlliste wieder auf die Voreinstellung (hier „5“). Die Zahl in der Auswahlliste stimmt also ggf. nicht immer mit dem Ergebnis überein.

Richtige Anzahl Einträge beim ersten laden der Seite anzeigen – Möglichkeit 2: Variable direkt verwenden

Um der URL der Suchliste direkt eine Variable mitzugeben, öffnen Sie Ihren Joomla Menüeintrag, klicken Sie auf den Reiter „Erweitert“ und tragen Sie anschließend die URL-Variable „limit=gewünschter vorhandener Wert“ ein.

URL Variable von Beginn an mitgeben

Nachdem Sie die Änderung gespeichert haben, finden Sie im Frontend in Ihrer Suchliste direkt beim ersten Aufruf eine Variable in der Adresszeile.

URL Variable beim ersten Aufruf im Frontend vorhanden

Die Liste wird nun direkt auf die gewünschte Anzahl (hier zwei) Einträge gefiltert. Wenn Sie nun die Auswahl ändern, einen anderen Menüpunkt Ihrer Website besuchen und wieder auf Ihre Suchliste zurückkehren, wird Ihnen wieder das von Ihnen voreingestellte Ergebnis präsentiert, auch die Zahl in der Auswahlbox passt so immer zum Ergebnis.

Ergebnisse werden nun bei jedem neuen Aufruf wunschgemäß eingeschränkt

Diese Variante kann allerdings auch Probleme machen, da Suchmaschinen wie Google gerne mehrere Varianten von URLs durchprobieren. Dabei wird sehr wahrscheinlich auch die URL ohne Variablen indexiert, hier sind die Einträge aber nur bis zur Standard Listenlänge von Joomla limitiert. Somit würde ggf. der Ladezeit Vorteil entfallen und mehr URLs mit gleichem Inhalt indexiert, eventuell müssen Sie hier mit kanonischen URLs oder Umleitungen nachhelfen.

Hat Ihnen meine Anleitung weitergeholfen?

😀
Dann würde ich mich sehr über ein freiwilliges Dankeschön via PayPal freuen!



Vielen Dank, für Ihre Unterstützung.

Kommentar schreiben:

Noch 5000 Zeichen übrig.
Hinweise zur Verarbeitung Ihrer Angaben und Widerspruchsrechte finden Sie in unserer Datenschutzerklärung.