Links für die Umschaltung der Sortierung einer MM-Liste
Bemerkung
Das Feature steht ab MM 2.2 zur Verfügung.
In den Einstellungen der Listenausgabe (CE/FE-Modul) gibt es die Option, dass die Standardsortierung überschrieben werden kann („Überschreiben der Sortierung erlauben“). Aktiviert man die Option, können verschiedene Parameter gesetzt werden:
Slug/Get-Key zum Überschreiben von
orderBy
als Key für das zu sortierende AttributSlug/Get-Key zum Überschreiben von
orderDir
als Key für die SortierrichtungURL-Fragment wenn mit dem Link zu einer bestimmten Anker-Stelle auf der Seite gesprungen werden soll
Die gewünschten Links für die individuelle Sortierung können im MM-Listen-Template oder auch an anderer Stelle eingebracht werden.
Bemerkung
Das Feature steht ab MM 2.3 zur Verfügung.
Um die Verwendung im MM-Listen-Template zu vereinfachen ist es möglich, für jedes Attribut verschiedene Links für die Umsortierung zu generieren. Es gibt einen „Toggle-Link“ der jeweils in die andere Sortierrichtung umschaltet sowie jeweils für Ab- und Aufsteigend einen Link - entsprechende CSS-Klassen und ein Aktiv-Parameter wird auch übergeben. Man kann sich den kompletten Link inkl. CSS-Klassen direkt auch generieren lassen.
Folgendes Snippet als Beispiel für die Aufrufe des Attributs „name“:
1<?php
2//..
3<?php if ($sortingLinkToggle = $this->generateSortingLink('name', 'toggle')): ?>
4<a href="<?= $sortingLinkToggle['href'] ?>" class="<?= $sortingLinkToggle['class'] ?>" data-escargot-ignore rel="nofollow"><?= $sortingLinkToggle['label'] ?> (toggle)</a><br>
5<?php endif; ?>
6<?php if ($sortingLinkAsc = $this->generateSortingLink('name', 'asc')): ?>
7<a href="<?= $sortingLinkAsc['href'] ?>" class="<?= $sortingLinkToggle['class'] ?>" data-escargot-ignore rel="nofollow"><?= $sortingLinkAsc['label'] ?> (asc)</a><br>
8<?php endif; ?>
9<?php if ($sortingLinkDesc = $this->generateSortingLink('name', 'desc')): ?>
10<a href="<?= $sortingLinkDesc['href'] ?>" class="<?= $sortingLinkToggle['class'] ?>" data-escargot-ignore rel="nofollow"><?= $sortingLinkDesc['label'] ?> (desc)</a><br>
11<?php endif; ?>
12<?= $this->renderSortingLink('name', 'toggle') ?> (toggle)<br>
13<?= $this->renderSortingLink('name', 'asc') ?> (asc)<br>
14<?= $this->renderSortingLink('name', 'desc') ?> (desc)<br>
15// Liste...
16<?php foreach ($this->data as $arrItem): ?>
Bitte beachten, dass bei dem Link mit den Einstellungen der Standardsortierung die Slug/Get-Parameter entfernt werden -
lediglich das URL-Fragment bleibt bestehen. Das Attribut data-escargot-ignore
verhindert die Aufnahme des Links in den
Contao-Crawler für die Indexierung der Suche.
Der Aufruf von generateSortingLink
mit den Parametern „Spaltenname“ des Attributs und Sortierungstyp liefert die
folgenden Werte zurück:
„attribute“: Referenz des Attributs
„name“: Name des Attributs
„href“: Link zum Sortieren
„direction“: Aktuelle Sortierrichtung (
asc
||desc
)„active“:
true
wenn es das Attribut der Sortierung ist, ansonstenfalse
„class“: CSS-Klassen
„label“: Label
Das renderSortingLink
generiert einen kompletten Link - der Text kann über die Anpassung der
Sprachendatei individuell gestaltet werden.