Changeset 96:8de228c9ac10
- Timestamp:
- 06/23/12 20:12:44 (13 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:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r87
|
r96
|
|
| 26 | 26 | <js>js/skript.js</js> |
| 27 | 27 | |
| | 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í> |
| 28 | 38 | </web> |
| 29 | 39 | |
-
|
r95
|
r96
|
|
| 21 | 21 | xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro" |
| 22 | 22 | xmlns:j="java:cz.frantovo.xmlWebGenerator.makra.Skriptování" |
| | 23 | xmlns:k="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/konfigurace" |
| 23 | 24 | xmlns:s="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana" |
| 24 | 25 | xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
| 25 | | exclude-result-prefixes="m j s"> |
| | 26 | exclude-result-prefixes="m j k s"> |
| 26 | 27 | |
| 27 | 28 | <!-- |
| … |
… |
|
| 32 | 33 | @jazyk programovací jazyk, např. bash, perl, php |
| 33 | 34 | @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 | 35 | --> |
| 36 | 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 | 37 | |
| 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 | |
| 52 | 40 | <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 | )"/> |
| 54 | 50 | <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> |
| 57 | 60 | </xsl:choose> |
| 58 | 61 | </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> |
| 61 | 89 | </xsl:otherwise> |
| 62 | 90 | </xsl:choose> |
| 63 | | |
| 64 | | |
| 65 | 91 | </xsl:template> |
| 66 | 92 | |