šablona/makra/skriptování.xsl
changeset 108 8d9cab64c335
parent 107 379a2a893fd1
child 113 18bf0044f5ab
equal deleted inserted replaced
107:379a2a893fd1 108:8d9cab64c335
    30 		Skriptování
    30 		Skriptování
    31 		***********
    31 		***********
    32 		Provedeme skript zadaný v těle elementu nebo v souboru a jeho výstup vložíme do stránky.
    32 		Provedeme skript zadaný v těle elementu nebo v souboru a jeho výstup vložíme do stránky.
    33 		*
    33 		*
    34 		@jazyk programovací jazyk, např. bash, perl, php (nepovinné, pokud je vyplněn atribut src)
    34 		@jazyk programovací jazyk, např. bash, perl, php (nepovinné, pokud je vyplněn atribut src)
    35 		@výstup formát výstupu skriptu: text (výchozí) | xml (musí být validním fragmentem XML)
    35 		@výstup formát výstupu skriptu:
       
    36 			text – libovolný text, escapujeme (výchozí)
       
    37 			xhtml – platný XML fragment, přidáme mu výchozí jmenný prostor XHTML a jmenný prostor pro makra
       
    38 			xml – platný XML dokument – vhodné pro další zpracování v jiných makrech
    36 		@src soubor se skriptem/programem (volitelný parametr – buď zadáme skript do těla elementu, nebo nastavíme tento atribut)
    39 		@src soubor se skriptem/programem (volitelný parametr – buď zadáme skript do těla elementu, nebo nastavíme tento atribut)
    37 	-->
    40 	-->
    38 	<xsl:template match="m:skript">
    41 	<xsl:template match="m:skript">
    39 		
    42 		
    40 		<xsl:variable name="režim" select="$konfigurace/k:web/k:skriptování/k:režim/text()"/>
    43 		<xsl:variable name="režim" select="$konfigurace/k:web/k:skriptování/k:režim/text()"/>
    48 																	@výstup,
    51 																	@výstup,
    49 																	(document-uri(/), resolve-uri('.'))[1],
    52 																	(document-uri(/), resolve-uri('.'))[1],
    50 																	//s:stránka/s:nadpis/text(),
    53 																	//s:stránka/s:nadpis/text(),
    51 																	//s:stránka/s:perex/text()
    54 																	//s:stránka/s:perex/text()
    52 																)"/>
    55 																)"/>
    53 				<xsl:apply-templates select="$výstupSkriptu/h:html/h:body/node()"/>
    56 				<xsl:choose>
       
    57 					<xsl:when test="@výstup = 'xml'">
       
    58 						<!-- XML výstup zpracujeme, jak je: -->
       
    59 						<xsl:apply-templates select="$výstupSkriptu/*"/>
       
    60 					</xsl:when>
       
    61 					<xsl:otherwise>
       
    62 						<!-- Prostý text a XHTML fragmenty dostáváme zabalené v html/body -->
       
    63 						<xsl:apply-templates select="$výstupSkriptu/h:html/h:body/node()"/>
       
    64 					</xsl:otherwise>
       
    65 				</xsl:choose>
    54 			</xsl:when>
    66 			</xsl:when>
    55 
    67 
    56 			<xsl:when test="$režim = 'zakázat'">
    68 			<xsl:when test="$režim = 'zakázat'">
    57 				<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>
    69 				<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>
    58 			</xsl:when>
    70 			</xsl:when>
    59 			<xsl:when test="$režim = 'ignorovat'">
    71 			<xsl:when test="$režim = 'ignorovat'">
    60 				<xsl:message>Stránka obsahuje skripty, ale skripty jsou ignorovány – změnu lze provést ve web.conf.</xsl:message>
    72 				<xsl:message>Stránka obsahuje skripty, ale skripty jsou ignorovány – změnu lze provést ve web.conf.</xsl:message>
    61 			</xsl:when>
    73 			</xsl:when>
    62 			<xsl:when test="$režim = 'vložit' and @výstup = 'xml'">
    74 			<xsl:when test="$režim = 'vložit' and (@výstup = 'xml' or @výstup = 'xhtml')">
    63 				<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>
    75 				<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>
    64 			</xsl:when>
    76 			</xsl:when>
    65 			<xsl:when test="$režim = 'vložit'">
    77 			<xsl:when test="$režim = 'vložit'">
    66 				<span class="vloženýNeinterpretovanýSkript jazyk-{@jazyk}">
    78 				<span class="vloženýNeinterpretovanýSkript jazyk-{@jazyk}">
    67 					<xsl:value-of select="text()"/>
    79 					<xsl:value-of select="text()"/>
    68 				</span>
    80 				</span>
    69 			</xsl:when>
    81 			</xsl:when>
    70 			<xsl:otherwise><!-- varovat = výchozí možnost -->
    82 			<xsl:otherwise><!-- varovat = výchozí možnost -->
    71 				<xsl:choose>
    83 				<xsl:choose>
    72 					<xsl:when test="@výstup = 'xml'">
    84 					<xsl:when test="@výstup = 'xml' or @výstup = 'xhtml'">
    73 						<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>
    85 						<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>
    74 					</xsl:when>
    86 					</xsl:when>
    75 					<xsl:otherwise>
    87 					<xsl:otherwise>
    76 						<xsl:text>[VAROVÁNÍ (</xsl:text>
    88 						<xsl:text>[VAROVÁNÍ (</xsl:text>
    77 						<xsl:value-of select="@jazyk"/>
    89 						<xsl:value-of select="@jazyk"/>