Zjednodušení šablony stránka.xsl (přesun šablon do stránka-společné.xsl) #8.
1.1 --- a/šablona/stránka-společné.xsl Sun Jan 08 16:52:30 2012 +0100
1.2 +++ b/šablona/stránka-společné.xsl Sun Jan 08 17:09:50 2012 +0100
1.3 @@ -35,41 +35,87 @@
1.4 <xsl:param name="výstupníPřípona" select="'.xhtml'"/>
1.5 <xsl:param name="vsuvkováPřípona" select="'.inc'"/>
1.6 <xsl:param name="podporaZaostalýchProhlížečů" select="false()" as="xs:boolean"/>
1.7 -
1.8 +
1.9 <xsl:variable name="konfigurace" select="document(concat($vstup, 'web.conf'))"/>
1.10
1.11 <xsl:include href=".makra-seznam.xsl"/>
1.12
1.13 -
1.14 - <!-- Kopírujeme elementy, ale vynecháme nepoužité xmlns deklarace: -->
1.15 + <!--
1.16 + Kopírujeme elementy, ale vynecháme nepoužité xmlns deklarace:
1.17 + -->
1.18 <xsl:template match="*">
1.19 <xsl:element name="{name()}">
1.20 <xsl:copy-of select="@*"/>
1.21 <xsl:apply-templates/>
1.22 </xsl:element>
1.23 - </xsl:template>
1.24 + </xsl:template>
1.25
1.26 - <!-- Varování pro případ, že jsme v režimu podpory pro zaostalé prohlížeče -->
1.27 - <xsl:template name="varováníRetardace">
1.28 - <xsl:if test="$podporaZaostalýchProhlížečů">
1.29 + <!--
1.30 + Varování pro případ, že jsme v režimu podpory pro zaostalé prohlížeče
1.31 + -->
1.32 + <xsl:template name="varováníRetardace">
1.33 + <xsl:if test="$podporaZaostalýchProhlížečů">
1.34 <xsl:comment>
1.35 Generátor byl spuštěn v režimu podpory zaostalých prohlížečů.
1.36 Uživatelům doporučujeme upgrade na skutečný WWW prohlížeč,
1.37 jako je např. Firefox nebo Chromium (případně Opera či Safari).
1.38 </xsl:comment>
1.39 - </xsl:if>
1.40 - </xsl:template>
1.41 + </xsl:if>
1.42 + </xsl:template>
1.43 +
1.44 + <!--
1.45 + Odkazy na JavaScript a kaskádové styly
1.46 + -->
1.47 + <xsl:template match="k:web/k:js">
1.48 + <script src="{text()}" type="text/javascript">
1.49 + <xsl:call-template name="varováníRetardace"/>
1.50 + </script>
1.51 + </xsl:template>
1.52 + <xsl:template match="k:web/k:css">
1.53 + <link href="{text()}" type="text/css" rel="StyleSheet" />
1.54 + </xsl:template>
1.55 +
1.56 + <!--
1.57 + Vloží nečíslovaný seznam obsahující hlavní nabídku webu (seznam stránek)
1.58 + Pro potřeby CSS stylování má nabídka @id='nabídka'
1.59 + -->
1.60 + <xsl:template name="vložNabídku">
1.61 + <ul id="nabídka">
1.62 + <xsl:for-each select="collection(concat('./', $vstup ,'/?select=*', $vstupníPřípona))[s:stránka/s:pořadí]">
1.63 + <xsl:sort select="empty(./s:stránka/s:pořadí)"/>
1.64 + <xsl:sort select="./s:stránka/s:pořadí"/>
1.65 + <li>
1.66 + <xsl:variable name="xmlSoubor" select="tokenize(document-uri(.), '/')[last()]"/>
1.67 + <xsl:variable name="xhtmlSoubor" select="replace($xmlSoubor, $vstupníPřípona, $výstupníPřípona)"/>
1.68 + <a href="{fn:encode-for-uri($xhtmlSoubor)}"><xsl:value-of select="./s:stránka/s:nadpis"/></a>
1.69 + </li>
1.70 + </xsl:for-each>
1.71 + </ul>
1.72 + </xsl:template>
1.73 +
1.74 + <!--
1.75 + Vloží záhlaví (společné pro všechny stránky)
1.76 + Pro potřeby CSS stylování má @id='záhlaví'
1.77 + -->
1.78 + <xsl:template name="vložZáhlaví">
1.79 + <div id="záhlaví">
1.80 + <xsl:apply-templates select="document(fn:encode-for-uri(concat($vstup, 'záhlaví', $vsuvkováPřípona)))/s:stránka/h:text/node()"/>
1.81 + </div>
1.82 + </xsl:template>
1.83 +
1.84 + <!--
1.85 + Vloží zápatí (společné pro všechny stránky)
1.86 + Pro potřeby CSS stylování má @id='zápatí'
1.87 + -->
1.88 + <xsl:template name="vložZápatí">
1.89 + <div id="zápatí">
1.90 + <xsl:apply-templates select="document(fn:encode-for-uri(concat($vstup, 'zápatí', $vsuvkováPřípona)))/s:stránka/h:text/node()"/>
1.91 + </div>
1.92 + </xsl:template>
1.93
1.94 - <!-- Odkazy na JavaScript a kaskádové styly -->
1.95 - <xsl:template match="k:web/k:js">
1.96 - <script src="{text()}" type="text/javascript">
1.97 - <xsl:call-template name="varováníRetardace"/>
1.98 - </script>
1.99 - </xsl:template>
1.100 - <xsl:template match="k:web/k:css">
1.101 - <link href="{text()}" type="text/css" rel="StyleSheet" />
1.102 - </xsl:template>
1.103 -
1.104 + <!--
1.105 + Vrací cestu v URL kódování, ale lomítka nekóduje
1.106 + -->
1.107 <xsl:function name="m:escapuj-url-zachovej-lomítka" as="xs:string">
1.108 <xsl:param name="cesta"/>
1.109 <xsl:value-of select="replace(encode-for-uri($cesta), '%2F', '/')"/>
2.1 --- a/šablona/stránka.xsl Sun Jan 08 16:52:30 2012 +0100
2.2 +++ b/šablona/stránka.xsl Sun Jan 08 17:09:50 2012 +0100
2.3 @@ -54,29 +54,15 @@
2.4 </head>
2.5 <body>
2.6 <div id="tělo">
2.7 - <div id="záhlaví">
2.8 - <xsl:apply-templates select="document(fn:encode-for-uri(concat($vstup, 'záhlaví', $vsuvkováPřípona)))/s:stránka/h:text/node()"/>
2.9 - </div>
2.10 + <xsl:call-template name="vložZáhlaví"/>
2.11 <div id="vnitřek">
2.12 <h1><xsl:value-of select="s:stránka/s:nadpis"/></h1>
2.13 - <ul id="nabídka">
2.14 - <xsl:for-each select="collection(concat('./', $vstup ,'/?select=*', $vstupníPřípona))[s:stránka/s:pořadí]">
2.15 - <xsl:sort select="empty(./s:stránka/s:pořadí)"/>
2.16 - <xsl:sort select="./s:stránka/s:pořadí"/>
2.17 - <li>
2.18 - <xsl:variable name="xmlSoubor" select="tokenize(document-uri(.), '/')[last()]"/>
2.19 - <xsl:variable name="xhtmlSoubor" select="replace($xmlSoubor, $vstupníPřípona, $výstupníPřípona)"/>
2.20 - <a href="{fn:encode-for-uri($xhtmlSoubor)}"><xsl:value-of select="./s:stránka/s:nadpis"/></a>
2.21 - </li>
2.22 - </xsl:for-each>
2.23 - </ul>
2.24 + <xsl:call-template name="vložNabídku"/>
2.25 <div id="text">
2.26 <xsl:apply-templates select="s:stránka/h:text/node()"/>
2.27 </div>
2.28 </div>
2.29 - <div id="zápatí">
2.30 - <xsl:apply-templates select="document(fn:encode-for-uri(concat($vstup, 'zápatí', $vsuvkováPřípona)))/s:stránka/h:text/node()"/>
2.31 - </div>
2.32 + <xsl:call-template name="vložZápatí"/>
2.33 </div>
2.34 </body>
2.35 </html>