Ankündigung

Einklappen
Keine Ankündigung bisher.

Abhängige Filter filtern sich ungünstigerweise selbst mit

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Abhängige Filter filtern sich ungünstigerweise selbst mit

    Hallo,

    ich habe abhängige Filter eingerichtet, bei dem Filter Eins eine Tagauswahl per customcatalog_filter_select.html5 ist. Der zweite Filter ist ein davon abhängiges Textfeld als 'Auswahl, einfach (Select/Radio)' ebenfalls per customcatalog_filter_select.html5 eingebunden.

    Phase 1: Wähle ich nun bei Filter Eins einen Wert aus, wird Filter Zwei korrekt vorgefiltert - es werden nur noch die Werte angezeigt, die auch ein Ergebnis liefern würden.
    Phase 2: Wähle ich nun aber bei Filter Zwei einen Wert aus, werden zwar die Ergebnisse in der Liste korrekt angezeigt. Allerdings wird der Filter selbst ebenfalls gefiltert. Die anderen Optionen aus Phase 1 sind nicht mehr verfügbar. Ich muss den Filter zurücksetzen.

    Ich denke, dass dies öfters kein gewünschtes Verhalten ist. Ich habe mir einen kleinen Patch für genau diesen Fall geschrieben. Da ich keine weiteren Filter nutze, kann ich Wechselwirkungen natürlich nicht ausschließen. Die Implementierung soll nur einen Denkanstoß geben, für diejenigen, die ggf. vor einem ähnlichem Problem stehen. Das ganze ist nicht updatesicher!

    in system/modules/pct_customelements_plugin_customcatalog/PCT/CustomElements/Core/Filter.php in ab Zeile 1191 direkt nach

    PHP-Code:
            $arrQuery $objQueryBuilder::combine($arrQuery,$arrOptions); 

    folgenden Code einsetzen.

    PHP-Code:
            // substitude multiple conditions for same column
            
    $foundCols = array();
            foreach(
    $arrQuery['columns'] as $i => $opt) {
                if(
    $opt['operation'] !== "FIND_IN_SET") {
                    continue;
                }
                if(!isset(
    $foundCols[$opt['column']])) {
                    
    $foundCols[$opt['column']] = $i;
                    continue;
                }
                
    $originalIndex $foundCols[$opt['column']];

                
    $arrQuery['columns'][$originalIndex]['value'] = $opt['value'];

                unset(
    $arrQuery['columns'][$i]);
            } 
    Zuletzt geändert von danielkoch; 14.12.2016, 15:27.

  • #2
    Klingt alles richtig Abhängigkeiten sind additiv.

    ---
    Nutze die gegeben Hooks z.B. den getQueryOptions Hook oder den prepareFilter Hook siehe Hooks.php. Dann bleibt deine Anpassung update-sicher.
    ---

    Wir machen dann mal im Vorlagen-Pool eine Hooks Sammlung. Ich hab auch ein paar mit Funktionen, die für bestimmte Momente / Lösungswege gedacht sind - aber nicht allgemein. Gerade bei den Filtern kann es (fast ) immer zwei Interpretationen geben.
    Zuletzt geändert von Tim; 15.12.2016, 09:16.
    http://www.premium-contao-themes.com

    Kommentar

    Lädt...
    X