Übersetzung des Quick Start Tutorials
Views ist meistens toll aber manchmal unzureichend für komplexere SQL Abfragen. Nicht alle SQL Statements können abgebildet werden mit einem Abfragen-Generator, selbst wenn er so anspruchsvoll ist wie Views 2.
Eine solche Sache war bisher die Bildung einer Zusammenfassung. Das ist eine Abfrage bei der Felder nach bestimmten Kriterien gruppiert werden sollen um dann eine Operation auszuführen. Z.B. Nodes gruppieren nach Terms und zählen, wie viele Nodes in einer Gruppe sind. Das ist eine Abfrage nach der Häufigkeit von Terms.
Reales Bsp: Liste der 10 häufigsten Terms für einen bestimmten NodeTyp und die Anzahl der Nodes für jeden Term.
Eine solche View zu erstellen war bisher nicht möglich ohne zusätzlichen Code. Jetzt schon. Es folgt eine Schritt für Schritt Anleitung, die sich auf andere Fälle übertragen lässt.
1. Erstelle eine View
2. Füge Felder hinzu:
(Anmerkung: Die Reihenfolge ist wichtig, damit es funktioniert...)
* Taxonomie: Begriff
* Node: Beitrags-ID (ändere die Bezeichnung in Anzahl)
* SQL Aggregation: Group By Fields
3. Setze einen Filter für den NodeTyp wenn nötig
(Anmerkung: Würde ich immer machen, damit die Zahlen nicht verfälscht werden...)
4. Einstellungen für "SQL Aggregation: Group By Fields":
* Fields to Group On = Taxonomie: Begriff
* SQL Aggregation Function = Anzahl
* Fields to Aggregate with the SQL function = Node: Beitrags-ID
* Field to Sort Resultset On (after SQL Function is applied) = Node: Beitrags-ID
* Sorting Direction: Absteigend
Die SQL Abfrage sieht dann so aus:
SELECT COUNT(node.nid) AS nid,
term_data.name AS term_data_name,
COUNT(node.nid) AS node_nid,
'chart_test:page_1' AS view_name
FROM buzz_node node
LEFT JOIN buzz_term_node term_node ON node.vid = term_node.vid
LEFT JOIN buzz_term_data term_data ON term_node.tid = term_data.tid
WHERE node.type in ('mention') GROUP BY term_data_name, view_name
ORDER BY node_nid DESC
was fast eine optimale Abfrage ist, jedenfalls im Rahmen eines DB übergreifenden Abfragen Generators.
Sofern in der Darstellung HTML Liste ausgewählt ist wird das Ergebnis so ähnlich aussehen:
Begriff: gaza
Anzahl: 272
Begriff: israel
Anzahl: 126
Begriff: news articles
Anzahl: 88
Begriff: new york times
Anzahl: 50
Begriff: hamas
Anzahl: 47
Begriff: humanitarian crisis
Anzahl: 44
Begriff: financial crisis
Anzahl: 43
das Aussehen kann dann mit den üblichen Themeing-Mitteln getuned werden.
Man kann auch eine grafische Ausgabe erstellen, wenn das Views Charts Modul installiert ist.
Pretty cool?
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 3 Tagen 17 Stunden
vor 3 Tagen 20 Stunden
vor 3 Tagen 20 Stunden
vor 3 Tagen 20 Stunden
vor 4 Tagen 17 Stunden
vor 4 Tagen 19 Stunden
vor 5 Tagen 16 Stunden
vor 6 Tagen 9 Stunden
vor 6 Tagen 10 Stunden
vor 6 Tagen 13 Stunden