Veröffentlichungsdatum: 27. Januar 2010
Änderungsdatum: 11. März 2021
attribut wert kategorie category text xsl
Dieser Artikel beschreibt, wie Sie z.B. aus einem Listentemplate heraus auf Attributwerte (z.B. Text) aus einer Kategoriendatei zugreifen.
Tipp vorab:
Beim Einsatz des Objekt-Wizards können Sie in einem BASE (Mobile First) Projekt über "Listeneintrag des Objektes" die Kategorien über das Strukturelement "Listenerweiterung einbinden" über die Maske z.B. die "Kategorien als Text anzeigen".
Nachfolgend finden Sie die manuelle Umsetzung beschrieben.
Um über eine Liste zu den eingelesenen Dateien den Kategorienamen auszugeben, können Sie mittels XSL durch Auslesen der Kategorien-ID der entsprechenden Seite den Wert des zugehörigen text-Attributes auslesen. Somit erhalten Sie den Namen (z.B. Kunden) zu der entsprechenden id der Kategorie (z.B. 1177055180125).
<categories> ... <category text="Kunden" id="1177055180125" group="" title_de="Kunden" title_en="Customers"/> ... </categories>
... <xsl:for-each select="wd:extension//wd:categories/wd:category"> <xsl:variable name="categoryID"><xsl:value-of select="text()"/></xsl:variable> <xsl:value-of select="document(concat($wDocumentRoot, '/[IHR-LAYOUT-PROJEKT]/wGlobal/content/categories/standard.wCategories.php'))//category[@id = $categoryID]/@text" />, </xsl:for-each> ...
Nachfolgend ein Beispiel, das aufzeigt, wie das Zeilentemplate mehrere Sprachen hinsichtlich eines Kategorientextes unterstützen kann. Hierzu wird auf die global definierte wLanguageProject-Variable zurückgegriffen. Diese bestimmt dann, welches Textattribut zur Anzeige des Kategorientextes verwendet werden soll (title_de, title_en, etc.).
... <xsl:variable name="wLanguageProject"><xsl:value-of select="php:functionString('wProjectCur::getLanguage', $wProjectPath)" /></xsl:variable> ...
... <xsl:for-each select="wd:extension//wd:categories/wd:category"> <xsl:variable name="categoryID"><xsl:value-of select="text()"/></xsl:variable> <xsl:value-of select="document(concat($wDocumentRoot, '/[IHR-LAYOUT-PROJEKT]/wGlobal/content/categories/standard.wCategories.php'))//category[@id = $categoryID]/@*[name() = concat('title_', $wLanguageProject)]" />, </xsl:for-each> ...