Wer kenn sie nicht, die netten kleinen Kreise in einer Ecke eines Links, die uns direkt anzeigen, dass es neue Inhalte, neue Nachrichten oder sonstiges Interessantes nach den Klicken zu entdecken gibt.
Bislang konnte man dies zwar schon mit einigen Verrenkungen erreichen, man erstellt einen oder mehrere Views, die einem eine Zahl oder sonstiges ausspucken, man gibt diese Zahl aus und themed dann entsprechend.
Man kann auch über die Templates gehen oder gleich ein kleines Modul schreiben.
Es gibt aber zwei Module, die einem einem sehr viel Arbeit abnehmen können: Link Badges und Menu Badges. Ersteres stellt die generelle API zur Verfügung, um solche Badges an Links anzuhängen, letzteres ermöglicht es dies an jede Art von Menüpunkt anzuhängen und ebenso die Erstellung neuer Badges mittels Views.
Diese Lösung ist sehr flexibel, weil man jeglichen Inhalt, den man über einen View bekommt in einen Badge packen kann.
In unserem Beispiel haben wir einen Inhaltstyp "Termin" und wir wollen an einen Menüpunkt "Kommende Termine" einfach einen Badge anhängen, der uns die Anzahl der kommenden Termine visualisiert.
Als erstes brauchen wir dafür einen View, der uns die entsprechenden Werte liefert. Hierfür wählen wir einfach "Inhalte" vom Typ "Termin" anzeigen. Wir brauchen weder eine Page noch einen Block.
In unserem View wollen wir einfach alle kommenden Termine anzeigen. Wir haben also als Display "Menu Badge" gewählt. Wir benötigen nun ein eindeutiges Feld, damit wir auch eine valide Anzahl anzeigen können.
Am sinnvollsten ist hierfür die NID, oder "Beitrags-ID" wie es so schön heißt. Um einen Zähler zu haben, muss man dafür die "Aggregation" in der Views aktivieren:
Danach fügen wir dann das benötigte Feld hinzu und wählen als Aggregation "Count DISTINCT" aus:
Da wir nur kommende Termine wollen, brauchen wir natürlich noch einen Filter. Darauf gehe ich hier nicht genauer ein, das ist von Anwendungsfall zu Anwendungsfall unterschiedlich. Im Preview sehen wir nun eine einzelne Zahl - genau das was wir wollen.
Nach dem Speichern des View können wir nun einen Menüpunkt anlegen, der zum Beispiel auf eine Kalenderansicht oder ähnliches verlinkt und unseren Badge hier verwenden:
Danach haben wir das gewünschte Verhalten, einen Menüpunkt mit einem Badge.
Die Möglichkeit, diese Badges durch Views füllen zu können ermöglicht natürlich sehr viele Variationen und spart viel Arbeit.