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
folgenden Code einsetzen.
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]);
}
Kommentar