commonsbooking
commonsbooking copied to clipboard
Filtergruppen in CB-Map umbauen
Dokumentation (WIP): https://commonsbooking.org/wp-admin/post.php?post=2256&action=edit Was
Ersetzt die alten Filtergruppen Einstellungen für die Karte:
Mit neuen Filtergruppen Einstellungen, die zuerst in den Vorlagen mithilfe eines repeater Fields (group bei CMB2) erstellt werden können und dann anschließend in den jeweiligen Karten Einstellungen nur eingefügt werden müssen.
- Erstellung der Vorlagen im Backend
- Auswählen der vorkonfigurierten Filtergruppen für die jeweilige Karte in den Karteneinstellungen
Was dann anschließend auf der Karte so aussieht:
Das vorher existierende Funktion für Custom Markup für die individuellen Kategorien fällt weg.
Warum Es existierte keine Dokumentation zu den alten Filtergruppen und ich habe die persönlich nie zum Laufen bekommen. Darüber hinaus hat das neue CB-Frontend die Möglichkeit zwischen exklusiven (wie z.B. elektrisch / nicht-elektrisch) und nicht-exklusiven Filtern (z.B. Regenverdeck / Kindersitz) zu entscheiden, das wird hiermit einstellbar.
Wie
- Das Autoloading musste angepasst werden, damit erst die Taxonomien geladen werden und dann die OptionsArray.php . Ansonsten ist es nicht möglich bei Initialisierung der Optionen auf die Taxonomien zuzugreifen.
- Das Feld mit den Filtergruppen habe ich aus drei Gründen ausgelagert:
- Die Backend Einstellungen für die Karte nutzen kein CMB2, es hätte einiges an zusätzlichem manuell erstelltem JS Code gebraucht um die wiederholbaren Gruppen so zuverlässig wie in CMB2 zu gestalten.
- Bei mehreren Karten sparen sich die Nutzenden damit die Arbeit die Filtergruppen mehrfach anzulegen
- Wir können so später einfacher neue Funktionen für die Filtergruppen einbauen wie z.B. die Filterung nach bestimmten Postmeta werten
Was kann noch getan werden
- [x] Eine gute Möglichkeit finden, wie trotzdem custom markup wie z.B. FA Icons zu den Kategorien hinzugefügt werden können. (Siehe Bild:
)
- Lösung Taxonomie-Metafeld
- Icon Metafeld den Taxonomien hinzufügen, z.B. mithilfe von Font Awesome https://github.com/serkanalgur/cmb2-field-faiconselect (am komfortabelsten). Nachteil: Relativ viel Implementierung für eine winzige Funktion.
- Lösung Karteneinstellung - Feld in den Karteneinstellungen, in dem für jede Kategorie ein alternativer Namen mit beschränkter HTML Funktionalität angegeben werden kann. Die Kategorien müssen dann immer noch Filtergruppen zugewiesen werden aber wenn verfügbar wird das Custom Markup aus den Karteneinstellungen geladen. Nachteil: Für jede Karte müsste das Markup manuell konfiguriert werden 3. Lösung Template Einstellungen - Global über den "Vorlagen" Tab das Markup der Taxonomien konfigurieren. Nachteil: Wieder eine weitere Einstellung die eigentlich nur die Karte betrifft tief in den Einstellungen verborgen.
EDIT: Option 1 ohne Font-Awesome Plugin (hab es nicht zum laufen bekommen)
-
[x] Herausfinden, ob das zuweisen von einer Kategorie zu mehreren Filtergruppen Probleme bereiten kann (ist mit CMB2 Einstellung möglich). Das Mehrfachzuweisen zu unterbinden wäre wahrscheinlich mit viel JS Code verbunden.
-
- Es passiert nix sonderlich wildes, ergibt nur nicht so viel Sinn.
-
[x] Rückwärskompatibel mit alten Filtergruppen machen -> nicht automatisch andere Filtergruppen kaputt machen
closes #1208