28 Skriptování |
28 Skriptování |
29 *********** |
29 *********** |
30 Provedeme skript zadaný v těle elementu a jeho výstup vložíme do stránky. |
30 Provedeme skript zadaný v těle elementu a jeho výstup vložíme do stránky. |
31 * |
31 * |
32 @jazyk programovací jazyk, např. bash, perl, php |
32 @jazyk programovací jazyk, např. bash, perl, php |
|
33 @výstup formát výstupu skriptu: text (výchozí) | xml (musí být validním fragmentem XML) |
33 @src skript uložený v souboru místo v těle elementu |
34 @src skript uložený v souboru místo v těle elementu |
34 --> |
35 --> |
35 <xsl:template match="m:skript"> |
36 <xsl:template match="m:skript"> |
36 <!-- |
37 <!-- |
37 TODO: |
38 TODO: |
38 - ošetření chyb |
39 - ošetření chyb |
39 - nastavení z web.conf (zákaz nebo ignorace skriptů) |
40 - nastavení z web.conf (zákaz nebo ignorace skriptů) |
40 - podpora vkládání fragmentů XML, ne jen prostého textu |
41 - podpora vkládání fragmentů XML, ne jen prostého textu |
41 --> |
42 --> |
42 <xsl:value-of select="j:interpretuj(text(), @jazyk, document-uri(/), //s:stránka/s:nadpis/text(), //s:stránka/s:perex/text())"/> |
43 |
|
44 <xsl:variable name="výstupSkriptu" select="j:interpretuj( |
|
45 text(), |
|
46 @jazyk, |
|
47 @výstup, |
|
48 document-uri(/), |
|
49 //s:stránka/s:nadpis/text(), |
|
50 //s:stránka/s:perex/text() |
|
51 )"/> |
|
52 <xsl:choose> |
|
53 <xsl:when test="$výstupSkriptu"> |
|
54 <xsl:choose> |
|
55 <xsl:when test="@výstup = 'xml'"><xsl:value-of select="$výstupSkriptu" disable-output-escaping="yes"/></xsl:when> |
|
56 <xsl:otherwise><xsl:value-of select="$výstupSkriptu"/></xsl:otherwise> |
|
57 </xsl:choose> |
|
58 </xsl:when> |
|
59 <xsl:otherwise> |
|
60 <xsl:message terminate="yes">Při interpretaci skriptu došlo k chybě.</xsl:message> |
|
61 </xsl:otherwise> |
|
62 </xsl:choose> |
|
63 |
|
64 |
43 </xsl:template> |
65 </xsl:template> |
44 |
66 |
45 </xsl:stylesheet> |
67 </xsl:stylesheet> |
46 |
68 |