Filtersets
Bemerkung
optionale Filtersets für Backend und Frontend erstellen; Filterset erstellen und in Komponenten oder Inhaltselementen/Modulen aktivieren
Einleitung
Mit der Komponente „Filterset“ steht ein umfangreiches Werkzeug zur Verfügung, um die Ansicht und Auswahl der Datensätze (Items) eines MetaModel zu beeinflussen. Die Filtersets reduzieren die Gesamtmenge der Items, d.h. nach einer Filterung steht eine Teilmenge von diesen für die Ausgabe bereit. Es gilt zu beachten, dass jedes Filterset immer nur eine Liste mit IDs (der Items) ausgibt bzw. eine Filterregel eine Liste mit IDs an eine nächste Filterregel weiter reicht - eine Änderung der Itemwerte ist z.B. über eine SQL-Query nicht möglich.
Die Erstellung eines Filterset erfolgt in einer zweistufigen Hierarchie, in dem zunächst ein bezeichnetes Filterset „als Container“ erstellt wird, der wiederum ein oder mehrere Filterregeln beinhalten kann. Sind mehrere Filterregeln auf dieser Ebene vorhanden, sind diese automatisch per UND verknüpft. Für eine ODER-Verknüpfung muss eine Filterregel ODER erstellt werden, welche wiederum weitere Filterregeln aufnehmen kann. Mit den Möglichkeiten der Verschachtelung können nahezu alle UND/ODER-Angaben eines nativen SQL-Query nachgebildet werden.
Einige Filterregeln haben die auswählbare Option, nur zugeordnete bzw. nur verbleibende Filtereinträge anzuzeigen, um eine dynamische Anzeige des Filtersets zu gewährleisten.
Die Filtersets können sowohl im Backend als auch im Frontend zum Einsatz kommen.
Die Filterregeln können zum Teil dynamisch z.B. über GET/POST-Parameter beeinflusst werden, wodurch sich sehr umfangreiche Filterungen ergeben.
Typen von Filterregeln
Vordefiniertes Itemset (core):
Eingabe einer Liste mit IDs, nach denen gefiltert werden sollEinfache Abfrage (core):
erzeugt eine Filterung nach einem Attribut; für die Filterung kann ein URL-Parameter angegeben werden; mit Option „Statischer Parameter“ kann in den Inhaltselementen/FE-Modulen aus einer Select-Liste ein Wert zum Filtern aktiviert werdenEigenes SQL (core):
eigene SQL-Bedingungen zur Filterung; denHilfe-Assistenten (Popup) beachten
siehe auch im „Kochbuch“ Eigenes SQLUND-Bedingung (AND) (core):
Container für weitere Filterregeln mit UND-VerknüpfungODER-Bedingung (OR) (core):
Container für weitere Filterregeln mit ODER-Verknüpfung; Option, dass nur erste Regel ausgeführt wird (Checkbox „Nach erstem Treffer beenden“)Checkbox-Status (filter_checkbox):
prüft ein Attributwert auf 1; (ehem. „Veröffentlichungsstatus“); eigenes Template mm_filteritem_checkbox(.html5)Übersetzter Checkbox-Status (filter_checkbox):
prüft ein übersetzten Attributwert auf 1; (ehem. „Übersetzter Veröffentlichungsstatus“); eigenes Template mm_filteritem_checkbox(.html5)Ja / Nein (filter_checkbox):
Ja/Nein-Auswahl z.B. als Radio-ButtonsWert von/bis für ein Feld (filter_fromto):
von/bis-Auswahl für Werte eines AttributwertsWert von/bis für ein Datumsfeld (filter_fromto):
von/bis-Auswahl für Datum eines Attributwerts; eigenes Template mm_filteritem_datepicker(.html5) - Datum auf YYYY-MM-DD einstellenWert von/bis für zwei Felder (filter_range):
zwei Felder mit WertenWert von/bis für zwei Datumsfelder (filter_range):
zwei Felder mit Werten für Datum; eigenes Template mm_filteritem_datepicker(.html5) - Datum auf YYYY-MM-DD einstellenEinzelauswahl (filter_select):
einzelne Auswahl eines Wertes z. B. einer Select-Liste; Alternativ die Templates mm_filteritem_radiobutton(.html5) oder mm_filteritem_linklist(.html5)Mehrfachauswahl (filter_tags):
mehrfache Auswahl von Werten z. B. einer Checkbox-Liste; Alternativ das Template mm_filteritem_linklist(.html5)Textfilter (filter_text):
filtert nach einer TexteingabeUmkreissuche (filter_perimetersearch):
filtert nach einer Adresse/Geokoordinaten und einem Umkreis bezogen auf Lat/Long-Werte in den Datensätzen
siehe UmkreissucheRegister (filter_register):
filtert nach Anfangsbuchstaben; generiert eine Liste mit allen oder vorhandenen Anfangsbuchstaben; eigenes Template mm_filteritem_register(.html5)Levenshtein-gestützte Suche (attribute_levenshtein):
erzeugt einen Volltext-Index von ausgewählten Attributen inkl. Ähnlichkeitssuche und Autovervollständigung; eigenes Template mm_filteritem_levenshtein(.html5)Filter-by-related (filter_by_related) [ab MM 2.4]:
ermöglicht Items mit Eigenschaften aus einem verknüpften (Relation) MetaModel zu filtern; Relationen können per Kindtabelle oder Einzelauswahl (Select) aufgebaut sein
siehe Filter-by-related für MetaModelsLoupe (filter_loupe) [ab MM 2.4]:
erzeugt einen Volltext-Index von ausgewählten Attributen in einer eigenen SQLite-DB - basiert auf Loupe; mehr dazu bei der Filterregel LoupeExpression-Regel (filter_expression) [ab MM 2.4]:
damit kann die Ausführung weiterer Filterregeln an Bedingungen geknüpft werden. Es wird ein Knoten in der Regelliste erzeugt, der ein oder maximal zwei weitere Filterregeln als Kindknoten aufnehmen kann.; mehr dazu bei der Filterregel Expression
Einstellungsparameter
Die unterschiedlichen Filterregeln können über spezifische Einstellungsmöglichkeiten an die individuellen Vorgaben angepasst werden. Bei den meisten Filterregeln sind folgende Parameter einstellbar:
URL-Parameter: hiermit wird das Schlüsselwort (Key) für die URL definiert; ohne Angabe ist dies der Spaltenname des Attributes. Mit dem Schlüsselwort
auto_itemwird das Schlüsselwort nicht mit in die URL eingebaut, sondern nur der Wert ausgegeben -auto_itemkann nur für eine Filterregel verwendet werden. Die Schlüsselwörterlanguageunditemssind von Contao reserviert - ab MM 2.3 werden diese automatisch umgeschrieben und ein__angehangen, sofern als Spaltenname angelegt.URL-Typ für den Parameter: (ab MM 2.4) hier kann eingestellt werden, ob der Filterparameter als Slug- oderrst_cookbook_tips_seo_filter-url GET-Parameter an die URL übergeben wird - mehr dazu bei den SEO-Tipps
Template: Auswahl des Widget-Templates für die FE-Anzeige; neben dem Template
mm_filteritem_defaultbringen verschiedene Filterregeln ihre eigenen Templates mit wie z. B. Checkbox, Levenshtein, Register usw. Die Templates können auf dem üblichen Weg von Contao angepasst oder individualisiert werden. Das umschließende Template (Wrapper) wird im CE-/FE-Modul Filter ausgewählt.CSS-ID/Klasse: setzt eine ID bzw. CSS-Klasse in das auszugebende Widget; damit ist eine individuelle Steuerung der Ansicht/Formatierung möglich.
Ablauf
Ein neues Filterset wird über „
Neu“ geöffnet und es muss ein Name vergeben werden.
Über das Icon „
Filterregeln“ gelangt man zur Eingabeliste der
Filterregel, wo wiederum über „
Neu“ eine neue Filterregel eingerichtet
werden kann. Über die „Klemmmappen-Icons“ kann während der Erstellung einer Filterregel
die Hierarchie beeinflusst werden und die Filterregel z.B. innerhalb einer ODER-Regel
eingefügt werden.
Details aller Filterregeln
- Vordefiniertes Itemset
- Einfache Abfrage
- Eigenes SQL
- UND-Bedingung (AND)
- ODER-Bedingung (OR)
- Expression-Regel
- Checkbox-Status
- Übersetzter Checkbox-Status
- Ja / Nein
- Wert von/bis für ein Feld
- Wert von/bis für ein Datumsfeld
- Wert von/bis für zwei Felder
- Wert von/bis für zwei Datumsfelder
- Einzelauswahl
- Mehrfachauswahl
- Textfilter
- Umkreissuche
- Register
- Levenshtein-gestützte Suche
- Filter-by-related
- Loupe
- Parent-Filter