Mehrfachfilterung scheitert

Hallo Alex, ich bin dabei den CM für die Contao Jahrbuch Seite einzurichten. Ich habe 4 Filter (Agentur, Ort, Contao Partner und Kategorie) erstellt - anhand des Immobilienbeispiels - und nur der erste Filter reagiert und zeigt mir nach Auswahl eines Wertes dann den gefilterten Wert an. Alle anderen 3 Filter bleiben ohne Reaktion; filtern also nichts, wenn man dort einen Wert auswählt. Es sollen alle Filter miteinander reagieren. Wenn Agentur X ausgewählt wird, soll in den anderen 3 Filtern auch die dem Datensatz zugeordneten Einträge angezeigt werden. Beispiel: Agentur --- Ort --- Contao Partner --- Kategorie Agenturname -> Frankfurt -> Premium-Partner -> Webdesign Ich habe das in einer 3.5.1 Installation und nun noch auf die 1.7.0 beta 3 aktualisiert. PHP 7.1 bei allinkl. Nachfolger Warnhinweis wird vermutlich mit dem Filterproblem nicht zusammenhängen? Unter Einstellungen bekomme ich - auch schon mit der Version 1.7.0 - im Abschnitt des CM einen Warnhinweis bei „Navigationsbereiche”: Warning: htmlspecialchars() expects parameter 1 to be string, array given in system/helper/functions.php on line 239 #0 [internal function]: __error(2, 'htmlspecialchar...', '/www/htdocs/v10...', 239, Array) #1 system/helper/functions.php(239): htmlspecialchars(Array, 2, 'utf-8', false) #2 system/modules/core/widgets/KeyValueWizard.php(178): specialchars(Array) #3 system/modules/core/library/Contao/Widget.php(684): Contao\KeyValueWizard->generate() #4 system/modules/core/templates/backend/be_widget.html5(3): Contao\Widget->generateWithError(true) #5 system/modules/core/library/Contao/BaseTemplate.php(88): include('/www/htdocs/v10...') #6 system/modules/core/library/Contao/Widget.php(630): Contao\BaseTemplate->parse() #7 system/modules/core/classes/DataContainer.php(557): Contao\Widget->parse() #8 system/modules/core/drivers/DC_File.php(253): Contao\DataContainer->row() #9 system/modules/core/classes/Backend.php(650): Contao\DC_File->edit() #10 system/modules/core/controllers/BackendMain.php(131): Contao\Backend->getBackendModule('settings') #11 contao(20): Contao\BackendMain->run() #12 {main} Warning: htmlspecialchars() expects parameter 1 to be string, array given in system/helper/functions.php on line 239 #0 [internal function]: __error(2, 'htmlspecialchar...', '/www/htdocs/xxx...', 239, Array) #1 system/helper/functions.php(239): htmlspecialchars(Array, 2, 'utf-8', false) #2 system/modules/core/widgets/KeyValueWizard.php(178): specialchars(Array) #3 system/modules/core/library/Contao/Widget.php(684): Contao\KeyValueWizard->generate() #4 system/modules/core/templates/backend/be_widget.html5(3): Contao\Widget->generateWithError(true) #5 system/modules/core/library/Contao/BaseTemplate.php(88): include('/www/htdocs/v10...') #6 system/modules/core/library/Contao/Widget.php(630): Contao\BaseTemplate->parse() #7 system/modules/core/classes/DataContainer.php(557): Contao\Widget->parse() #8 system/modules/core/drivers/DC_File.php(253): Contao\DataContainer->row() #9 system/modules/core/classes/Backend.php(650): Contao\DC_File->edit() #10 system/modules/core/controllers/BackendMain.php(131): Contao\Backend->getBackendModule('settings') #11 contao(20): Contao\BackendMain->run() #12 {main} Besten Dank für einen Hinweis, wie ich die Filter aktiv setzen kann. Beste Grüße Thomas

Antwort

Die Eingabefelder in der Auswahlliste bei dem Filtergenerator sollten mit dem pseudo-Inserttag { { name* } } miteinander verknüpft werden. Dieser pseudo-Inserttag funktioniert nur in Verbindung mit dem Filter und gibt immer den eingetragenen/ausgewählten Wert des Eingabefeldes aus dem Filterformular zurück.

*Mit den Eingabefeld attribute name="category" ersetzen. Zum Beispiel: { { category } }

Hier ein Beispiel Screenshot:

Diese Verknüpfung musst du für alle deine Eingabefelder (Agentur, Ort, Contao Partner und Kategorie) wiederholen. Weiter soll Datenbank (zugewiesen) als Quelle ausgewählt sein und die Tabelle sollte der Tabelle in der Listenansicht entsprechen.

Wegen dem Fehler: Versuche den Eintrag "$GLOBALS['TL_CONFIG']['catalogNavigationAreas']" aus deiner localconfig.php zu löschen…