Weblication® Inhaltsseiten verwenden ein zentrales HTML Seiten-Template, um die in der Inhaltsdatei vorhandenen XML-Inhalte in XHTML bzw. HTML 5 zu transformieren und auszugeben. In der BASE wird hierzu auf ein zentrales XSL-Stylesheet zurückgegriffen, das HTML Seiten-Template standard.wDocument.php.
Pfad des Standard-XSL-Stylesheets:
/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/standard.wDocument.php
Die Zuweisung des Stylesheets wird im wd:extension-Bereich jeder Seite vorgenommen und kann ebenfalls in den Eigenschaften der Datei eingestellt werden.
In der BASE wird die Angabe des HTML Seiten-Templates in den meisten Dateien durch Vererbung vorgenommen. Die Wahl dieses XSL-Darstellungstemplates kann nur durch Administratoren verändert werden.
Weitere Hinweise finden Sie hier
Dateioptionen - Die Dokumentenerweiterung (wd:extension)
Die XSL-Transformation stellt im XSLT-Stylesheet sogenannte Schablonen (templates) zur Verfügung, welche die Transformationsanweisungen und den resultierenden XHTML-Code beinhalten. Dabei werden diese Schablonen auf die im XML-Dokument verfügbaren XML-Elemente angewendet und der entsprechende XHTML-Code für die Ausgabe erzeugt.
Das resultierende XHTML-Dokument ist in der Regel in mehrere Bereiche aufgeteilt, von denen das Standard-Stylesheet nur den Basisaufbau (das XHTML-Grundgerüst) erzeugt:
<?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:xslIfIsInEditor="http://www.w3.org/1999/XSL/TransformIfIsInEditor" xmlns:wslPre="http://weblication.de/5.0/wsl" xmlns:wslPost="http://weblication.de/5.0/wsl" xmlns:wslEditorPre="http://weblication.de/5.0/wsl" 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="xslIfIsInEditor wd wslPre wsl php" version="1.0"> <xsl:output method="xml" indent="yes" omit-xml-declaration="no" encoding="UTF-8"/> <!-- INCLUDES DER BENOETIGTEN STYLESHEETS --> <!-- z.B.: --> <!-- System-Parameter einbinden --> <xsl:include href="$XSLTPRE[wDocumentRoot]/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/misc/standard.wParams.php" wd:pathTemplate="misc/includes.global.php"/> <!-- ... --> <!-- Definition der Darstellung --> <xsl:template match="/wd:document"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <!-- HTML-Kopf --> <xsl:call-template name="htmlHeader" wd:pathTemplate="misc/includes.global.php#htmlHeader"/> </head> <body> <!-- Maske zur Pflege der Metadaten einbinden, falls man sich im Editor befindet --> <xslIfIsInEditor:call-template name="templateEditor" wd:pathTemplate="editmasks/standard.metadata.php"/> <!-- AUFBAU DES HTML GRUNDGERUESTES --> <div id="blockMainOuter"> <div id="blockMain"> <div id="blockMainInner"> <!-- ... --> <!-- EINBINDEN DER OBJEKT- UND INHALTSBEREICHE UEBER xsl:call-template --> <!-- Inhaltegruppe 1 (content1) des Objektes (der Seite)--> <xsl:call-template name="content1" wd:pathTemplate="misc/includes.global.php#content1"/> <!-- ... --> </div> </div> </div> <!-- ... --> </body> </html> </xsl:template> </xsl:stylesheet>
Einbinden der benötigten Stylesheets für die Transformation
Die meisten zentralen Funktionen und Elemente werden in einzelnen Dateien ausgelagert und von der standard.wDocument.php beim Aufruf includiert. Hierzu zählen beispielsweise die Pflegemaske für Metadaten, Systemparameter etc.).
Kopfbereich
Der Kopfbereich enthält die HTML-Ausgabe für alle Elemente, die im <head> Bereich der HTML-Seite ausgegeben werden sollen (Metatags, Verweise zu CSS-Stylesheets, etc)
Objekte und Inhaltsbereiche ueber includes
Sowohl Objektdaten als auch die Inhalte der wd:group-Inhaltsbereiche werden über spezielle XSL-Stylesheets transformiert. Weitere Informationen siehe weiter unten.
Seitenbasiselemente
Dies sind Elemente, die in vielen Webseiten standardmäßig verwendet werden sollen, beispielsweise eine Meta- oder Servicenavigation, die Sprachwahl oder Suche.
Systembereiche ueber includes
Dies betrifft Elemente wie das Weblication® Panel, die Bearbeitenbuttons etc.
Eine detailliertere Beschreibung aller Bereiche folgt weiter unten auf dieser Seite
Innerhalb des XSL-Stylesheets wird auf diverse Funktionen zugegriffen:
Systemparameter (misc/standard.wParams.php)
Hier werden alle Systemparameter definiert und stehen danach im XSL-Stylesheet und allen eingebundenen Stylesheets zur Verfügung. Weitere Informationen: Systemparameter
Zentrale Funktionen, Templates und Scripte (misc/includes.global.php)
Die Datei includes.global.php beinhaltet die meisten XSL-Templates, welche im Standard-Stylesheet mittels call-template aufgerufen werden. Folgende Funktionen sind in dieser Datei enthalten:
htmlHeader
HTML-Kopfbereich (Title-Tag, Meta-Tags, Verweise auf CSS-Stylesheets und JS-Dateien)
languageSelector
Sprachwahl bei Nutzung des Sprachmanagements
navigationMeta
Aufruf der Metanavigation
editButtonNavigationMeta
Generiert den Browse & Edit Button zur Bearbeitung der Metanavigation
searchBox
Suche
navigationTop
Hauptnavigation oben
editButtonsPage
Generiert die Browse & Edit Buttons zur Bearbeitung der
aktuellen Seite
content3Include
Includiert den Seitenbereich Content3 aus einer externen Datei
content3
Beinhaltet den Aufruf für die Inhaltsgruppe mit der ID content3
editButtonNavigationMain
Generiert den Browse & Edit Button zur Bearbeitung der Hauptnavigation
navigationLeft
Hauptnavigation links
navigationBreadcrumb
Breadcrumbnavigation
workflowBox
Erzeugt den Bereich, in dem der aktuelle Workflow angezeigt und verwendet werden kann
content1
Beinhaltet den Aufruf für die Inhaltsgruppe mit der ID content1
content2Include
Includiert den Seitenbereich Content2 aus einer externen Datei
content2
Beinhaltet den Aufruf für die Inhaltsgruppe mit der ID content2
editButtonBottom
Generiert den Browse & Edit Button zur Bearbeitung des includierten unteren Bereichs
includeBottom
Includiert den unteren Seitenbereich aus einer externen Datei
weblicationPanel
Generiert das Browse & Edit Weblication® Panel
trackingCodes
Integriert Analytic Codes
template-match Elemente zum Aufruf der Inhaltsgruppen
Diese beinhalten jeweils den Aufruf der Inhaltsgruppen der ID content1, content2 und content3
Dynamische
Includes von Objekt-Templates
Includiert dynamisch alle XSL-Stylesheets für Objekte
Dynamische Includes von
Element-Templates
Includiert automatisch alle XSL-Stylesheets für Strukturelemente
Metadaten-Pflegemaske
(editmasks/standard.metadata.php)
Includiert die Metadaten-Pflegemaske
<!-- System-Parameter einbinden --> <xsl:include href="$XSLTPRE[wDocumentRoot]/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/misc/standard.wParams.php" wd:pathTemplate="misc/includes.global.php"/> <!-- Zentrale Funktionen, Templates und Skripte einbinden - --> <xsl:include href="$XSLTPRE[wDocumentRoot]/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/misc/includes.global.php" wd:pathTemplate="misc/includes.global.php"/> <!-- Objekte-Templates dynamisch einbinden - Eine Seite ist von einem bestimmten Objekttyp --> <wslPre:includeXsltObjectsProject project="/[IHR-LAYOUT-PROJEKT]" useIndex="0"/> <!-- Elemente-Templates dynamisch einbinden - Eine Seite beinhaltet beliebig viele, vom Redakteur eingefügte, Elemente --> <wslPre:includeXsltItemsProject project="/[IHR-LAYOUT-PROJEKT]" useIndex="0"/> <!-- Meta-Maske einbinden - Falls die Seite im Editor aufgerufen wird --> <xslIfIsInEditor:include href="$XSLTPRE[wDocumentRoot]/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/editmasks/standard.metadata.php" wd:pathTemplate="editmasks/standard.metadata.php"/>
Im Kopfbereich des XSL-Stylesheets wird der HTML-Header generiert.
Hierzu wird das im vorigen Schritt includierte XSL-Element mit dem Namen "htmlHeader" aufgerufen:
<!-- Definition der Darstellung --> <xsl:template match="/wd:document"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <!-- HTML-Kopf --> <xsl:call-template name="htmlHeader"/> </head> <body> <!-- Maske zur Pflege der Metadaten einbinden, falls man sich im Editor befindet --> <xslIfIsInEditor:call-template name="templateEditor"/>
Der eigentliche und in der HTML-Seite anzuzeigende Inhalt des XML-Dokuments befindet sich wahlweise in den Objektdaten oder im Inhaltsbereich der Seite (oder in beiden parallel). In beiden Fällen wird der Inhalt über einen xsl:apply-templates in der Seite ausgegeben.
Dies betrifft in der Regel folgende Bereiche:
Dabei folgt die Transformation einer festgelegten Abfolge:
Zuerst wird auf den in der Seite vorhandenen wd:object-Bereich zugegriffen. Der erste Aufruf der Inhaltsbereiche erfolgt IMMER über das wd:object, dies bedeutet auch, dass dies zwingend in jeder zu transformierenden Seite vorhanden sein muss.
Im XSL-Stylesheet für Objektdaten (objects/*.wObject.php) wird dann zuerst der Inhalt des Objektes transformiert, danach über einen xsl-apply-templates Befehl der eigentliche Inhaltsbereich.
Falls dem Objekt im XML der Seite kein Attribut type mitgegeben wurde, wird das Standard-Objekt-Stylesheet verwendet, welches direkt auf den Inhaltsbereich führt.
// ZUERST WIRD GENERELL AUF DAS WD:OBJECT DER SEITE ZUGEGRIFFEN
<!-- Inhaltsgruppe 1 (content1): Hier wird der Hauptinhalt eingebunden -->
<xsl:template name="content1">
<xsl:comment>CONTENT:START</xsl:comment>
<xsl:apply-templates select="/wd:document/wd:extension/wd:object"/>
<xsl:comment>CONTENT:STOP</xsl:comment>
</xsl:template>
// DANACH WIRD NACH TRANSFORMATION DER OBJEKT-DATEN DER INHALTSBEREICH
// REFERENZIERT UND SCHLIESSLICH TRANSFORMIERT
<xsl:template match="wd:object">
<xsl:choose>
<xsl:when test="$wIsInEditor">
<xsl:apply-templates select="/wd:document/wd:group[@id='content1']"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="/wd:document/wd:group[@id='content1']"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Die zugehörigen Schablonen für die Inhaltselemente befinden sich in den
zugehörigen Element-Stylesheets:
XSL-Stylesheets für Strukturelemente
Browse & Edit Buttons zur Seitenbearbeitung (misc/includes.global.php)
Erzeugt mittels eines WSL-Tags den entsprechenden Bearbeitenbutton
Siehe Dokumentation wsl-Tags
Browse & Edit Panel (misc/includes.global.php)
Erzeugt mittels eines WSL-Tags das Weblication® Panel
Siehe Dokumentation
wsl-Tags
Systemparameter (misc/includes.global.php)
Siehe Systemparameter
Pflegemaske fuer Metadaten(editmasks/standard.metadata.php)
Siehe Pflegemasken für Metadaten
Workflow (misc/includes.global.php)
Erzeugt einen Bereich in der Seite, in dem die Workflowfunktionen zur Freigabe und Zurückweisung der Datei im Workflow angezeigt werden
Trackingcodes (misc/includes.global.php)
Bindet den Trackingcode für Web-Analytics Software ein
Neben Standard-XSL-Elementen kommen bei der Transformation auch spezielle, Weblication-eigene Elemente zum Einsatz. Diese sind im einzelnen:
wslPre:includeXsltObjectsProject
wslPre:includeXsltItemsProject
xslIfIsInEditor:*
wsl:includeCssItemsProject
wsl:includeJsItemsProject
Eine ausführliche Dokumentation dieser Elemente finden Sie hier: