Die Kategorien in Weblication® dienen der Strukturierung und Gruppierung von XML- oder Binärdateien. Auf diese Weise können Inhalte thematisch gegliedert werden und Beziehungen zwischen Dokumenten hergestellt werden.
In der BASE werden einige Kategoriendateien mitgeliefert. In dieser Datei werden die zentral definierten Kategorien im XML-Format gespeichert und bei der Seitenbearbeitung und in der Konfiguration einiger Weblics bereitgestellt, z.B.:
/[IHR-LAYOUT-PROJEKT]/wGlobal/content/categories/*.wCategories.php
<?php $version="1.0"; $encoding="UTF-8"; ?> <?php exit; ?> <categories> <wd:extension xmlns:wd="http://weblication.de/5.0/wd" type="weblication" version="5.0" uid="8c343707cc5b87b493a568e9a4ec1c83"> <wd:meta> <wd:title>Standardkategorieen</wd:title> <wd:description/> <wd:keywords/> ... </wd:meta> ... </wd:extension> <category text="Unternehmen" id="1177055143578" group="" title_de="Unternehmen" title_en="Company"> <category text="Subunternehmen" id="1251969641249" title_en="Subcontractor" title_de="Subunternehmen" group=""/> </category> <category text="Kunden" id="1177055180125" group="" title_de="Kunden" title_en="Customers"></category> <category text="Partner" id="1252445710891" group="" title_de="Partner" title_en="Partner"/> </categories>
Einfachstes Beispiel für die Verwendung von Kategorien ist die gefilterte Darstellung von Einträgen in einer Übersichtsliste. Bei der Verwendung einer kategorisierten Liste kann die Menge der angezeigten Einträge nach Kategorien gefiltert werden. So können beispielsweise nur Dateien angezeigt werden, die einer oder mehreren bestimmten Kategorien zugeordnet sind.
Ein weiteres Beispiel ist die Herstellung von Beziehungen zwischen mehreren Dokumenten: So können Sie auf einer Seite über eine kategorisierte Listenfunktion alle weiteren Seiten derselben Kategorie(n) anzeigen lassen.
Die Zuweisung einer Datei zu einer oder mehreren Kategorien erfolgt über die Bearbeitung im Weblication® Editor. Hierzu wird in aller Regel die Pflegemaske des Metadatenbereiches im Kopf der Bearbeitungsmaske um den entsprechenden Eintrag erweitert:
<div class="wEditorExtensionLabel">Kategorien</div> <div class="wEditorExtensionValue"> <!--web:categories:start language="<xsl:value-of select="php:functionString('wUserCur::getLanguage')" />" pathCategories="/[IHR-LAYOUT-PROJEKT]/wGlobal/content/categories/standard.wCategories.php" editor="checkbox" inputStyle="max-height:120px;overflow:auto" multiple="1"--><xsl:copy-of select="/wd:document/wd:extension/wd:meta/wd:categories"/><!--web:categories:stop--> </div>
Hierbei wird über den Pflegetag web:categories:start und der Pfadangabe der zugrundeliegenden Kategoriendatei pathCategories="/pfad/zur/Kategoriendatei.php" der Kategorieneditor in die Maske integriert.
Weitere Informationen zu Pflegetags finden Sie hier:
Kategorien-Pflegetags
Die Speicherung der Kategorienzuweisung erfolgt standardmässig im Metadatenbereich der Seite bzw. in den Objekt-Daten (wd:objects), wenn z.B. mehrere Kategoriendateien zu einer Seite verwendet werden.
Jede zugewiesene Kategorie erhält einen Eintrag in der Form
von:
... <wd:category>$KategorienID</wd:category> ...
<wd:extension type="weblication" version="5.0"> <wd:meta> <wd:title>Seitentitel</wd:title> <wd:description>Beschreibung der Seite</wd:description> <wd:keywords>Weblication®</wd:keywords> <wd:categories> <wd:category>1177055143578</wd:category> <wd:category>1177055180125</wd:category> </wd:categories> ... </wd:meta> [...] <wd:cache expires="{wGetValueOfDefaultExtension()}"/> </wd:extension>
<wd:extension type="weblication" version="5.0"> <wd:meta> <wd:title>Hybrid-Kondensator</wd:title> <wd:description></wd:description> <wd:keywords>Weblication®</wd:keywords> <wd:categories/> ... </wd:meta> <wd:object type="shopProduct"> <wd:data id="title" type="char.text"/> ... <wd:data id="categories" type="categories.default"> <wd:category>254275254275</wd:category> <wd:category>913427913427</wd:category> </wd:data> ... </wd:object> [...] <wd:cache expires="{wGetValueOfDefaultExtension()}"/> </wd:extension>
Bitte beachten Sie, dass hierbei die Zuordnung ausschliesslich über
die ID der Kategorie erfolgt.
Der zugehörige Text wird aus der
zentralen Kategoriendatei referenziert.
// Ermitteln der KategorienID aus dem aktuellen Dokument // Setzen der XSL-Variable currentCategoryId // Zuweisung der aktuellen KategorienID <xsl:variable name="currentCategoryId"><xsl:value-of select="/wd:document/wd:extension/wd:meta/wd:categories/wd:category"/></xsl:variable> // Zugriff auf die Kategoriendatei mithilfe des xPath-Befehls document // Zugriff auf den category-Knoten mit der ID der ueber die Variable uebermittelten ID <xsl:value-of select="document(concat($wDocumentRoot,'/de/wGlobal/content/categories/categories.php'))//category[@id = $currentCategoryId]/@text "/>
Wenn Sie zu einer Datei Kategorienwerte aus unterschiedlichen Kategorien-Dateien schreiben wollen, müssen Sie dies in unterschiedlichen XML-Knoten vornehmen. Ein Beispiel hierzu ist das Veranstaltungskalender Weblic®, bei welchem Kategorien zur Veranstaltungsart und zum Veranstaltungsort in unterschiedlichen XML-Knoten innerhalb des wd:object Bereiches geschrieben werden.
Eine eigene Pflegemaske für eine bestimmte Kategoriendatei (z.B. die Kategoriendatei für Länder zum Shop) können Sie wie folgt nutzen:
Legen Sie passend zum Namen der Kategoriendatei (z.B. shopCountries.wCategories.php) die Datei für die Definition der Pflegemaske an, im Beispiel also:
/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/editor/category/shopCountries.attributes.wEditorCategory.php
In dieser Pflegemaske können Sie die Attribute passend für die verwendete Kategoriendatei definieren, um so z.B. abweichende Versandkosten (oder andere Attribute) pflegbar zu machen.