šablona/makra/skriptování.xsl
changeset 96 8de228c9ac10
parent 95 eea9c4713045
child 103 aa91d1c6d4c1
     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:12:44 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>