Changeset 77:2f11f0ba6f13

Show
Ignore:
Timestamp:
01/08/12 17:09:50 (8 years ago)
Author:
František Kučera <franta-hg@…>
Branch:
default
Message:

Zjednodušení šablony stránka.xsl (přesun šablon do stránka-společné.xsl) #8.

Location:
šablona
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • šablona/stránka-společné.xsl

    r71 r77  
    3636        <xsl:param name="vsuvkováPřípona" select="'.inc'"/> 
    3737        <xsl:param name="podporaZaostalýchProhlížečů" select="false()" as="xs:boolean"/> 
    38  
     38         
    3939        <xsl:variable name="konfigurace" select="document(concat($vstup, 'web.conf'))"/> 
    4040         
    4141        <xsl:include href=".makra-seznam.xsl"/> 
    4242         
    43          
    44         <!-- Kopírujeme elementy, ale vynecháme nepoužité xmlns deklarace: --> 
     43        <!--  
     44                Kopírujeme elementy, ale vynecháme nepoužité xmlns deklarace:  
     45        --> 
    4546        <xsl:template match="*"> 
    4647                <xsl:element name="{name()}"> 
     
    4849                        <xsl:apply-templates/> 
    4950                </xsl:element> 
    50     </xsl:template> 
     51        </xsl:template> 
    5152     
    52     <!-- Varování pro případ, že jsme v režimu podpory pro zaostalé prohlížeče --> 
    53     <xsl:template name="varováníRetardace"> 
    54         <xsl:if test="$podporaZaostalýchProhlížečů"> 
     53        <!--  
     54                Varování pro případ, že jsme v režimu podpory pro zaostalé prohlížeče  
     55        --> 
     56        <xsl:template name="varováníRetardace"> 
     57                <xsl:if test="$podporaZaostalýchProhlížečů"> 
    5558                        <xsl:comment> 
    5659                                Generátor byl spuštěn v režimu podpory zaostalých prohlížečů. 
     
    5861                                jako je např. Firefox nebo Chromium (případně Opera či Safari). 
    5962                        </xsl:comment> 
    60         </xsl:if> 
    61     </xsl:template> 
     63                </xsl:if> 
     64        </xsl:template> 
     65         
     66        <!--  
     67                Odkazy na JavaScript a kaskádové styly  
     68        -->     
     69        <xsl:template match="k:web/k:js">        
     70                <script src="{text()}" type="text/javascript"> 
     71                        <xsl:call-template name="varováníRetardace"/> 
     72                </script> 
     73        </xsl:template> 
     74        <xsl:template match="k:web/k:css"> 
     75                <link href="{text()}" type="text/css" rel="StyleSheet" /> 
     76        </xsl:template> 
     77     
     78    <!-- 
     79        Vloží nečíslovaný seznam obsahující hlavní nabídku webu (seznam stránek) 
     80        Pro potřeby CSS stylování má nabídka @id='nabídka' 
     81    --> 
     82        <xsl:template name="vložNabídku"> 
     83                <ul id="nabídka"> 
     84                        <xsl:for-each select="collection(concat('./', $vstup ,'/?select=*', $vstupníPřípona))[s:stránka/s:pořadí]"> 
     85                                <xsl:sort select="empty(./s:stránka/s:pořadí)"/> 
     86                                <xsl:sort select="./s:stránka/s:pořadí"/> 
     87                                <li> 
     88                                        <xsl:variable name="xmlSoubor" select="tokenize(document-uri(.), '/')[last()]"/> 
     89                                        <xsl:variable name="xhtmlSoubor" select="replace($xmlSoubor, $vstupníPřípona, $výstupníPřípona)"/> 
     90                                        <a href="{fn:encode-for-uri($xhtmlSoubor)}"><xsl:value-of select="./s:stránka/s:nadpis"/></a> 
     91                                </li> 
     92                        </xsl:for-each> 
     93                </ul> 
     94        </xsl:template> 
     95         
     96        <!-- 
     97                Vloží záhlaví (společné pro všechny stránky) 
     98                Pro potřeby CSS stylování má @id='záhlaví' 
     99        --> 
     100        <xsl:template name="vložZáhlaví"> 
     101                <div id="záhlaví"> 
     102                        <xsl:apply-templates select="document(fn:encode-for-uri(concat($vstup, 'záhlaví', $vsuvkováPřípona)))/s:stránka/h:text/node()"/> 
     103                </div> 
     104        </xsl:template> 
     105         
     106        <!-- 
     107                Vloží zápatí (společné pro všechny stránky) 
     108                Pro potřeby CSS stylování má @id='zápatí' 
     109        --> 
     110        <xsl:template name="vložZápatí"> 
     111                <div id="zápatí"> 
     112                        <xsl:apply-templates select="document(fn:encode-for-uri(concat($vstup, 'zápatí', $vsuvkováPřípona)))/s:stránka/h:text/node()"/> 
     113                </div> 
     114        </xsl:template> 
    62115 
    63     <!-- Odkazy na JavaScript a kaskádové styly -->     
    64     <xsl:template match="k:web/k:js">            
    65         <script src="{text()}" type="text/javascript"> 
    66                 <xsl:call-template name="varováníRetardace"/> 
    67         </script> 
    68     </xsl:template> 
    69     <xsl:template match="k:web/k:css"> 
    70         <link href="{text()}" type="text/css" rel="StyleSheet" /> 
    71     </xsl:template> 
    72      
     116    <!-- 
     117        Vrací cestu v URL kódování, ale lomítka nekóduje 
     118    --> 
    73119    <xsl:function name="m:escapuj-url-zachovej-lomítka" as="xs:string"> 
    74120                <xsl:param name="cesta"/> 
  • šablona/stránka.xsl

    r61 r77  
    5555                        <body> 
    5656                                <div id="tělo"> 
    57                                         <div id="záhlaví"> 
    58                                                 <xsl:apply-templates select="document(fn:encode-for-uri(concat($vstup, 'záhlaví', $vsuvkováPřípona)))/s:stránka/h:text/node()"/> 
    59                                         </div> 
     57                                        <xsl:call-template name="vložZáhlaví"/> 
    6058                                        <div id="vnitřek"> 
    6159                                                <h1><xsl:value-of select="s:stránka/s:nadpis"/></h1> 
    62                                                 <ul id="nabídka"> 
    63                                                         <xsl:for-each select="collection(concat('./', $vstup ,'/?select=*', $vstupníPřípona))[s:stránka/s:pořadí]"> 
    64                                                                 <xsl:sort select="empty(./s:stránka/s:pořadí)"/> 
    65                                                                 <xsl:sort select="./s:stránka/s:pořadí"/> 
    66                                                                 <li> 
    67                                                                         <xsl:variable name="xmlSoubor" select="tokenize(document-uri(.), '/')[last()]"/> 
    68                                                                         <xsl:variable name="xhtmlSoubor" select="replace($xmlSoubor, $vstupníPřípona, $výstupníPřípona)"/> 
    69                                                                         <a href="{fn:encode-for-uri($xhtmlSoubor)}"><xsl:value-of select="./s:stránka/s:nadpis"/></a> 
    70                                                                 </li> 
    71                                                         </xsl:for-each> 
    72                                                 </ul> 
     60                                                <xsl:call-template name="vložNabídku"/> 
    7361                                                <div id="text"> 
    7462                                                        <xsl:apply-templates select="s:stránka/h:text/node()"/> 
    7563                                                </div> 
    7664                                        </div> 
    77                                         <div id="zápatí"> 
    78                                                 <xsl:apply-templates select="document(fn:encode-for-uri(concat($vstup, 'zápatí', $vsuvkováPřípona)))/s:stránka/h:text/node()"/> 
    79                                         </div> 
     65                                        <xsl:call-template name="vložZápatí"/> 
    8066                                </div> 
    8167                        </body>