188 lines
6.9 KiB
XML
Executable File
188 lines
6.9 KiB
XML
Executable File
<?xml version="1.0" encoding="utf-8"?>
|
|
<!DOCTYPE stylesheet [<!ENTITY nbsp ' '>]>
|
|
|
|
<!--
|
|
Copyright: 2006, 2007, 2008 Sören Bernstein
|
|
|
|
This file is part of Mandalay.
|
|
|
|
Mandalay is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Mandalay is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with Mandalay. If not, see <http://www.gnu.org/licenses/>.
|
|
-->
|
|
|
|
<!--
|
|
Hier werden die globalen Variablen eingerichtet
|
|
Das sind zum einen die Variablen, die aus CCM stammen, wie z.B. $dispatcher-prefix,
|
|
zum anderen Variablen und Einstellungen speziell für das Mandalay-Theme.
|
|
-->
|
|
|
|
|
|
<!-- Autor: Sören Bernstein -->
|
|
|
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
|
|
xmlns:cms="http://www.arsdigita.com/cms/1.0"
|
|
xmlns:ui="http://www.arsdigita.com/ui/1.0"
|
|
xmlns:mandalay="http://mandalay.quasiweb.de"
|
|
exclude-result-prefixes="xsl bebop cms ui mandalay"
|
|
version="1.0">
|
|
|
|
<!-- DE Parameter aus CCM -->
|
|
<!-- EN CCM environment parameter -->
|
|
<xsl:param name="theme-prefix"/>
|
|
<xsl:param name="context-prefix"/>
|
|
<xsl:param name="dispatcher-prefix"/>
|
|
|
|
<!-- DE ...für die Browserweiche -->
|
|
<!-- EN ...for browser switch -->
|
|
<xsl:param name="user-agent"/>
|
|
|
|
<!-- DE ...für die ausgehandelte Sprache -->
|
|
<!-- EN ...for negotiated language -->
|
|
<xsl:param name="negotiated-language"/>
|
|
|
|
<!-- DE ...für die Double Click Protection -->
|
|
<!-- EN ...for double click protection -->
|
|
<xsl:param name="dcp-on-buttons"/>
|
|
<xsl:param name="dcp-on-links"/>
|
|
|
|
|
|
<!-- DE Variable für die unterstützten Sprachen, die erste ist die Default-Sprache -->
|
|
<!-- EN Supported Languages. First is default language -->
|
|
<xsl:variable name="languages">
|
|
<xsl:call-template name="mandalay:getSetting">
|
|
<xsl:with-param name="setting" select="'languages'"/>
|
|
<xsl:with-param name="default" select="'[de] en'"/>
|
|
</xsl:call-template>
|
|
</xsl:variable>
|
|
|
|
<!-- DE Hole den Inhalt von language -->
|
|
<!-- EN Get content of language -->
|
|
<xsl:variable name="lang">
|
|
|
|
<!-- DE Wähle den besten Wert für die Sprachwahl -->
|
|
<xsl:variable name="language">
|
|
<xsl:choose>
|
|
<xsl:when test="string-length($negotiated-language) > 0">
|
|
<xsl:value-of select="$negotiated-language"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="//language"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
|
|
<!-- DE Prüfe, ob die Sprache unterstützt wird -->
|
|
<!-- EN Test, if language is supported -->
|
|
<xsl:choose>
|
|
<xsl:when test="contains($languages, $language) and $language != ''">
|
|
<xsl:value-of select="$language"/>
|
|
</xsl:when>
|
|
|
|
<!-- DE Wenn nicht, setze die in eckigen Klammern [] definierte Standardsprache -->
|
|
<!-- EN else, set default language (defined in Brackets []) -->
|
|
<xsl:otherwise>
|
|
<xsl:choose>
|
|
<xsl:when test="contains($languages, '[') and contains($languages, ']')">
|
|
<xsl:value-of select="substring-before(substring-after($languages, '['), ']')"/>
|
|
</xsl:when>
|
|
|
|
<!-- DE Falls die Standardsprache nicht definiert ist, dann nehme die erste in der Liste -->
|
|
<!-- EN If there isn't set a default language, choose the first entry -->
|
|
<xsl:when test="contains($languages, ' ')">
|
|
<xsl:value-of select="substring-before($languages, ' ')"/>
|
|
</xsl:when>
|
|
|
|
<!-- DE Das selbe wie oben, nur Semikolon separierte Liste -->
|
|
<!-- EN Same as above, only semicolon separated list -->
|
|
<xsl:when test="contains($languages, ';')">
|
|
<xsl:value-of select="substring-before($languages, ';')"/>
|
|
</xsl:when>
|
|
|
|
<!-- DE Nur ein Eintrag in der Liste -->
|
|
<!-- EN Only one entry in list -->
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$languages"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
|
|
</xsl:variable>
|
|
|
|
<!-- DE Speichere den Result-Tree, damit ich später darauf zugreifen kann. Wird durch den LayoutParser nötig -->
|
|
<!-- EN Saving the result tree for access later on. This is needed because of the layoutParser -->
|
|
<xsl:variable name="resultTree" select="/bebop:page"/>
|
|
|
|
<!-- DE Speichere den Usernamen des eingelogten User. Wird auch als Test-Variable verwendet -->
|
|
<!-- EN Setting loggedin users name. Also used as test variable -->
|
|
<xsl:variable name="userName">
|
|
<xsl:choose>
|
|
<xsl:when test="/bebop:page/ui:userBanner/@screenName">
|
|
<xsl:value-of select="concat(/bebop:page/ui:userBanner/@givenName, ' ', /bebop:page/ui:userBanner/@familyName)"/>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
|
|
<!-- DE Setze die Versionsnummer -->
|
|
<!-- EN Set version -->
|
|
<xsl:variable name="version" select="'0.9 RC 2'"/>
|
|
|
|
<!-- DE Setze den Debug-Modus -->
|
|
<!-- EN Setting debug mode -->
|
|
<xsl:variable name="showDebug">
|
|
<xsl:call-template name="mandalay:getSetting">
|
|
<xsl:with-param name="setting" select="'showDebug'"/>
|
|
<xsl:with-param name="default" select="'false'"/>
|
|
</xsl:call-template>
|
|
</xsl:variable>
|
|
|
|
<!-- DE Die interessanten Bereiche des user-agent isolieren -->
|
|
<!-- EN Isolate interesting parts of user-agent-->
|
|
|
|
<!-- Mozilla -->
|
|
<xsl:variable name="mozilla_version">
|
|
<xsl:value-of select="substring(substring-after($user-agent, 'Mozilla/'), 1, 1)"/>
|
|
</xsl:variable>
|
|
|
|
<!-- Firefox -->
|
|
<xsl:variable name="firefox_version">
|
|
<xsl:value-of select="substring(substring-after($user-agent, 'Firefox/'), 1, 1)"/>
|
|
</xsl:variable>
|
|
|
|
<!-- Konqueror -->
|
|
<xsl:variable name="konqueror_version">
|
|
<xsl:value-of select="substring(substring-after($user-agent, 'Konqueror/'), 1, 1)"/>
|
|
</xsl:variable>
|
|
|
|
<!-- Opera -->
|
|
<xsl:variable name="opera_version1">
|
|
<xsl:value-of select="substring(substring-after($user-agent, 'Opera/'), 1, 1)"/>
|
|
</xsl:variable>
|
|
|
|
<xsl:variable name="opera_version2">
|
|
<xsl:value-of select="substring(substring-after($user-agent, 'Opera '), 1, 1)"/>
|
|
</xsl:variable>
|
|
|
|
<!-- MSIE -->
|
|
<xsl:variable name="msie_version">
|
|
<xsl:value-of select="substring(substring-after($user-agent, 'MSIE '), 1, 1)"/>
|
|
</xsl:variable>
|
|
|
|
<!-- AppleWebKit -->
|
|
<xsl:variable name="webkit_version">
|
|
<xsl:value-of select="substring(substring-after($user-agent, 'AppleWebKit/'), 1, 3)"/>
|
|
</xsl:variable>
|
|
|
|
</xsl:stylesheet>
|