Taxonomie Counter
am 02.11.2010 - 13:01 Uhr in
Hallo,
ich weise meinen Inhaltstyp verschiedenen Taxonomie-Vokabularen zu, z.B. einem Kleidungsstück die Farbe, Größe und das Material. Ich möchte nun in einem Block alle Vokabulare und Begriffe auflisten, mit der Anzahl der verknüpften Nodes.
Also quasi so:
Farben:
Weiss (123)
Schwarz (54)
Rot (23)
Größen:
XXL (10)
XL (25)
L (50)
M (90)
Die Taxonomie-Begriffe dienen als kombinierbare Filter in meiner View. Wenn ich jetzt z.B. Größe XL auswähle, dann sollen auch nur noch die Farben angezeigt werden, die in Größe XL verfügbar sind, mit der korrekt aktualisierten Anzahl Nodes in Klammern.
Mir geht es lediglich um eine effiziente Methode, mit möglichst wenigen SQL Queries die "COUNT(*)" pro Begriff zu ermitteln. Hat jemand einen Tipp?
Update:
Ich habe jetzt folgenden SQL Befehl gestrickt, der im Ausgangszustand das macht, was ich will. Allerdings weiss ich noch nicht, wie ich jetzt die Filter kombiniere, also z.B. nur die Farben anzeige, die es für eine gewählte Größe gibt. Der Filter darf nicht auf ein Vokabular angewandt werden, in dem bereits ein Begriff gewählt wurde (damit man noch wechseln kann) Also Begriffe innerhalb eines Vokabulars mit OR verknüpfen und die Vokabulare untereinander mit AND:
SELECT
vc.vid, vc.name, td.tid AS tid, th.parent, td.name, COUNT( nid ) AS count
FROM term_data AS td
LEFT JOIN term_hierarchy AS th
ON
(td.tid = th.tid)
LEFT JOIN term_node AS tn
ON
(td.tid = tn.tid)
LEFT JOIN vocabulary as vc
ON
(td.vid = vc.vid)
GROUP BY td.tid
ORDER BY vc.weight, vc.vid, td.weight ASC, td.tid
VG,
Benny
- Anmelden oder Registrieren um Kommentare zu schreiben
"Tagadelic" als Vorbild?
am 02.11.2010 - 20:16 Uhr
Vielleicht kannst du dir hier was abgucken: http://drupalmodules.com/module/tagadelic
(Dort lohnt auch immer ein Blick auf die "Related Modules".)
Gruß
Frank
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren. Danke!