So setzen Sie bedingte Attributwerte in Pflegekommentaren

Dieser Artikel beschreibt, wie Sie Werte innerhalb von Attributen dynamisch setzen, um den Pflegekommentar in Abhängigkeit bestimmter Kriterien zu nutzen.

Werte innerhalb von Pflegetag-Attributen können Sie dynamisch halten, um je nach Bedingung innerhalb der Bearbeitung die Handhabung der Strukturelemente bzw. -gruppen zu beeinflussen.

Folgende Beispiele führen an, wie Sie den Wert des display-Attributes zum Gruppen-Pflegetag (web:group:start) dynamisch ermitteln. Beide Beispiele haben das gleiche Ziel und nutzen nur andere Wege. Beispiel 1 verwendet lediglich XSL zur Definition und Einlesen der Variable. Beispiel 2 nutzt hierfür zusätzlich die PHP-Framework-Funktionen "setGlobalValue" und "getGlobalValue" der wEnv-Klasse.

Im Beispiel wird abhängig davon, ob innerhalb der Gruppe schon ein Element vorhanden ist, die Möglichkeit ausgeblendet, weitere Elemente in der Gruppe einzufügen.

Beispiel 1: Auszug aus der includes.global.php zum Einbinden von content2 Strukturelementen

...
  <!-- Hier werden die Inhaltselemente eingebunden -->
  <xsl:template match="wd:group[@id='content2']">
    <xsl:variable name="displayType"><xsl:choose><xsl:when test="count(wd:item) = 0">user</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable>
    <!-- web:group:start name="content2" caption="" display="<xsl:value-of select="$displayType" />"-->
    <xsl:apply-templates select="wd:item"/>
    <!-- web:group:stop -->
  </xsl:template>
...

Beispiel 2: Auszug aus der includes.global.php zum Einbinden von content2 Strukturelementen (über wEnv)

...
  <!-- Hier werden die Inhaltselemente eingebunden -->
  <xsl:template match="wd:group[@id='content2']">
    <xsl:variable name="displayType"><xsl:choose><xsl:when test="count(wd:item) = 0"><xsl:value-of select="php:function('wEnv::setGlobalValue', 'displayType', 'user')" /></xsl:when><xsl:otherwise><xsl:value-of select="php:function('wEnv::setGlobalValue', 'displayType', '0')" /></xsl:otherwise></xsl:choose></xsl:variable>
    <!-- web:group:start name="content2" caption="" display="<xsl:value-of select="php:function('wEnv::getGlobalValue', 'displayType', $displayType)" />"-->
    <xsl:apply-templates select="wd:item"/>
    <!-- web:group:stop -->
  </xsl:template>
...

Folgendes Beispiel 3 führt an, wie Sie ab der Version 005.046.013.000 Elemente von der Auswahl ausschliessen können, wenn eine bestimmte Bedingung zutrifft. Im Beispiel wird geprüft, ob das Bildelement bereits einmal (oder mehr) in der Seite vorkommt. Ist das der Fall, wird über die Variable das Bildelement (picture.standard.wItem.php) in das itemsExlude-Attribut geschrieben, womit das Bildelement nicht mehr auswählbar ist.

Beispiel 3: Auszug aus der includes.global.php zum Ausschliessen von content1 Strukturelementen

...
  <!-- Hier werden die Inhaltselemente eingebunden -->
  <xsl:template match="wd:group[@id='content1']">
    <xsl:variable name="excludedItems"><xsl:if test="count(wd:item[@type ='picture.standard']) >= 1">picture.standard</xsl:if></xsl:variable>
    <!-- web:group:start name="content1" caption="" display="user" itemsExclude="<xsl:value-of select="$excludedItems" />"-->
    <xsl:apply-templates select="wd:item"/>
    <!-- web:group:stop -->
  </xsl:template>
...