3.5.7. Datenaggregation in Views.
Das Views-Modul ermöglicht nicht nur die Ausgabe von Daten aus den Drupal-Tabellen, sondern kann auch diese Zeilen berechnen und die Ergebnisse gruppieren. Diese Funktion wird Aggregation genannt.
Standardmäßig verfügt Drupal über ein Wörterbuch der Taxonomie-Tags. Erstellen wir einen Block mit den beliebtesten Tags und zeigen am Ende jedes Tags an, wie viele Materialien auf der Website mit diesem Tag versehen sind. Wir erhalten eine Liste wie diese:
Drupal 9 (5)
Drupal 8 (3)
PHP (2)
Zum Starten müssen Sie Artikel erstellen und ihnen Tags zuweisen.
/node/add/article
Nachdem Sie eine kleine Anzahl von Artikeln erstellt haben, können Sie mit der Arbeit beginnen.
/admin/structure/views/add
Fügen Sie einen Views-Block hinzu, wählen Sie Taxonomie und Tags:
Als Nächstes müssen Sie die Aggregation in Views aktivieren:
Jetzt haben wir zusätzliche Einstellungen für die Aggregation bei den Feldern:
Fügen Sie jetzt die RELATIONSHIPS Content mit dem Begriff hinzu:
Wählen Sie „Require this relationship“, um nur den Inhalt zu zählen, bei dem das Tag ausgewählt ist:
Nun benötigen wir zwei Felder des Term Taxonomy (Name), das erste verstecken wir:
Für das zweite Feld setzen wir den Aggregationstyp auf „Count“:
Wenn Sie jetzt die Vorschau der Ansicht aktualisieren, sehen Sie bereits die Anzahl der Verwendungen jedes Term-Taxonomie-Begriffs:
Jetzt bleibt nur noch, vor jede Zahl den Tag-Namen zu setzen. Dazu verwenden wir das zweite Feld, in dem wir das erste versteckte Feld und in Klammern den Wert des zweiten Feldes anzeigen. Dazu nutzen wir die Einstellung „Overwrite Results“:
In der Auswahlliste „REPLACEMENT PATTERNS“ können wir sehen, welche Felder wir beim Überschreiben dieses Feldes verwenden können.
{{name}} ({{name_1}})
Wir schreiben das zweite Feld in runde Klammern, damit unsere Zahl in Klammern steht. Die geschweiften Klammern stammen aus Twig, womit wir uns später beschäftigen werden. Für jetzt reicht es, wenn wir wissen, dass beim Verwenden dieser Werte in {{}} diese durch die Werte der benötigten Felder ersetzt werden.
Als Ergebnis sollten Sie diese Felder haben:
Das sollte so aussehen: