Hallo,
Ich möchte den Titel einer Seite per XSL generieren da ich für einen gewissen Seitentyp ein sogenanntes "Webcontnet-Template" habe. Dieses EINE Template wird für mehrere Seiten angewandt. Deswegen kann ich den Seitentitel nicht fix reinschreiben sondern muss ihn durch entsprechende XSL Befehle "dynamisch" generieren lassen.
Hier muss du einen Parameter definieren, und in deinem PHP-Skript dafür sorgen, dass er diesen Paramter befüllt:
$proc = new XSLTProcessor;
...
$proc->setParameter('', 'pageId', $Wert);
wobei du $Wert aus dem URL holst(index.php?pageId=9)
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
<xsl:param name="pageId" />
Mein Problem ist, dass nur immer dass erste Element von "main" (also der erste Hauptnavigationspunkt: Tree House Cafe) und dass erste Element von "sub" angezeigt wird (z.b. About the cafe/About the Library etc.)
Hm, was sollte denn bei "sub" angezeigt werden?
Du willst einen bread-crumb-trail im Titel anzeigen? In etwas so?
Treehouse café - Hauptnavigationspunkt: Unternavigationspunkt
Aufgrund deines Beisiel-XMLs:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="pageId" />
<xsl:template match="/">
<html>
<head>
<title>Treehouse café - <xsl:call-template name="seitentitel" /></title>
</head>
</html>
</xsl:template>
<xsl:template name="seitentitel">
<xsl:param name="ID" select="$pageId"/>
<xsl:choose>
<xsl:when test="/data/nav/subnav/item[@pageId = $ID]">
<xsl:value-of select="/data/nav/subnav[item[@pageId = $ID]]/preceding-sibling::mainnav"/>: <xsl:value-of select="/data/nav/subnav/item[@pageId = $ID]"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="/data/nav/mainnav[@pageId = $ID]"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Das würde bei pageId=15: "Treehouse café - Tree House Cafe: Refurbishment info" und bei pageId=41: "Treehouse café - City of Bradford" produzieren.
Grüße
Thomas