XSL-Stylesheets für Strukturelemente

Für jedes XML-Strukturelement existiert ein XSL-Stylesheet, das für die Transformation (die HTML-Ausgabe) des im Strukturelement definierten XML-Codes zuständig ist. 

Diese XSL-Stylesheets werden pro Element in einer eigenen Datei abgespeichert. Diese liegen in folgendem Verzeichnis ab:

/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/items/*.wItem.php

Ein solches XSL-Stylesheet besteht aus XSL- und HTML-Code und definiert die HTML-Ausgabe:

Beispielhafter Aufbau eines XSL-Stylesheet für XML-Strukturelemente

<?php $version="1.0"; $encoding="UTF-8"; ?>
<?php exit; ?>
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wsl="http://weblication.de/5.0/wsl" xmlns:wd="http://weblication.de/5.0/wd" xmlns:php="http://php.net/xsl" exclude-result-prefixes="wd wsl php" version="1.0">
              
  <wd:extension type="weblication" version="5.0">
    <wd:meta>
      <wd:title>Text</wd:title>
      <wd:description/>
      <wd:modification name="admin" time="1272383009"/>    
      <wd:creation name="admin" time="1252018717"/> 
      <wd:icon src="/deGlobal/wGlobal/layout/images/element-icons/element_text.gif"/>     
    </wd:meta>

    <wd:status>
      <wd:online from="" status="on" to=""/>
      <wd:type value=""/>
    </wd:status>    
        
    <wd:version value="16"/>
      <wd:cache expires="{wGetValueOfDefaultExtension()}"/>
  </wd:extension>       
  
  <xsl:template match="wd:item[@type = 'text.wysiwyg']">
    <xsl:choose>
      <xsl:when test="$wIsInEditor and @wEditorId">
        <!-- web:item:start name="Fliesstext" display="user" pathEdit="/deGlobal/wGlobal/layout/templates/items/text.wysiwyg.wItem.php" type="text.wysiwyg"-->
          <div class="elementText">      
           <!--web:text:start openClipboardDialogOnPaste="1" pasteFilter="" autoFilter="myFilterDefault" editor="wysiwyg" inputStyle=""--><xsl:value-of disable-output-escaping="yes" select="wd:fragment[@id = 'text']"/><!--web:text:stop-->
          </div>
        <!-- web:item:stop -->
      </xsl:when>
      <xsl:otherwise>
        <div class="elementText">
          <xsl:choose>
            <xsl:when test="php:functionString('wVariables::getValue', 'autolinks_active', '/spin-global') = 'yes'">
              <wsl:addAutolinks path="{$wProjectPath}/wGlobal/content/autolinks/standard.wAutolinks.php"><xsl:value-of disable-output-escaping="yes" select="wd:fragment[@id = 'text']"/></wsl:addAutolinks>
            </xsl:when>
            <xsl:otherwise>
              <xsl:value-of disable-output-escaping="yes" select="wd:fragment[@id = 'text']"/>
            </xsl:otherwise>
          </xsl:choose>
        </div>    
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>

Die Verbindung zwischen dem XML-Strukturelement und dem zugehörigen XSL-Stylesheet erfolgt über das Attribut TYPE des XML-Item-Knotens:

XML-Strukturelement vom TYPE text.wysiwyg

<wd:item name="Fliesstext" en:name="Text" icon="/deGlobal/wGlobal/layout/images/element-icons/element_text.gif" type="text.wysiwyg">
  [XML CODE DES STRUKTURELEMENTS]
</wd:item>

XSL-Stylesheet für das Strukturelement mit dem TYPE text.wysiwyg

<xsl:template match="wd:item[@type = 'text.wysiwyg']">
  ...XSL und HTML Code für die Transformation des Text-Elements
</xsl:template>

Normalerweise ist das XSL-Stylesheet nach dem TYPE benannt, den es transformiert, also:

Type: text.wysiwyg
Name: text.wysiwyg.wItem.php

Um das Element im Struktureditor zur Pflege anzubieten, muss es mit den entsprechenden web-Tags umschlossen werden:

<!-- web:item:start 
name="Fliesstext" 
display="user" 
pathEdit="/deGlobal/wGlobal/layout/templates/item/text.wysiwyg.wItem.php"   
type="text.wysiwyg"-->

XML-Code

<!--web:item:stop-->

Weitere Informationen finden Sie hier:
web-Item-Tags

Anpassungsmöglichkeiten in XSL-Stylesheets

Innerhalb eines XSL-Stylesheets steht Ihnen die komplette Funktionalität von XSL zur Verfügung, weiterhin können Sie mithilfe von wsl-Tags zusätzliche Funktionen ausführen. Siehe auch
Dokumentation WSL

Eine Besonderheit unter den WSL-Tags stellt die Verwendung von PHP innerhalb eines XSL-Stylesheets dar, weitere Informationen erhalten Sie hier:
PHP in XSL-Stylesheets ausführen

Zusätzlich haben Sie innerhalb der XSL-Stylesheets vollen Zugriff auf alle Systemparameter:
Systemparameter bei der XSL-Transformation