commonsbooking icon indicating copy to clipboard operation
commonsbooking copied to clipboard

Filtergruppen in CB-Map umbauen

Open hansmorb opened this issue 2 years ago • 1 comments

Dokumentation (WIP): https://commonsbooking.org/wp-admin/post.php?post=2256&action=edit Was

Ersetzt die alten Filtergruppen Einstellungen für die Karte: image

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.

image image

  • Erstellung der Vorlagen im Backend

image

  • Auswählen der vorkonfigurierten Filtergruppen für die jeweilige Karte in den Karteneinstellungen

Was dann anschließend auf der Karte so aussieht:

image

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:
    1. 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.
    2. Bei mehreren Karten sparen sich die Nutzenden damit die Arbeit die Filtergruppen mehrfach anzulegen
    3. 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:

image )

  1. 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.
  2. 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

hansmorb avatar Nov 11 '23 23:11 hansmorb

Codecov Report

Attention: 55 lines in your changes are missing coverage. Please review.

Comparison is base (2476bd3) 43.14% compared to head (9587843) 43.04%.

Files Patch % Lines
src/Map/MapData.php 0.00% 24 Missing :warning:
src/Plugin.php 5.26% 18 Missing :warning:
src/Map/MapAdmin.php 25.00% 12 Missing :warning:
src/Repository/BookablePost.php 87.50% 1 Missing :warning:
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #1409      +/-   ##
============================================
- Coverage     43.14%   43.04%   -0.10%     
- Complexity     2384     2388       +4     
============================================
  Files            91       91              
  Lines          9462     9492      +30     
============================================
+ Hits           4082     4086       +4     
- Misses         5380     5406      +26     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Nov 11 '23 23:11 codecov[bot]