#20 Skriptování: nastavení ve web.conf: povolit | zakázat | ignorovat | varovat | vložit
1.1 --- a/vstup/web.conf Sat Jun 23 19:22:21 2012 +0200
1.2 +++ b/vstup/web.conf Sat Jun 23 20:12:44 2012 +0200
1.3 @@ -25,5 +25,15 @@
1.4 <css>css/syntaxe.css</css>
1.5 <js>js/skript.js</js>
1.6
1.7 + <skriptování>
1.8 + <!--
1.9 + povolit – skripty se vykonají
1.10 + zakázat – skripty se nevykonají a dojde k chybě
1.11 + ignorovat – skripty se v tichosti přeskočí
1.12 + varovat – skripty se v přeskočí a na jejich místo se vloží varování – výchozí možnost
1.13 + vložit – místo výstupu skriptu se vloží jeho zdroják
1.14 + -->
1.15 + <režim></režim>
1.16 + </skriptování>
1.17 </web>
1.18
2.1 --- a/šablona/makra/skriptování.xsl Sat Jun 23 19:22:21 2012 +0200
2.2 +++ b/šablona/makra/skriptování.xsl Sat Jun 23 20:12:44 2012 +0200
2.3 @@ -20,9 +20,10 @@
2.4 xmlns="http://www.w3.org/1999/xhtml"
2.5 xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
2.6 xmlns:j="java:cz.frantovo.xmlWebGenerator.makra.Skriptování"
2.7 + xmlns:k="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/konfigurace"
2.8 xmlns:s="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
2.9 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
2.10 - exclude-result-prefixes="m j s">
2.11 + exclude-result-prefixes="m j k s">
2.12
2.13 <!--
2.14 Skriptování
2.15 @@ -31,37 +32,62 @@
2.16 *
2.17 @jazyk programovací jazyk, např. bash, perl, php
2.18 @výstup formát výstupu skriptu: text (výchozí) | xml (musí být validním fragmentem XML)
2.19 - @src skript uložený v souboru místo v těle elementu
2.20 -->
2.21 <xsl:template match="m:skript">
2.22 - <!--
2.23 - TODO:
2.24 - - ošetření chyb
2.25 - - nastavení z web.conf (zákaz nebo ignorace skriptů)
2.26 - - podpora vkládání fragmentů XML, ne jen prostého textu
2.27 - -->
2.28
2.29 - <xsl:variable name="výstupSkriptu" select="j:interpretuj(
2.30 - text(),
2.31 - @jazyk,
2.32 - @výstup,
2.33 - document-uri(/),
2.34 - //s:stránka/s:nadpis/text(),
2.35 - //s:stránka/s:perex/text()
2.36 - )"/>
2.37 + <xsl:variable name="režim" select="$konfigurace/k:web/k:skriptování/k:režim/text()"/>
2.38 +
2.39 <xsl:choose>
2.40 - <xsl:when test="$výstupSkriptu">
2.41 + <xsl:when test="$režim = 'povolit'">
2.42 + <xsl:variable name="výstupSkriptu" select="j:interpretuj(
2.43 + text(),
2.44 + @jazyk,
2.45 + @výstup,
2.46 + document-uri(/),
2.47 + //s:stránka/s:nadpis/text(),
2.48 + //s:stránka/s:perex/text()
2.49 + )"/>
2.50 <xsl:choose>
2.51 - <xsl:when test="@výstup = 'xml'"><xsl:value-of select="$výstupSkriptu" disable-output-escaping="yes"/></xsl:when>
2.52 - <xsl:otherwise><xsl:value-of select="$výstupSkriptu"/></xsl:otherwise>
2.53 + <xsl:when test="$výstupSkriptu">
2.54 + <xsl:choose>
2.55 + <xsl:when test="@výstup = 'xml'"><xsl:value-of select="$výstupSkriptu" disable-output-escaping="yes"/></xsl:when>
2.56 + <xsl:otherwise><xsl:value-of select="$výstupSkriptu"/></xsl:otherwise>
2.57 + </xsl:choose>
2.58 + </xsl:when>
2.59 + <xsl:otherwise>
2.60 + <xsl:message terminate="yes">Při interpretaci skriptu došlo k chybě.</xsl:message>
2.61 + </xsl:otherwise>
2.62 </xsl:choose>
2.63 </xsl:when>
2.64 - <xsl:otherwise>
2.65 - <xsl:message terminate="yes">Při interpretaci skriptu došlo k chybě.</xsl:message>
2.66 +
2.67 + <xsl:when test="$režim = 'zakázat'">
2.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>
2.69 + </xsl:when>
2.70 + <xsl:when test="$režim = 'ignorovat'">
2.71 + <xsl:message>Stránka obsahuje skripty, ale skripty jsou ignorovány – změnu lze provést ve web.conf.</xsl:message>
2.72 + </xsl:when>
2.73 + <xsl:when test="$režim = 'vložit' and @výstup = 'xml'">
2.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>
2.75 + </xsl:when>
2.76 + <xsl:when test="$režim = 'vložit'">
2.77 + <span class="vloženýNeinterpretovanýSkript jazyk-{@jazyk}">
2.78 + <xsl:value-of select="text()"/>
2.79 + </span>
2.80 + </xsl:when>
2.81 + <xsl:otherwise><!-- varovat = výchozí možnost -->
2.82 + <xsl:choose>
2.83 + <xsl:when test="@výstup = 'xml'">
2.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>
2.85 + </xsl:when>
2.86 + <xsl:otherwise>
2.87 + <xsl:text>[VAROVÁNÍ (</xsl:text>
2.88 + <xsl:value-of select="@jazyk"/>
2.89 + <xsl:text>): skripty jsou vypnuté – lze je zapnout ve web.conf]</xsl:text>
2.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>
2.91 + </xsl:otherwise>
2.92 + </xsl:choose>
2.93 </xsl:otherwise>
2.94 </xsl:choose>
2.95 -
2.96 -
2.97 </xsl:template>
2.98
2.99 </xsl:stylesheet>