Ankündigung

Einklappen
Keine Ankündigung bisher.

Rangefilter soll auch genau einen Wert filtern können

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Rangefilter soll auch genau einen Wert filtern können

    Hallo,

    ich habe auf einer Seite unter anderem auch Rangefilter mit dem Filterbereich "Dazwischen" im Einsatz. Nun ist gewünscht, dass im Rangefilter auch die Einstellung genau eines Wertes möglich sein soll, dass also min-Regler und max-Regler den selben Wert haben. Im Auslieferungszustand wird der max-Regler jedoch beim Absenden auf den Maximalwert des Rangefilters zurückgesetzt.

    Die Ursache liegt in der Filter.php im Ordner system/modules/pct_customelements_plugin_customcatalog/PCT/CustomElements/Core. Hier werden in Zeile 215 mehrere gleiche Werte mit dem Aufruf array_unique() auf einen reduziert. Infolge dessen geht der max-Wert verloren und der max-Regler wird auf den Standardwert zurückgesetzt. Ohne array_unique() funktioniert die Geschichte wie gewünscht.

    Nun ist die Filter.php zu modifizieren nicht unbedingt die beste Idee. Gibt es eine Möglichkeit das gewünschte Verhalten updatesicher hinzubekommen?

  • #2
    Hallo,
    für die Filterung nach einem Wert darf die "Dazwischen" Funktion nicht aktiv sein. Der Standard-Modus gibt einen Slider mit exakter Werteingabe aus. Min- und Max. stecken die Grenzen ab. Darüber hinaus kann auch ein normaler Textfilter genutzt werden und in dessen Template baut man auf ein input type numeric oder range um. Die Ausgabe des Filters kann in dessen Template geändert werden.
    Zuletzt geändert von Tim; 24.11.2021, 08:09.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Hallo Tim,

      wenn ich richtig verstehe, zielen beide Lösungsvorschläge auf die Filterung genau eines Wertes mit Hilfe eines Schiebeschalters hin. Gewünscht ist aber schon ein Rangefilter mit min- und max-Regler. Nur soll es damit eben auch möglich sein nach genau einem Wert zu filtern, wenn min- und max-Regler auf den selben Wert gesetzt werden.

      Wäre es möglich über den getValueCallback die Verarbeitung der Daten für den Rangefilter zu beeinflussen? Ich kenne mich mit der Systematik leider noch nicht so gut aus.

      Grüße,
      Sebastian

      Kommentar


      • #4
        Ich habe es hier mal aufgebaut: http://dev.premium-contao-themes.com...reis=120%2C120

        Ich würde hier nichts am System per Hook oder so ändern. Das geht mit Bordmitteln prima.

        Ich habe anstelle des Wertebereich-Filtertyps auf normale Textsuche gestellt und das Preis-Feld aktiviert. Ausgabe-Template weiterhin das customcatalog_filter_range als Basis. Siehe Anhang

        Anbei das Template für den hier angewendeten Textfilter. Ich würde allerdings auf einen Werte-Bereich-Slider, der gleiche Werte erlaubt verzichten. Es ist für den Anwender nicht mehr intuitiv wie das Eingabegerät genutzt wird, wenn beide Handler erstmal aufeinander liegen.
        Angehängte Dateien
        Zuletzt geändert von Tim; 24.11.2021, 12:11.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Hier, so ist es super lösbar, nur mit Template und mit zwei Filtern.
          1. Wertebereich-Filter ( Template: customcatalog_filter_range_textfilter)
          2. Text-Filter (dient nur der Filterung, verstecktes Feld) (Kern-Template: customcatalog_filter_hidden), Url-Parameter: price_fixed

          Der Wertebereich-Filter wird ganz normal für die Eingabe genutzt und übergibt wenn beide Werte identisch sind den Wert an den Text-Filter "price_fixed". Fertig.
          ---
          Aufbau:

          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: screenshot_261.png
Ansichten: 131
Größe: 20,3 KB
ID: 23858
          http://www.premium-contao-themes.com

          Kommentar


          • #6
            ps. Ich sehe die Möglichkeit gleicher Werte im "Dazwischen"-Modus in einem kommenden Update vor. Ich ergänze auch einen Modus "Exakter Wert"
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              Vielen Dank Tim für die ausführliche Hilfestellung. Den Gedanken mit den versteckten Filtern hatte ich auch, aber ich dachte, es wäre aus Performance-Gründen besser, wenn der Rangefilter alleine arbeiten kann. Jeder zusätzliche Filter kostet ein bisschen Ladezeit. Aber das kommt ja im nächsten Update. Vielen Dank schon mal dafür :-)

              Kommentar


              • #8
                Zitat von fan Beitrag anzeigen
                Vielen Dank Tim für die ausführliche Hilfestellung. Den Gedanken mit den versteckten Filtern hatte ich auch, aber ich dachte, es wäre aus Performance-Gründen besser, wenn der Rangefilter alleine arbeiten kann. Jeder zusätzliche Filter kostet ein bisschen Ladezeit. Aber das kommt ja im nächsten Update. Vielen Dank schon mal dafür :-)
                Das sind sehr performante Filter. Da würdest du keinen Unterschied spüren bzw. sogar messen. Imperformant sind eigentlich nur Tags-Filter.
                http://www.premium-contao-themes.com

                Kommentar


                • #9
                  Aber das kommt ja im nächsten Update. Vielen Dank schon mal dafür :-)
                  https://forum.premium-contao-themes....3928#post23928
                  http://www.premium-contao-themes.com

                  Kommentar

                  Lädt...
                  X