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; den Hilfe-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“)Übersetzter Checkbox-Status (filter_checkbox):
prüft ein übersetzten Attributwert auf 1; (ehem. „Übersetzter Veröffentlichungsstatus“)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 AttributwertsWert 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 DatumEinzelauswahl (filter_select):
einzelne Auswahl eines Wertes z.B. einer Select-ListeMehrfachauswahl (filter_tags):
mehrfache Auswahl von Werten z.B. einer Select-ListeTextfilter (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 AnfangsbuchstabenLevenshtein-gestützte Suche (attribute_levenshtein):
erzeugt einen Volltext-Index von ausgewählten Attributen inkl. Ähnlichkeitssuche und AutovervollständigungFilter-Parent (filter_parent):
ermöglicht Items einer vorhandenen Kind-Tabellen nach Eigenschaften der Elterntabelle zu filtern
siehe Filter-Parent für MetaModelsLoupe (filter_loupe) - noch in Arbeit… -:
erzeugt einen Volltext-Index von ausgewählten Attributen in einer eigenen SQLite-DB - basiert auf Loupe
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_item
wird das Schlüsselwort nicht mit in die URL eingebaut, sondern nur der Wert ausgegeben -auto_item
kann nur für eine Filterregel verwendet werden. Die Schlüsselwörterlanguage
unditems
sind von Contao reserviert - ab MM 2.3 werden diese automatisch umgeschrieben und ein__
angehangen, sofern als Spaltenname angelegt.Template: Auswahl des Widget-Templates für die FE-Anzeige; neben dem Template
mm_filteritem_default
bringen 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.