home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 May / PCWorld_2003-05_cd.bin / Komunik / apache / apache_2.0.45-win32-x86-no_ssl.msi / Data.Cab / F233079_sitemap.xsl < prev    next >
Extensible Markup Language  |  2002-12-22  |  9KB  |  305 lines

  1. <?xml version="1.0"?>
  2. <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
  3. <xsl:stylesheet version="1.0"
  4.               xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  5.                   xmlns="http://www.w3.org/1999/xhtml">
  6.  
  7.   <!-- document() works relative to the xsl (!) file -->
  8.   <xsl:variable name="basedir" select="'../../'"/>
  9.  
  10.  
  11.   <!--                                                    -->
  12.   <!-- <sitemap>                                          -->
  13.   <!-- Process an entire document into an HTML page       -->
  14.   <!--                                                    -->
  15.   <xsl:template match="/sitemap">
  16.     <html xml:lang="{$messages/@lang}" lang="{$messages/@lang}">
  17.       <xsl:call-template name="head"/>
  18.  
  19. <xsl:text>
  20. </xsl:text> <!-- insert line break -->
  21.  
  22.       <body id="manual-page">
  23.  
  24. <xsl:text>
  25. </xsl:text> <!-- insert line break -->
  26.  
  27.         <xsl:call-template name="top"/>          
  28.  
  29. <xsl:text>
  30. </xsl:text> <!-- insert line break -->
  31.  
  32.         <div id="page-content">
  33.           <div id="preamble">        
  34.             <h1>
  35.               <xsl:value-of select="title"/>
  36.             </h1>
  37.  
  38. <xsl:text>
  39. </xsl:text> <!-- insert line break -->
  40.  
  41.             <xsl:apply-templates select="summary"/>
  42.           </div> <!-- /preamble -->
  43.           
  44. <xsl:text>
  45. </xsl:text> <!-- insert line break -->
  46.  
  47.           <xsl:if test="count(category) > 1 or seealso">
  48.             <div id="quickview">
  49.               <xsl:if test="count(category) > 1">
  50.  
  51.                 <!-- category index -->
  52.                 <ul id="toc">
  53.  
  54. <xsl:text>
  55. </xsl:text> <!-- insert line break -->
  56.  
  57.                   <xsl:for-each select="category">
  58.                     <xsl:if test="@id">
  59.                       <li>
  60.                         <img src="{$path}/images/down.gif" alt="" />
  61.                         <xsl:text> </xsl:text>
  62.                         <a href="#{@id}">
  63.                           <xsl:apply-templates select="title" mode="print"/>
  64.                         </a>
  65.                       </li>
  66.  
  67. <xsl:text>
  68. </xsl:text> <!-- insert line break -->
  69.  
  70.                     </xsl:if>
  71.  
  72.                     <xsl:if test="not(@id)">
  73.                       <li>
  74.                         <img src="{$path}/images/down.gif" alt="" />
  75.                         <xsl:text> </xsl:text>
  76.                         <xsl:apply-templates select="title" mode="print"/>
  77.                       </li>
  78.  
  79. <xsl:text>
  80. </xsl:text> <!-- insert line break -->
  81.  
  82.                     </xsl:if>
  83.                   </xsl:for-each>
  84.                 </ul>
  85.  
  86. <xsl:text>
  87. </xsl:text> <!-- insert line break -->
  88.  
  89.               </xsl:if>
  90.  
  91.               <xsl:if test="seealso">
  92.                 <h3>
  93.                   <xsl:value-of select="$messages/message[@name='seealso']"/>
  94.                 </h3>
  95.  
  96. <xsl:text>
  97. </xsl:text> <!-- insert line break -->
  98.  
  99.                 <ul class="seealso">
  100. <xsl:text>
  101. </xsl:text> <!-- insert line break -->
  102.  
  103.                   <xsl:for-each select="seealso">
  104.                     <li>
  105.                       <xsl:apply-templates/>
  106.                     </li>
  107.  
  108. <xsl:text>
  109. </xsl:text> <!-- insert line break -->
  110.  
  111.                   </xsl:for-each>
  112.                 </ul>
  113.  
  114. <xsl:text>
  115. </xsl:text> <!-- insert line break -->
  116.  
  117.               </xsl:if>
  118.  
  119.         </div> <!-- /quickview -->
  120.  
  121. <xsl:text>
  122. </xsl:text> <!-- insert line break -->
  123.  
  124.           </xsl:if>
  125.  
  126.           <xsl:apply-templates select="category"/>
  127.         </div> <!-- /page-content -->
  128.  
  129. <xsl:text>
  130. </xsl:text> <!-- insert line break -->
  131.  
  132.         <xsl:call-template name="bottom"/>
  133.  
  134. <xsl:text>
  135. </xsl:text> <!-- insert line break -->
  136.  
  137.       </body>
  138.     </html>
  139.   </xsl:template>
  140.   
  141.  
  142.   <!--                                                    -->
  143.   <!-- category/page                                      -->
  144.   <!--                                                    -->
  145.   <xsl:template match="category/page">
  146.     <li>
  147.       <xsl:if test="@separate='yes'">
  148.         <xsl:attribute name="class">separate</xsl:attribute>
  149.       </xsl:if>
  150.  
  151.       <xsl:if test="@href">
  152.         <a href="{@href}">
  153.           <xsl:value-of select="."/>
  154.         </a>
  155.       </xsl:if>
  156.       <xsl:if test="not(@href)">
  157.         <xsl:value-of select="."/>
  158.       </xsl:if>
  159.     </li>
  160.  
  161. <xsl:text>
  162. </xsl:text> <!-- insert line break -->
  163.  
  164.   </xsl:template>
  165.   <!-- /category/page -->
  166.  
  167.  
  168.   <!--                                                            -->
  169.   <!-- Process a sitemap category                                 -->
  170.   <!--                                                            -->
  171.   <xsl:template match="category">
  172.  
  173.     <xsl:call-template name="toplink"/>
  174.  
  175. <xsl:text>
  176. </xsl:text> <!-- insert line break -->
  177.  
  178.     <div class="section">
  179.  
  180.       <!-- Section heading -->
  181.       <h2>
  182.         <xsl:if test="@id">
  183.           <a id="{@id}" name="{@id}">
  184.             <xsl:apply-templates select="title" mode="print"/>
  185.           </a>
  186.         </xsl:if>
  187.  
  188.         <xsl:if test="not(@id)">
  189.           <xsl:apply-templates select="title" mode="print"/>
  190.         </xsl:if>
  191.       </h2>
  192.  
  193. <xsl:text>
  194. </xsl:text> <!-- insert line break -->
  195.  
  196.       <!-- category body -->
  197.       <ul>
  198.         <xsl:apply-templates select="page"/>
  199.       </ul>
  200.       
  201.       <xsl:apply-templates select="modulefilelist"/>
  202.  
  203. <xsl:text>
  204. </xsl:text> <!-- insert line break -->
  205.  
  206.     </div> <!-- /.section -->
  207.   </xsl:template>
  208.   <!-- /category -->
  209.  
  210.  
  211.   <!--                                                    -->
  212.   <!-- category/modulefilelist                            -->
  213.   <!-- insert module list into sitemap                    -->
  214.   <!--                                                    -->
  215.   <xsl:template match="category/modulefilelist">
  216.  
  217.     <!-- create our own translation list first -->
  218.     <xsl:variable name="translist">
  219.       <xsl:text>-</xsl:text>
  220.  
  221.       <xsl:for-each select="modulefile">
  222.         <xsl:variable name="current" select="document(concat($basedir,'mod/',.))/modulesynopsis" />
  223.    
  224.         <xsl:text> </xsl:text>
  225.         <xsl:value-of select="$current/name"/>
  226.         <xsl:text> </xsl:text>
  227.         <xsl:call-template name="module-translatename">
  228.           <xsl:with-param name="name" select="$current/name"/>
  229.         </xsl:call-template>
  230.         <xsl:text> -</xsl:text>
  231.       </xsl:for-each>
  232.     </xsl:variable>
  233.  
  234.     <ul>
  235.       <!-- put core and mpm_common on top -->
  236.       <li>
  237.         <a href="mod/core.html">
  238.           <xsl:value-of select="$messages/message[@name='apachecore']"/>
  239.         </a>
  240.       </li>
  241.  
  242. <xsl:text>
  243. </xsl:text> <!-- insert line break -->
  244.  
  245.       <li>
  246.         <a href="mod/mpm_common.html">
  247.           <xsl:value-of select="$messages/message[@name='apachempmcommon']"/>
  248.         </a>
  249.       </li>
  250.  
  251. <xsl:text>
  252. </xsl:text> <!-- insert line break -->
  253.  
  254.       <xsl:for-each select="modulefile">
  255.       <xsl:sort select="substring-before(substring-after($translist, concat('- ', document(concat($basedir,'mod/',.))/modulesynopsis/name, ' ')), ' -')"/>
  256.  
  257.         <xsl:variable name="current" select="document(concat($basedir,'mod/',.))/modulesynopsis" />
  258.  
  259.         <xsl:if test="$current/status='MPM' and $current/name!='mpm_common'">
  260.           <xsl:variable name="name" select="substring-before(substring-after($translist, concat('- ', $current/name, ' ')), ' -')"/>
  261.  
  262.           <li>
  263.             <a href="mod/{$current/name}.html">
  264.               <xsl:value-of select="$messages/message[@name='apachempm']"/>
  265.               <xsl:text> </xsl:text>
  266.               <xsl:value-of select="$name"/>
  267.             </a>
  268.           </li>
  269.  
  270. <xsl:text>
  271. </xsl:text> <!-- insert line break -->
  272.  
  273.         </xsl:if>
  274.       </xsl:for-each>
  275.     </ul>
  276.     <!-- /core, mpm -->
  277.  
  278.     <ul>
  279.       <xsl:for-each select="modulefile">
  280.       <xsl:sort select="substring-before(substring-after($translist, concat('- ', document(concat($basedir,'mod/',.))/modulesynopsis/name, ' ')), ' -')"/>
  281.  
  282.         <xsl:variable name="current" select="document(concat($basedir,'mod/',.))/modulesynopsis" />
  283.  
  284.         <xsl:if test="$current/status!='MPM' and $current/status!='Core' and $current/status!='Obsolete'">
  285.           <li>
  286.             <a href="mod/{$current/name}.html">
  287.               <xsl:value-of select="$messages/message[@name='apachemodule']"/>
  288.               <xsl:text> </xsl:text>
  289.               <xsl:value-of select="$current/name"/>
  290.             </a>
  291.           </li>
  292.  
  293. <xsl:text>
  294. </xsl:text> <!-- insert line break -->
  295.  
  296.         </xsl:if>
  297.       </xsl:for-each>
  298.     </ul>
  299.     <!-- /other modules -->
  300.  
  301.   </xsl:template>
  302.   <!-- /category/modulefilelist -->
  303.  
  304. </xsl:stylesheet>
  305.