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