home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 November / PCWorld_2003-11_cd.bin / Komunik / apache / apache_2.0.47-win32-x86-no_ssl.msi / Data.Cab / F251392_directiveindex.xsl < prev    next >
Extensible Markup Language  |  2003-05-29  |  7KB  |  166 lines

  1. <?xml version="1.0"?><!--
  2. /* ====================================================================
  3.  * The Apache Software License, Version 1.1
  4.  *
  5.  * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights
  6.  * reserved.
  7.  *
  8.  * Redistribution and use in source and binary forms, with or without
  9.  * modification, are permitted provided that the following conditions
  10.  * are met:
  11.  *
  12.  * 1. Redistributions of source code must retain the above copyright
  13.  *    notice, this list of conditions and the following disclaimer.
  14.  *
  15.  * 2. Redistributions in binary form must reproduce the above copyright
  16.  *    notice, this list of conditions and the following disclaimer in
  17.  *    the documentation and/or other materials provided with the
  18.  *    distribution.
  19.  *
  20.  * 3. The end-user documentation included with the redistribution,
  21.  *    if any, must include the following acknowledgment:
  22.  *       "This product includes software developed by the
  23.  *        Apache Software Foundation (http://www.apache.org/)."
  24.  *    Alternately, this acknowledgment may appear in the software itself,
  25.  *    if and wherever such third-party acknowledgments normally appear.
  26.  *
  27.  * 4. The names "Apache" and "Apache Software Foundation" must
  28.  *    not be used to endorse or promote products derived from this
  29.  *    software without prior written permission. For written
  30.  *    permission, please contact apache@apache.org.
  31.  *
  32.  * 5. Products derived from this software may not be called "Apache",
  33.  *    nor may "Apache" appear in their name, without prior written
  34.  *    permission of the Apache Software Foundation.
  35.  *
  36.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  37.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  38.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  39.  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  40.  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  41.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  42.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  43.  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  44.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  45.  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  46.  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  47.  * SUCH DAMAGE.
  48.  * ====================================================================
  49.  *
  50.  * This software consists of voluntary contributions made by many
  51.  * individuals on behalf of the Apache Software Foundation.  For more
  52.  * information on the Apache Software Foundation, please see
  53.  * <http://www.apache.org/>.
  54.  */ -->
  55. <!DOCTYPE xsl:stylesheet [
  56.     <!ENTITY lf SYSTEM "util/lf.xml">
  57. ]>
  58. <xsl:stylesheet version="1.0"
  59.               xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  60.                   xmlns="http://www.w3.org/1999/xhtml">
  61.  
  62. <!-- ==================================================================== -->
  63. <!-- <directiveindex>                                                     -->
  64. <!-- Builds the directive index page                                      -->
  65. <!-- ==================================================================== -->
  66. <xsl:template match="directiveindex">
  67. <html xml:lang="{$messages/@lang}" lang="{$messages/@lang}">
  68.     <xsl:call-template name="head"/>&lf;
  69.  
  70.     <body id="directive-index">
  71.         <xsl:call-template name="top"/>
  72.  
  73.         <xsl:variable name="directives"
  74.             select="document(modulefilelist/modulefile)
  75.                         /modulesynopsis[status!='Obsolete']
  76.                         /directivesynopsis[not(@location)]" />
  77.  
  78.         <!-- collect the start letters -->
  79.         <xsl:variable name="start-letters">
  80.             <xsl:call-template name="directive-startletters">
  81.                 <xsl:with-param name="directives" select="$directives" />
  82.             </xsl:call-template>
  83.         </xsl:variable>
  84.  
  85.         <div id="preamble">
  86.             <h1>
  87.                 <xsl:value-of select="title" />
  88.             </h1>&lf;
  89.  
  90.             <xsl:call-template name="langavail" />&lf;
  91.  
  92.             <xsl:apply-templates select="summary" />&lf;
  93.  
  94.             <!-- letter bar -->
  95.             <p class="letters">
  96.                 <xsl:call-template name="letter-bar">
  97.                     <xsl:with-param name="letters" select="$start-letters" />
  98.                     <xsl:with-param name="first" select="true()" />
  99.                 </xsl:call-template>
  100.             </p>&lf; <!-- /.letters -->
  101.         </div>&lf; <!-- /preamble -->
  102.  
  103.         <div id="directive-list">
  104.             <ul>&lf;
  105.                 <xsl:call-template name="dindex-of-letter">
  106.                     <xsl:with-param name="letters-todo"
  107.                         select="$start-letters" />
  108.                     <xsl:with-param name="directives" select="$directives" />
  109.                 </xsl:call-template>
  110.             </ul>
  111.         </div>&lf; <!-- /#directive-list -->
  112.  
  113.         <xsl:call-template name="bottom" />&lf;
  114.     </body>
  115. </html>
  116. </xsl:template>
  117. <!-- /directiveindex -->
  118.  
  119.  
  120. <!-- ==================================================================== -->
  121. <!-- the working horse. builds list items of all directives starting with -->
  122. <!-- one letter when done, it calls itself to catch the next letter       -->
  123. <!-- ==================================================================== -->
  124. <xsl:template name="dindex-of-letter">
  125. <xsl:param name="letters-todo" />
  126. <xsl:param name="directives" />
  127.  
  128. <xsl:variable name="letter" select="substring($letters-todo, 1, 1)"/>
  129.  
  130. <xsl:for-each
  131.     select="$directives
  132.                 [$letter = translate(substring(normalize-space(name), 1, 1),
  133.                                      $lowercase, $uppercase)]">
  134. <xsl:sort select="name" />
  135.     <li>
  136.         <a href="{../name}.html#{translate(name, $uppercase, $lowercase)}">
  137.             <xsl:if test="position() = 1">
  138.                 <xsl:attribute name="id">
  139.                     <xsl:value-of select="$letter" />
  140.                 </xsl:attribute>
  141.                 <xsl:attribute name="name">
  142.                     <xsl:value-of select="$letter" />
  143.                 </xsl:attribute>
  144.             </xsl:if>
  145.  
  146.             <xsl:if test="@type = 'section'"><</xsl:if>
  147.             <xsl:value-of select="name" />
  148.             <xsl:if test="@type = 'section'">></xsl:if>
  149.         </a>
  150.     </li>&lf;
  151. </xsl:for-each>
  152.  
  153. <!-- call next letter, if there is -->
  154. <xsl:if test="string-length($letters-todo) > 1">
  155.     <xsl:call-template name="dindex-of-letter">
  156.         <xsl:with-param name="letters-todo"
  157.             select="substring($letters-todo, 2)" />
  158.         <xsl:with-param name="directives" select="$directives" />
  159.     </xsl:call-template>
  160. </xsl:if>
  161.  
  162. </xsl:template>
  163. <!-- /dindex-of-letter -->
  164.  
  165. </xsl:stylesheet>
  166.