Changeset 96:8de228c9ac10

Show
Ignore:
Timestamp:
06/23/12 20:12:44 (8 years ago)
Author:
František Kučera <franta-hg@…>
Branch:
default
Message:

#20 Skriptování: nastavení ve web.conf: povolit | zakázat | ignorovat | varovat | vložit

Files:
2 modified

Legend:

Unmodified
Added
Removed
  • vstup/web.conf

    r87 r96  
    2626        <js>js/skript.js</js> 
    2727 
     28        <skriptování> 
     29                <!-- 
     30                        povolit – skripty se vykonají 
     31                        zakázat – skripty se nevykonají a dojde k chybě 
     32                        ignorovat – skripty se v tichosti přeskočí  
     33                        varovat – skripty se v přeskočí a na jejich místo se vloží varování – výchozí možnost 
     34                        vložit – místo výstupu skriptu se vloží jeho zdroják 
     35                --> 
     36                <režim></režim> 
     37        </skriptování> 
    2838</web> 
    2939 
  • šablona/makra/skriptování.xsl

    r95 r96  
    2121        xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro" 
    2222        xmlns:j="java:cz.frantovo.xmlWebGenerator.makra.Skriptování" 
     23        xmlns:k="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/konfigurace" 
    2324        xmlns:s="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana" 
    2425        xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    25         exclude-result-prefixes="m j s"> 
     26        exclude-result-prefixes="m j k s"> 
    2627 
    2728        <!-- 
     
    3233                @jazyk programovací jazyk, např. bash, perl, php 
    3334                @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 
    3535        --> 
    3636        <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                 --> 
    4337                 
    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                                                                                                                 )"/> 
     38                <xsl:variable name="režim" select="$konfigurace/k:web/k:skriptování/k:režim/text()"/> 
     39                 
    5240                <xsl:choose> 
    53                         <xsl:when test="$výstupSkriptu"> 
     41                        <xsl:when test="$režim = 'povolit'"> 
     42                                <xsl:variable name="výstupSkriptu" select="j:interpretuj( 
     43                                                                                                                                        text(), 
     44                                                                                                                                        @jazyk, 
     45                                                                                                                                        @výstup, 
     46                                                                                                                                        document-uri(/), 
     47                                                                                                                                        //s:stránka/s:nadpis/text(), 
     48                                                                                                                                        //s:stránka/s:perex/text() 
     49                                                                                                                                )"/> 
    5450                                <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> 
     51                                        <xsl:when test="$výstupSkriptu"> 
     52                                                <xsl:choose> 
     53                                                        <xsl:when test="@výstup = 'xml'"><xsl:value-of select="$výstupSkriptu" disable-output-escaping="yes"/></xsl:when> 
     54                                                        <xsl:otherwise><xsl:value-of select="$výstupSkriptu"/></xsl:otherwise> 
     55                                                </xsl:choose> 
     56                                        </xsl:when> 
     57                                        <xsl:otherwise> 
     58                                                <xsl:message terminate="yes">Při interpretaci skriptu došlo k chybě.</xsl:message> 
     59                                        </xsl:otherwise> 
    5760                                </xsl:choose> 
    5861                        </xsl:when> 
    59                         <xsl:otherwise> 
    60                                 <xsl:message terminate="yes">Při interpretaci skriptu došlo k chybě.</xsl:message> 
     62 
     63                        <xsl:when test="$režim = 'zakázat'"> 
     64                                <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> 
     65                        </xsl:when> 
     66                        <xsl:when test="$režim = 'ignorovat'"> 
     67                                <xsl:message>Stránka obsahuje skripty, ale skripty jsou ignorovány – změnu lze provést ve web.conf.</xsl:message> 
     68                        </xsl:when> 
     69                        <xsl:when test="$režim = 'vložit' and @výstup = 'xml'"> 
     70                                <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> 
     71                        </xsl:when> 
     72                        <xsl:when test="$režim = 'vložit'"> 
     73                                <span class="vloženýNeinterpretovanýSkript jazyk-{@jazyk}"> 
     74                                        <xsl:value-of select="text()"/> 
     75                                </span> 
     76                        </xsl:when> 
     77                        <xsl:otherwise><!-- varovat = výchozí možnost --> 
     78                                <xsl:choose> 
     79                                        <xsl:when test="@výstup = 'xml'"> 
     80                                                <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> 
     81                                        </xsl:when> 
     82                                        <xsl:otherwise> 
     83                                                <xsl:text>[VAROVÁNÍ (</xsl:text> 
     84                                                <xsl:value-of select="@jazyk"/> 
     85                                                <xsl:text>): skripty jsou vypnuté – lze je zapnout ve web.conf]</xsl:text> 
     86                                                <xsl:message>Skript se neinterpretuje a vkládáme varování do stránky – změnu lze provést ve web.conf</xsl:message> 
     87                                        </xsl:otherwise> 
     88                                </xsl:choose> 
    6189                        </xsl:otherwise> 
    6290                </xsl:choose> 
    63  
    64                  
    6591        </xsl:template> 
    6692