Kategorien in Zikula - weit mehr als nur Themen

in  Basics , ,

Kategorien in Zikula - weit mehr als nur Themen

Der Zikula Core enthält eine zentrale Verwaltung für Kategorien, mit denen man vielfältige Lösungen umsetzen kann. Die häufigste Verwendung von Kategorien ist sicherlich eine thematische Zuordnung von Inhalten. So lassen sich beispielsweise Newsartikel unterschiedlichen Themengebieten zuordnen. Dieser Artikel ist etwa in der Kategorie “Basics”. Im Folgenden wird ein Überblick darüber gegeben, was sich darüber hinaus noch alles mit Kategorien machen lässt.

Zunächst einmal bietet das Kategoriensystem einige Funktionen, die allgemein nützlich sind.

  • Kategorien werden in einem großen Baum verwaltet. So lassen sie sich nach beliebigen Kriterien unterteilen und strukturieren.
  • Im Gegensatz zu einer fest definierten Dropdown-Liste sind Kategorien einfach durch den Seitenbetreiber erweiterbar. Es lassen sich jederzeit zusätzliche Kategorien anlegen, die dann bei allen Modulen, die die entsprechenden Kategorien verwenden, automatisch mit auftauchen und ausgewählt werden können.
  • Kategorien sind übersetzbar: Name und Beschreibung können direkt beim Bearbeiten einer Kategorie in mehreren Sprachen hinterlegt werden.
  • Eine Kategorie kann Attribute haben: das sind dynamische Eigenschaften, die sich zusätzlich zu den Stammdaten angeben lassen. So könnte man jedem Themengebiet eine Farbe zuordnen oder den Namen einer zuständigen Person oder sonst irgendwelche weiteren Informationen.

Die mächtigste Funktion jedoch, mit der sich die genannten Vorteile erst wirklich entfalten, sind “Category Registries”. Hierbei handelt es sich um Einstiegspunkte, mit denen festgelegt wird, an welcher Stelle im Kategorienbaum ein Modul Kategorien für eine bestimmte Entität nutzen möchte.

Mehrere Module können die gleichen Unterbäume verwenden oder auch verschiedene. So könnten Inhaltsseiten und Newsartikel entweder die selben Themengebiete nutzen (Politik, Wirtschaft, Sport, usw.) oder aber es können komplett unterschiedliche Kategorien für die beiden Bereiche eingesetzt werden. Jedes Modul kann dabei definieren, ob lediglich eine oder mehrere der Kategorien aus dem Teilbaum erlaubt ist.

Falls mehrere Module die gleichen Kategorien benutzen, ist es möglich, relevante Inhalte zu verknüpfen. Man könnte unter einem Artikel passende Downloads oder Videos einblenden. Oder man könnte in einem Webshop zu der aktuellen Produktgruppe vorhandene Informationen aus einer Knowledge Base darstellen.

Der Seitenbetreiber kann die Einstiegspunkte der Registries frei einstellen. Und vor allem lassen sich auch zusätzliche Registries definieren. Dabei kann eine Entität auch mehrere Registries gleichzeitig nutzen und so mehrere Kategorienfelder bekommen. Falls also die Auswahl eines Themas für einen Newsartikel nicht ausreicht, sondern zusätzlich noch die Auswahl einer Abteilung möglich sein soll, so kann dies über einen zweiten Einstiegspunkt realisiert werden, der auf einen Teilbaum verweist, unter dem sich Kategorien für die unterschiedlichen Abteilungen befinden.

Das bedeutet, dass man beliebig viele Dropdown-Elemente für eine bestimmte Entität haben kann, die ihre Inhalte aus den Kategorien beziehen. Und alle diese Inhalte sind dynamisch erweiterbar, übersetzbar, können mit Attributen versehen und auch in anderen Modulen wiederverwendet werden.

Schließlich ist es auch möglich, Inhalte basierend auf Zugriffsrechten auf die Kategorien zu filtern, sofern dies durch das entsprechende Modul unterstützt wird. Hierbei gibt es zwei Varianten: entweder es werden die Inhalte zugelassen, bei denen Zugriffsrechte auf alle Kategorien aller Registries besteht, oder auch die Inhalte, für die mindestens eine Berechtigung gegeben ist.

Kategorien in Zikula - weit mehr als nur Themen
Kategorien in Zikula - weit mehr als nur Themen

Weitere Beiträge in Kategorie Basics

Einfaches JS-Management mit ImportMaps in neuer Symfony AssetMapper-Komponente
- Im Symfony-Ökosystem werden Frontend-Komponenten seit einiger Zeit zunehmend über UX-Komponenten verarbeitet. Auch wenn hierdurch einige Anbelange vereinfacht werden, ist doch oftmals der Aufbau einer …
Symfony UX im Kontext von ModuleStudio
- Stimulus und Symfony UX Ein JavaScript-Ökosystem für Symfony wurde bereits Ende 2020 gestartet. Vereinfacht ausgedrückt wurde Symfony Flex erweitert, um auch JavaScript-Anteile in einem Bundle leicht …
Das Buch zu Symfony ist in einer neuen Version erschienen
- Bereits im Jahr 2020 haben wir das Buch “Symfony: The Fast Track” hier vorgestellt. Nun ist eine neue Auflage bereitgestellt worden, welche auf den Stand für Symfony 5.4 und 6.0 gebracht …
Symfony und API Platform starten offiziellen Docker-Support
- Seit knapp einem Monat steht eine umfangreiche Unterstützung zur Docker-basierten Arbeit mit Symfony bereit. Hierbei gibt es Neuerungen in mehreren zentralen Werkzeugen, die ineinander greifen und …
Optische Varianzen mit SCSS-Maps umsetzen
- In vielen Weblayouts ist es notwendig, unterschiedliche Ausprägungen einer bestimmten kosmetischen “Stellschraube” zu realisieren. So können etwa einzelne Akzentfarben je nach Unterseite, …