Zjednodušení šablony stránka.xsl (přesun šablon do stránka-společné.xsl) #8.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sun, 08 Jan 2012 17:09:50 +0100
changeset 772f11f0ba6f13
parent 76 c7746d95283d
child 78 7e478bfa5694
Zjednodušení šablony stránka.xsl (přesun šablon do stránka-společné.xsl) #8.
šablona/stránka-společné.xsl
šablona/stránka.xsl
     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>