Wie lässt sich die Anzahl der Beiträge herausfinden, die mit einem bestimmten Schlagworten verknüpft sind?
Modulsuche
Eine Google-Suche nach "drupal" + "views" + "term" + "count" + "nodes" führt recht dirket zu dem Modul "Term Node Count". Ein Blick in die Issue-Queue lässt mich nach einer anderen Lösung weiter suchen. Das Modul scheint außerdem nicht besonder aktuell gehalten zu sein: das letzte Update ist aus dem März 2009.
Der nächste Eintrag in der Google-Suche "How do I create a node count for each each category term in Drupal?" beschreibt exakt das Thema und führt zu einer Anleitung mit dem Modul "Views Group By". Dies passt mir sehr gut, da ich mich schon lange einmal mit diesem Modul beschäftigen wollte aber nie Gelegenheit dazu hatte. Außerdem ist alles, was sich mit "Views" erledigen lässt, sehr dicht an Drupal und verspricht Nachhaltigkeit.
Die Installation des Moduls ist simpel. Es bedarf keiner weiteren Einstellungen und stellt innerhalb von Views die Option "SQL Aggregation" zur Verfügung.
Einrichtung des View
Zur Einrichtung sind folgende Schritte erforderlich:
- Einrichtung eines Node-Views mit folgenden Feldern:
- Taxonomie: Begriff
- Node: Beitrags-ID (Beschriftung = "Anzahl")
- SQL Aggregation: Group By Fields
Wichtig: das SQL-Aggregations-Feld muss sich an der letzten Stelle befinden - Sofern gewünscht, Filter auf Inhaltstypen oder Vokabulare einrichten.
- Die SQL Aggregations-Einstellungen vornehmen:
- Gruppieren nach ("Fields to Group On"): Begriff
- SQL Aggregation Function: Anzahl ("count")
- Fields to Aggregate: Node-ID
Verlinkung zur Taxonomie-Seite
Selbstverständlich sollen die Begriffe dann auch gleich mit ihrer Taxonomie-Seite verlinkt sein. Die "normale" Einstellung "Dieses Feld mit seiner Taxonomie-Begriffseite verlinken" liefert eine Überraschung: es tut sich nichts. Dies ist offenbar ein bekannter Fehler des Moduls. Die Option "Output this field as a link" funktioniert allerdingt: ein Test zeigt, dass sich der Begriff z.B. mit www.example.com umschreiben lässt. Also kommt es jetzt darauf an, den Link auf die Form "taxonomy/term/[tid]" umzuschreiben.
Hier hilft Kars-Ts Entdeckung "Mit Views und CCK ein verlinktes Feld erstellen" weiter: Um im Feld "Begriff" auf die Term-ID zugreifen zu können, muss die Term-ID in einer vorigen Spalte mit selektiert werden. Das Feld muss mit aggregiert werden, damit die Zählung weiterhin funktioniert. In den SQL-Aggregations-Einstellungen muss die Term-ID unter "Fields to Group On" mit angegeben werden. Damit die IDs nicht mit auf der Seite ausgegeben werden, muss für das Feld noch die Option "von der Anzeige ausschließen" aktiviert werden.
Von hinten durch die Brust ins Auge - aber was soll's. Hauptsache, es funktioniert.
Die fertige Ansicht befindet sich hier.
Ein Schönheitsfehler besteht noch darin, dass Terms nicht angezeigt werden, wenn es keine Beiträge zu ihnen gibt.
Vielleicht hat jemand eine Idee?

























