1.1 --- a/šablona/makra/skriptování.xsl Sat Jun 23 19:22:21 2012 +0200
1.2 +++ b/šablona/makra/skriptování.xsl Sat Jun 23 20:39:15 2012 +0200
1.3 @@ -20,9 +20,10 @@
1.4 xmlns="http://www.w3.org/1999/xhtml"
1.5 xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
1.6 xmlns:j="java:cz.frantovo.xmlWebGenerator.makra.Skriptování"
1.7 + xmlns:k="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/konfigurace"
1.8 xmlns:s="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
1.9 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
1.10 - exclude-result-prefixes="m j s">
1.11 + exclude-result-prefixes="m j k s">
1.12
1.13 <!--
1.14 Skriptování
1.15 @@ -31,37 +32,62 @@
1.16 *
1.17 @jazyk programovací jazyk, např. bash, perl, php
1.18 @výstup formát výstupu skriptu: text (výchozí) | xml (musí být validním fragmentem XML)
1.19 - @src skript uložený v souboru místo v těle elementu
1.20 -->
1.21 <xsl:template match="m:skript">
1.22 - <!--
1.23 - TODO:
1.24 - - ošetření chyb
1.25 - - nastavení z web.conf (zákaz nebo ignorace skriptů)
1.26 - - podpora vkládání fragmentů XML, ne jen prostého textu
1.27 - -->
1.28
1.29 - <xsl:variable name="výstupSkriptu" select="j:interpretuj(
1.30 - text(),
1.31 - @jazyk,
1.32 - @výstup,
1.33 - document-uri(/),
1.34 - //s:stránka/s:nadpis/text(),
1.35 - //s:stránka/s:perex/text()
1.36 - )"/>
1.37 + <xsl:variable name="režim" select="$konfigurace/k:web/k:skriptování/k:režim/text()"/>
1.38 +
1.39 <xsl:choose>
1.40 - <xsl:when test="$výstupSkriptu">
1.41 + <xsl:when test="$režim = 'povolit'">
1.42 + <xsl:variable name="výstupSkriptu" select="j:interpretuj(
1.43 + text(),
1.44 + @jazyk,
1.45 + @výstup,
1.46 + document-uri(/),
1.47 + //s:stránka/s:nadpis/text(),
1.48 + //s:stránka/s:perex/text()
1.49 + )"/>
1.50 <xsl:choose>
1.51 - <xsl:when test="@výstup = 'xml'"><xsl:value-of select="$výstupSkriptu" disable-output-escaping="yes"/></xsl:when>
1.52 - <xsl:otherwise><xsl:value-of select="$výstupSkriptu"/></xsl:otherwise>
1.53 + <xsl:when test="$výstupSkriptu">
1.54 + <xsl:choose>
1.55 + <xsl:when test="@výstup = 'xml'"><xsl:value-of select="$výstupSkriptu" disable-output-escaping="yes"/></xsl:when>
1.56 + <xsl:otherwise><xsl:value-of select="$výstupSkriptu"/></xsl:otherwise>
1.57 + </xsl:choose>
1.58 + </xsl:when>
1.59 + <xsl:otherwise>
1.60 + <xsl:message terminate="yes">Při interpretaci skriptu došlo k chybě.</xsl:message>
1.61 + </xsl:otherwise>
1.62 </xsl:choose>
1.63 </xsl:when>
1.64 - <xsl:otherwise>
1.65 - <xsl:message terminate="yes">Při interpretaci skriptu došlo k chybě.</xsl:message>
1.66 +
1.67 + <xsl:when test="$režim = 'zakázat'">
1.68 + <xsl:message terminate="yes">Stránka obsahuje skripty, ale skripty jsou zakázané → je potřeba je odstranit nebo upravit nastavení ve web.conf.</xsl:message>
1.69 + </xsl:when>
1.70 + <xsl:when test="$režim = 'ignorovat'">
1.71 + <xsl:message>Stránka obsahuje skripty, ale skripty jsou ignorovány – změnu lze provést ve web.conf.</xsl:message>
1.72 + </xsl:when>
1.73 + <xsl:when test="$režim = 'vložit' and @výstup = 'xml'">
1.74 + <xsl:message>Není možné jen tak vložit text, který měl mít výstup ve formátu XML – změnu lze provést ve web.conf</xsl:message>
1.75 + </xsl:when>
1.76 + <xsl:when test="$režim = 'vložit'">
1.77 + <span class="vloženýNeinterpretovanýSkript jazyk-{@jazyk}">
1.78 + <xsl:value-of select="text()"/>
1.79 + </span>
1.80 + </xsl:when>
1.81 + <xsl:otherwise><!-- varovat = výchozí možnost -->
1.82 + <xsl:choose>
1.83 + <xsl:when test="@výstup = 'xml'">
1.84 + <xsl:message>Není možné možné vložit varování na místo, kde měl být skript generující XML – změnu lze provést ve web.conf</xsl:message>
1.85 + </xsl:when>
1.86 + <xsl:otherwise>
1.87 + <xsl:text>[VAROVÁNÍ (</xsl:text>
1.88 + <xsl:value-of select="@jazyk"/>
1.89 + <xsl:text>): skripty jsou vypnuté – lze je zapnout ve web.conf]</xsl:text>
1.90 + <xsl:message>Skript se neinterpretuje a vkládáme varování do stránky – změnu lze provést ve web.conf</xsl:message>
1.91 + </xsl:otherwise>
1.92 + </xsl:choose>
1.93 </xsl:otherwise>
1.94 </xsl:choose>
1.95 -
1.96 -
1.97 </xsl:template>
1.98
1.99 </xsl:stylesheet>