Web components
File detail
Source code
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*"/>
<!--<xsl:preserve-space elements="pre"/>
-->
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<!-- Match root element -->
<xsl:template match="/page">
<xsl:if test="not(@visible='no')">
<xsl:call-template name="initTitle"/>
</xsl:if>
<xsl:apply-templates />
</xsl:template>
<!-- Load title from page metadata and build l10n PHP script -->
<xsl:template name="initTitle">
<xsl:processing-instruction name="php">
<xsl:text>
// Page title l10n script
// Generated by XSLT processor using PageServer_init.xsl template
$pageTitleLocalization = Array();</xsl:text>
<xsl:for-each select="name[not(@lang)]">
<xsl:text>
$pageTitle = '</xsl:text>
<xsl:value-of select="text()"/>
<xsl:text>';</xsl:text>
</xsl:for-each>
<xsl:for-each select="name[@lang]">
<xsl:text>
$pageTitleLocalization['</xsl:text>
<xsl:value-of select="@lang"/>
<xsl:text>'] = '</xsl:text>
<xsl:value-of select="text()"/>
<xsl:text>';</xsl:text>
</xsl:for-each>
<xsl:text></xsl:text>
<xsl:text>
$pageLang = LangSelect::singleton()->getLang();
if (array_key_exists($pageLang, $pageTitleLocalization))
$pageTitle = $pageTitleLocalization[$pageLang];
</xsl:text>
</xsl:processing-instruction>
</xsl:template>
<!-- Copy initPage element's content to output document -->
<xsl:template match="pageInit[parent::page]">
<xsl:apply-templates mode="copy"/>
</xsl:template>
<!-- Handle processing instruction -->
<xsl:template match="processing-instruction('php')" mode="copy">
<xsl:processing-instruction name="php">
<xsl:value-of select="self::processing-instruction('php')"/>
</xsl:processing-instruction>
</xsl:template>
<!-- Copy all content recursively -->
<xsl:template match="*" mode="copy">
<xsl:copy>
<xsl:for-each select="@*">
<xsl:copy-of select="."/>
</xsl:for-each>
<xsl:apply-templates mode="copy"/>
</xsl:copy>
</xsl:template>
<!-- suppress default actions -->
<xsl:template match="*" />
</xsl:stylesheet>