root/šablona/makra/skriptování.xsl @ 95:eea9c4713045

Revision 95:eea9c4713045, 2.4 KB (checked in by František Kučera <franta-hg@…>, 12 years ago)

#20 Skriptování: podpora výstupu ve formátu XML (musí být validní)

Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3XML Web generátor – program na generování webových stránek
4Copyright © 2012 František Kučera (frantovo.cz)
5
6This program is free software: you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation, either version 3 of the License, or
9(at your option) any later version.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with this program.  If not, see <http://www.gnu.org/licenses/>.
18-->
19<xsl:stylesheet version="2.0"
20        xmlns="http://www.w3.org/1999/xhtml"
21        xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
22        xmlns:j="java:cz.frantovo.xmlWebGenerator.makra.Skriptování"
23        xmlns:s="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
24        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
25        exclude-result-prefixes="m j s">
26
27        <!--
28                Skriptování
29                ***********
30                Provedeme skript zadaný v těle elementu a jeho výstup vložíme do stránky.
31                *
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)
34                @src skript uložený v souboru místo v těle elementu
35        -->
36        <xsl:template match="m:skript">
37                <!--
38                TODO:
39                        - ošetření chyb
40                        - nastavení z web.conf (zákaz nebo ignorace skriptů)
41                        - podpora vkládání fragmentů XML, ne jen prostého textu
42                -->
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               
65        </xsl:template>
66
67</xsl:stylesheet>
68
Note: See TracBrowser for help on using the browser.