webEdition Kategorien
Das Content Management System webEdition bietet mit den webEdition Kategorien ein systemweites und somit sehr mächtiges Verschlagwortungs-Tool. Mit diesem Tool lassen sich Kategorien in Verzeichnissen hierarchisch (ähnlich einer Baumstruktur) anlegen und verwalten. Die erstellten Kategorien stehen anschließend im gesamten CMS für webEdition Dokumente, Binärdateien (PDFs, Grafiken, etc.) und webEdition Objekte zur Verfügung und können von Redakteuren frei verwendet werden.
Warum sollte ich webEdition Kategorien nutzen?
Für den Einsatz von webEdition Kategorien sprechen verschiedene Gründe. Zwei wesentliche sind:
- Sie dienen als Filter für die Darstellung von Inhalten, z.B. auf Newsseiten für bestimmte Themenlisten
- Sie dienen als Meta-Information für Inhalte, z.B. Produktkategorien in Online-Shops
Kategorien lassen sich in webEdition sehr gut als Filter für die Auflistung bzw. Ausgabe von Inhalten verwenden. Dazu nutzen wir den s.g. Listview-Tag. Über das Attribut categories wird die Ergebnisliste insoweit eingeschränkt, dass nur diejenigen Inhalte aufgelistet werden, welche die angegebene Kategorie besitzen. Werden mehrere Kategorien angegeben, steuert man über das Attribut catOr, ob die Inhalte nur eine oder alle der angegebenen Kategorien besitzen müssen.
<we:listview type="document" name="onlyBooks" categories="/Produkt/Book/" catOr="true">
<we:repeat>
<we:field type="text" name="Title"/>
</we:repeat>
</we:listview>
Nutzen wir webEdition Kategorien als Meta-Information, so lässt sich diese Information über das we:categore Tag wie folgt ausgeben:
<we:category doc="self" field="Title" />
webEdition Kategorien Content-Elementen zuordnen
Die Zuordnung von Kategorien erfolgt immer über den Reiter Eigenschaften des jeweiligen Content-Elements. Die Anzahl der auswählbaren Kategorien ist dabei nicht beschränkt.
webEdition Kategorien und Mehrsprachigkeit
Realisieren wir mit webEdition mehrsprachige Websites, stehen für die Übersetzung von Kategorien zwei Möglichkeiten zur Verfügung:
1. Jede Sprache erhält eine eigenständige Kategoriestruktur.
D.h. für jede Sprache wird zunächst ein Hauptverzeichnis, z.B. mit dem jeweiligen Sprachkürzel angelegt und darin enthalten sind alle verfügbaren Kategorien pro Sprache. Vorteil wäre, das für jeden Sprache nur die Kategorien erstellt werden, die wir benötigen. Nachteil: bei sehr umfangreichen Kategorien ist der Pflegeaufwand der Übersetzungen sehr hoch.
2. Ein Kategoriesystem für alle Sprachen
Im Gegensatz zur ersten Variante, erstellen wir für alle Sprachen nur eine Kategoriestruktur. Dabei empfiehlt es sich für die interne Bezeichnung die englische Sprache zu nutzen. Um bei der Ausgabe von Kategorien auf der Website (Frontend) eine sprachabhängige Übersetzung zu erreichen, nutzen wir das Glossar-Modul.
Im Anschluss daran, öffnen wir über Module > Glossar das Glossar-Modul und erstellen eine neue Text-Eersetzung. Im Feld Text-Ersetzung tragen wir unseren Platzhalter ###weCatTitleNonfiction### und im Feld Ersatztext den Wert Sachliteratur ein. Das machen wir nun für jede Sprachversion.
Vorteil ist, dass bei weiteren Sprachen keine Template-Programmierung, sondern nur ein zusätzlicher Eintrag im Glossar-Modul notwendig ist. Abhängig von den Berechtigungen kann die Pflege durch den Redakteur erfolgen.
Template-Programmierung unter Verwendung von webEdition Kategorien
Bei der Template-Programmierung unter Berücksichtigung von webEdition Kategorien, sollte man einige Dinge berücksichtigen, die einem das (Entwickler-)Leben leichter machen. Das bereits o.g. Category-Tag dient dazu webEdition Kategorien auszugeben oder in einer Variable zur Weiterverwendung umzuleiten.
In den meisten Fällen besitzt webEdition Dokumente bzw. Objekte mehrere Kategorien. Daher sollte man bei der Ausgabe von Kategorien immer das Attribut onlyindir verwenden. Dieses Attribut trägt dafür Sorge, dass nur Kategorien unterhalb dieses Verzeichnisses berücksichtigt werden. Ergänzt der Redakteur später weitere Kategorien anderer Verzeichnisse, hat das keine Auswirkung auf die Ausgabe.
<we:category doc="self" field="Title" onlyindir="/GoogleMerchant" />
Sind webEdition Kategorien in verschiedenen Verzeichnissen verschachtelt, ist es möglich die gesamte Verzeichnisstruktur oder nur die letzte Kategorie auszugeben. Das steuern wir über das Attribut showpath. Möchten wir die gesamte Verzeichnisstruktur ausgegeben, können wir über das Attribut separater zusätzlich das Trennzeichen (z.B. >) festlegen.
Wollen wir bspw. die Ausgabe von einzelnen Verzeichnissen einer Kategoriestruktur verhindern, nutzen wir dazu den Parameter rootdir. Im nachfolgenden Beispiel würde das Kategorieverzeichnis GoogleMerchant nicht angezeigt werden, aber alle weiteren Unterkategorien, z.B. Medien > Bücher > Sachliteratur.
<we:category doc="self" showpath="false" field="Title" rootdir="/GoogleMerchant" separator=">" />
Mit dem Tag we:ifCat können wir zusätzlich festlegen, was passieren soll, wenn eine bestimmte Kategorie vorhanden ist. Das Attribut categories kann eine oder mehrere per Komma getrennte Kategorien enthalten.
<we:ifCat categories="/Google Produktsuche/Medien" doc="self">
... nur dann, wenn auch Kategorie Medien vorhanden ist ...
</we:ifCat>
Wie ihr seht (und das war nur ein kurzer Auszug), bieten webEdition Kategorien vielfältige Möglichkeiten Inhalte zu verschlagworten bzw. auszuzeichnen und dadurch flexibel zu steuern.
- Einsatz von PHP in webEdition
- <we:block> und <we:listview>: Alternierende CSS-Klassen mit <we:ifPosition>
- <we:block> und <we:listview>: Den Inhalt eines Blocks in einer Listview ausgeben
- <we:block>: Nummerieren der Wiederholungen mit <we:position>
- Allgemeine Variablen und Funktionen
- Attribute in HTML-Tags ausspielen
- Auf interne Variablen des aktuellen webEdition-Dokuments zugreifen
- Datenbank-Funktionen
- E-Mail-Benachrichtigung von 404-Fehlern mit webEdition
- Externe JS-Plugins und andere Bibliotheken komfortabel in webEdition importieren
- Fehlerseite für limitierte Logins Multidomain-fähig machen
- Google Sitemap in webEdition erstellen
- Große Dateien – wohin damit?
- Innerhalb einer listview type="search" die ID eines Objektes anzeigen
- Liste der Tastaturkürzel
- Massenoperationen für webEdition Objekte
- Mit webEdition automatisiert Thumbnails erzeugen
- Mit webEdition-Thumbnails responsive Background-Images gestalten
- Pflichtfelder in Dokumenten
- PHP-Klassen und PHP-Libraries einfügen
- Referenzen für PHP, JavaScript und CSS in die webEdition-Sidebar laden
- SEO-optimierte Image-News-Slider mit webEditon und bxSlider
- SEO-URLs, so bekommt ihr sie „klein“
- Tipps und Rezepte
- Vorlagen-Quelltext aus DB anzeigen
- we:comment mehr als nur Kommentare
- webEdition IDs in CSS und JS Dateien einbinden
- webEdition Tags statt PHP-Code
- Wie funktionieren eigentlich webEdition Objekte?
- Wie kann ich als Entwickler die Code-Qualität von webEdition-Projekten einschätzen?