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"/> |