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:
<?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:
<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: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
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