Allerdings bin ich zu dem Schluß gekommen, daß die Hürde für das Erlernen von XSL ziemlich hoch wäre. Man kann sich XSL wie eigene eigene Programmiersprache vorstellen, mit Schleifen und Bedingungen, das alles in mehrere Dateien verpackt, denn: Neben dem Markup - quasi dem Template - braucht man ja z.B. auch noch Sprachdateien...
Beispiel für einen einfachen Seitenheader:
pagetitle.xslt
Code: Alles auswählen
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="../input/input.xslt" />
<xsl:output
method="xml"
indent="yes"
omit-xml-declaration="yes"
doctype-public = "-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
/>
<xsl:template match="/element/view">
<title><xsl:value-of select="$title"/></title>
</xsl:template>
<xsl:template match="/element/edit">
<xsl:call-template name="input">
</xsl:call-template>
</xsl:template>
</xsl:stylesheet>
input.xslt (unvollständig)
Code: Alles auswählen
<xsl:template name="input">
<xsl:param name="id"/>
<xsl:param name="class"/>
<xsl:param name="value"/>
<label>
<xsl:attribute name="for">
<xsl:choose>
<xsl:when test="string-length($id)">$id</xsl:when>
<xsl:otherwise>pageTitle</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<!-- set the row class to 'odd' or 'even' to determine the colour -->
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position()mod 2">odd</xsl:when>
<xsl:otherwise>even</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of select="$lang.pageTitle.label"/>:</label>
<input>
<xsl:attribute name="id">
<xsl:choose>
<xsl:when test="string-length($id)">$id</xsl:when>
<xsl:otherwise>pageTitle</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="string-length($class)">$class</xsl:when>
<xsl:otherwise>pageTitle</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="value">
<xsl:choose>
<xsl:when test="string-length($value)">$value</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</input>
</xsl:template>
Sprachdatei (Beispiel):
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="pageTitle.xslt"/>
<xsl:variable name="lang.pageTitle.label" select="'Seitentitel'"/>
</xsl:stylesheet>
Denkbarer Benefit
Würde jede Art von Inhalt - also auch ein Kalender, ein Bild, WYSIWYG etc. - auf diese Art beschrieben, wäre es möglich, sich spezialisierte Module oder Blocktypen aus diesen Inhaltstypen beliebig zusammenzustellen. Beispiel Ferienwohnung: Beschreibung in WYSIWYG, Buchungskalender in Kalender, dazu ein paar Bilder. Beispiel Blog-Artikel: Überschrift, WYSIWYG (Teasertext), WYSIWYG (Volltext).
Das ist allerdings ein komplett anderer Ansatz als bisher...