pju, danke für deine Lösung. Ich habe sie an meine Bedürfnisse angepasst. Habe nicht mit Varianten gearbeitet, sonder einfach hierarchisch mit manueller Sortierung. Leider "zerschießt" mir der Filter meine FE-Filterung. Es dürfte mit der Mehrfachauswahl zu tun haben (gelöst, siehe unten ------).
Meine Kategoriefilter sehen wie folgt aus (zwei oder-Verknüpfte "EigeneSQL"-Filtereinstellungen):
PHP-Code:
SELECT * FROM mm_productcategory
WHERE pid <> 0 AND pid IN (
SELECT item_id FROM tl_metamodel_translatedtext
WHERE att_id = 92 AND value IN ({{file::post_productcat.php}}))
92 ist der übersetzte Alias
PHP-Code:
SELECT id FROM {{table}} WHERE pid <> 0 AND pid IN (
SELECT pid FROM {{table}} WHERE pid IN (
SELECT value_id FROM tl_metamodel_tag_relation WHERE `att_id` = 93 AND `item_id`= SUBSTRING_INDEX({{param::get?name=id}},'::',-1)
)
)
93 ist die Hauptkategorie. Somit werden abhängig der gewählten Hauptkategorie alle zugehörigen Unterkategorien angezeigt. Das funktioniert wunderbar.
Allerdings kann ich im BE-Listing nicht mehr nach Unterkategorie filtern und im FE fehlt mir auch nicht.
Im FE habe ich je eine Seite mit einer MM-Liste vorsortiert nach einer Hauptkategorie. Hier sollte es eine Mehrfachauswahl auf die zugehörige Unterkategorie geben. Die verschwindet aber mit dem neuen Unterkategorie-Filter und es wird nicht gefiltert. Es wird noch nach anderen Sachen gefiltert, aber das Problem ist die Mehrfachauswahl der Unterkategorie. Stelle ich auf eine Einzelauswahl um, wird danach gefiltert.
Bei meinem vorherigen Filter, der einfach nur auf die Unterkategorie der einen Hauptkategorie einschränkte, weil es die einzige mit Unterkategorien war, funktioniert die Filterung sowohl im BE, als auch im FE:
PHP-Code:
SELECT * FROM mm_productcategory WHERE pid=1 or pid=9
--------------------------
OK gelöst. Gerade habe ich das oben geschrieben, kam mir die Lösung. Man muss meine letzte Filteranweisung auch noch als letzte in die Oder-Verknüpfung schreiben und die pid (=Hauptkategorien) angeben, die im BE-Listing und FE gefiltert werden soll. Oder alle Unterkategorien:
PHP-Code:
SELECT * FROM mm_productcategory WHERE pid<> 0
Der nächste Schritt ist auch den auto_item-Parameter im FE auszuwerten und nur die Unterkategorien der aktuellen Hauptkategorie zur Auswahl zu stellen.
Vielen Dank nochmals!
---------------------------
Nachtrag: Wenn man "nur verbleibende Tags" in der Mehrfachauswahl für die Unterkategorien des Produktfilter anhakt, braucht man den auto_item-Parameter nicht auswerten und es werden nur die zugehörigen Unterkategorien im Filter gezeigt.