tom             Sun Mar  9 10:01:15 2003 EDT

  Added files:                 
    /phpdoc/xsl bightml.xsl html.xsl param_html.xsl 

  Removed files:               
    /phpdoc/xsl bightml.xsl.in html.xsl.in 

  Modified files:              
    /phpdoc/xsl common.xsl html-common.xsl 
    /phpdoc/xsl/docbook README VERSION 
  Log:
  new adaptation of some docbook-xsl-stylesheets
  
Index: phpdoc/xsl/common.xsl
diff -u phpdoc/xsl/common.xsl:1.6 phpdoc/xsl/common.xsl:1.7
--- phpdoc/xsl/common.xsl:1.6   Sun Feb 10 07:57:56 2002
+++ phpdoc/xsl/common.xsl       Sun Mar  9 10:01:13 2003
@@ -1,79 +1,48 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 <!-- 
 
-  Common customizations for all formats
-
-  $Id: common.xsl,v 1.6 2002/02/10 12:57:56 goba Exp $
+  common.xsl: Common customizations for all formats
 
 -->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                 version="1.0">
 
-<!-- Configuration parameters -->
-<xsl:param name="funcsynopsis.style" select="'ansi'"/>
-<xsl:param name="funcsynopsis.decoration" select="'1'"/>
-<xsl:param name="refentry.generate.name" select="'0'"/>
 
-<!-- Turn off separators on reference and refentry pages -->
-<xsl:param name="refentry.separator" select="'0'"/>
-<xsl:template name="reference.titlepage.separator"/>
+<!-- Set the LANGUAGE for autom. generated text -->
+<xsl:param name="l10n.gentext.language" select="/book/@lang"/>
 
-<!-- Start numbering in every part, toc to 2 section depth -->
-<xsl:param name="label.from.part" select="'1'"/>
+<!-- temporary till also this is in std.-distrib. -->
+<xsl:template match="titleabbrev"></xsl:template>
 
-<!-- Load version information into variable -->
-<xsl:param name="version" select="document('version.xml')/versions"/>
+<!-- Start NUMBERING (e.g. chapters) in every part -->
+<xsl:param name="label.from.part" select="'0'"/>
 
-<!-- We do not want semicolon at the end of prototype and our own style
-     of square brackets for optional parameters -->
-<xsl:template match="paramdef/parameter">
-  <xsl:apply-templates />
-</xsl:template>
+<!-- Colorize background for programlisting and screens -->
+<xsl:param name="shade.verbatim" select="1"/>
 
-<xsl:template match="paramdef/parameter/optional">
-  <xsl:apply-templates />
-</xsl:template>
+<!-- REFENTRIES: make functionnames the title -->
+<xsl:param name="refentry.generate.name" select="'0'"/>
+<xsl:param name="refentry.generate.title" select="1"/>
+
+<!-- Load VERSION INFORMATION into variable -->
+<xsl:param name="version" select="document('version.xml')/versions"/>
 
-<xsl:template match="paramdef">
-  <xsl:if test="preceding-sibling::paramdef=false()">(</xsl:if>
-  <xsl:apply-templates />
-  <xsl:choose>
-    <xsl:when test="following-sibling::paramdef">
-      <xsl:choose>
-        <xsl:when 
test="following-sibling::paramdef[position()=1]/child::parameter/child::optional">
-          <xsl:text> [, </xsl:text>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:text>, </xsl:text>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:for-each 
select="preceding-sibling::paramdef/child::parameter/child::optional">
-        <xsl:text>]</xsl:text>
-      </xsl:for-each>
-      <xsl:if test="child::parameter/child::optional">
-        <xsl:text>]</xsl:text>
-      </xsl:if>
-      <xsl:text>)</xsl:text>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
 
-<!-- same for docbook 4 style protos -->
+<!-- PROTOTYPES: PHP-Version without semicolon, etc. 
+     note: methodparams are separated in html-common and fo -->
 <xsl:template match="methodsynopsis">
   <xsl:apply-templates />
 </xsl:template>
 
-<xsl:template match="methodsynopsis/void">
-  <xsl:text>(void)</xsl:text>
-</xsl:template>
-
 <xsl:template match="methodsynopsis/type">
   <xsl:apply-templates />
   <xsl:text> </xsl:text>
 </xsl:template>
 
+<xsl:template match="methodsynopsis/void">
+  <xsl:text> (void)</xsl:text>
+</xsl:template>
+
 <xsl:template match="methodparam/type">
   <xsl:apply-templates />
   <xsl:text> </xsl:text>
@@ -84,7 +53,12 @@
 </xsl:template>
 
 <xsl:template match="methodparam">
-  <xsl:if test="preceding-sibling::methodparam=false()">(</xsl:if>
+  <xsl:if test="preceding-sibling::methodparam=false()">
+    <xsl:text> (</xsl:text>
+    <xsl:if test="@choice='opt'">
+      <xsl:text>[</xsl:text>
+    </xsl:if>
+  </xsl:if>
   <xsl:apply-templates />
   <xsl:choose>
     <xsl:when test="following-sibling::methodparam">
@@ -101,12 +75,31 @@
       <xsl:for-each 
select="preceding-sibling::methodparam/attribute::choice[.='opt']">
         <xsl:text>]</xsl:text>
       </xsl:for-each>
-      <xsl:if test="child::methodparam/attribute::choice[.='opt']">
+      <xsl:if test="self::methodparam/attribute::choice[.='opt']">
         <xsl:text>]</xsl:text>
       </xsl:if>
       <xsl:text>)</xsl:text>
     </xsl:otherwise>
   </xsl:choose>
 </xsl:template>
+
+
+<!-- for the list of TRANSLATORS -->
+<xsl:template match="collab" mode="titlepage.mode">
+  <xsl:choose>
+    <xsl:when test="position()=last()">
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:when test="position() &gt; 1">
+      <xsl:apply-templates/><xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="collabname">
+  <xsl:apply-templates/>
+</xsl:template>
+
 
 </xsl:stylesheet>
Index: phpdoc/xsl/html-common.xsl
diff -u phpdoc/xsl/html-common.xsl:1.19 phpdoc/xsl/html-common.xsl:1.20
--- phpdoc/xsl/html-common.xsl:1.19     Fri Aug 30 08:56:02 2002
+++ phpdoc/xsl/html-common.xsl  Sun Mar  9 10:01:13 2003
@@ -1,35 +1,32 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 <!-- 
 
-  Common HTML customizations
-
-  $Id: html-common.xsl,v 1.19 2002/08/30 12:56:02 goba Exp $
+  html-common.xsl: Common HTML customizations
 
 -->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                 version="1.0">
 
 <xsl:include href="common.xsl"/>
+<xsl:include href="param_html.xsl"/>
 
 <!-- We do not want style="" atts to appear in HTML output -->
 <xsl:param name="admon.style" select="''"/>
 
-<!-- We do not want extra head links in HTML -->
-<xsl:param name="html.extra.head.links" select="0"/>
 
-<!-- This differs from the default as the ",figure,table,example,equation"
-     is missing after the book toc (for comformance with the DSSSL output).
--->
+<!-- ==========================   TOC   =================================== -->
+
+<!-- Supress the ",figure,example,equation" (like DSSSL output). -->
 <xsl:param name="generate.toc">
-appendix  toc
+appendix  toc,title
 article   toc
-book      toc
-chapter   toc
-part      toc
+book      toc,title
+chapter   toc,title
+part      toc,title
 preface   toc
 qandadiv  toc
 qandaset  toc
-reference toc
+reference toc,title
 sect1     toc
 sect2     toc
 sect3     toc
@@ -39,224 +36,571 @@
 set       toc
 </xsl:param>
 
-<!-- This makes the generation a bit faster (no file name printouts) -->
-<xsl:param name="chunk.quietly">1</xsl:param>
 
-<!-- Enclose functions in links, add parenthesis -->
-<xsl:template match="function">
+<!-- Make the TOC-depths like in the DSSSL-version -->
+<xsl:param name="toc.max.depth" select="1"/>
+
+<xsl:template name="subtoc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="nodes" select="NOT-AN-ELEMENT"/>
+
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates mode="toc" select="$nodes">
+        <xsl:with-param name="toc-context" select="$toc-context"/>
+      </xsl:apply-templates>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="depth">
+    <xsl:choose>
+      <xsl:when test="local-name(.) = 'section'">
+        <xsl:value-of select="count(ancestor::section) + 1"/>
+      </xsl:when>
+      <xsl:when test="local-name(.) = 'sect1'">1</xsl:when>
+      <xsl:when test="local-name(.) = 'sect2'">2</xsl:when>
+      <xsl:when test="local-name(.) = 'sect3'">3</xsl:when>
+      <xsl:when test="local-name(.) = 'sect4'">4</xsl:when>
+      <xsl:when test="local-name(.) = 'sect5'">5</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect1'">1</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect2'">2</xsl:when>
+      <xsl:when test="local-name(.) = 'refsect3'">3</xsl:when>
+      <xsl:when test="local-name(.) = 'simplesect'">
+        <!-- sigh... -->
+        <xsl:choose>
+          <xsl:when test="local-name(..) = 'section'">
+            <xsl:value-of select="count(ancestor::section)"/>
+          </xsl:when>
+          <xsl:when test="local-name(..) = 'sect1'">2</xsl:when>
+          <xsl:when test="local-name(..) = 'sect2'">3</xsl:when>
+          <xsl:when test="local-name(..) = 'sect3'">4</xsl:when>
+          <xsl:when test="local-name(..) = 'sect4'">5</xsl:when>
+          <xsl:when test="local-name(..) = 'sect5'">6</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect1'">2</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect2'">3</xsl:when>
+          <xsl:when test="local-name(..) = 'refsect3'">4</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>0</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="depth.from.context" 
select="count(ancestor::*)-count($toc-context/ancestor::*)"/>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="my.toc.max.depth">
+    <xsl:choose>
+      <xsl:when test="local-name(..) = 'book'">2</xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$toc.max.depth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:variable name="label">
+      <xsl:apply-templates select="." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:copy-of select="$label"/>
+    <xsl:if test="$label != ''">
+      <xsl:value-of select="$autotoc.label.separator"/>
+    </xsl:if>
+
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="context" select="$toc-context"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.markup"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth > $depth and count($nodes)&gt;0
+                  and $my.toc.max.depth > $depth.from.context">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth > $depth and count($nodes)&gt;0
+                and $my.toc.max.depth > $depth.from.context">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- =======================    END TOC   ================================= -->
+
+<!-- =======================   TITLEPAGE  ================================= -->
+
+<!-- Let authors, editor, and translators look similar to DSSSL-version -->
+<xsl:template match="author|editor" mode="titlepage.mode">
+  <xsl:call-template name="person.name"/><br/>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode">
   <xsl:choose>
-    <xsl:when test="name(parent::*)!='funcdef'">
-      <xsl:choose>
-        <xsl:when 
test="ancestor::refentry/refnamediv/refname=translate(current(),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')">
-          <xsl:call-template name="inline.boldseq">
-            <xsl:with-param name="content">
-              <xsl:apply-templates/>
-              <xsl:text>()</xsl:text>
-            </xsl:with-param>
-          </xsl:call-template>
-        </xsl:when>
-        <xsl:otherwise>
-          <a>
-            <xsl:attribute name="href">
-              <xsl:call-template name="href.target">
-                <xsl:with-param name="object" select="id(concat('function.', 
translate(string(current()),'_','-')))"/> 
-              </xsl:call-template>
-            </xsl:attribute>
-            <xsl:call-template name="inline.boldseq">
-              <xsl:with-param name="content">
-                <xsl:apply-templates/>
-                <xsl:text>()</xsl:text>
-              </xsl:with-param>
-            </xsl:call-template>
-          </a>
-        </xsl:otherwise>
-      </xsl:choose>
+    <xsl:when test="@id='authors'">
+      <xsl:call-template name="anchor"/>
+      <h3><xsl:call-template name="gentext.by"/></h3>
+      <p><xsl:apply-templates select="." mode="titlepage.mode"/></p>
+    </xsl:when>
+    <xsl:when test="@id='editors'">
+      <h3><xsl:call-template name="gentext.edited.by"/></h3>
+      <p><xsl:apply-templates mode="titlepage.mode"/></p>
     </xsl:when>
+    <xsl:when test="@id='translators'">
+      <h4><xsl:apply-templates select="collab[1]/collabname"/></h4>
+      <p><xsl:apply-templates select="collab" mode="titlepage.mode"/></p>
+    </xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- don't just show the date for pubdate -->
+<xsl:template match="bookinfo/pubdate" mode="titlepage.mode">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'published'"/>
+  </xsl:call-template>
+  <xsl:text>: </xsl:text>
+  <xsl:apply-templates />
+</xsl:template>
+
+<!-- PREFACE/ABSTRACT: supress the autogenerated title,
+     but make a blockquote like in DSSSL-result -->
+<xsl:template match="preface/abstract">
+  <div class="{name(.)}">
+    <xsl:call-template name="anchor"/>
+    <blockquote>
+      <xsl:apply-templates />
+    </blockquote>
+  </div>
+</xsl:template>
+
+<!-- ======================== END TITLEPAGE =============================== -->
+
+
+
+<!-- METHODNAMES should be bold like in DSSSL -->
+<xsl:template match="methodsynopsis/methodname">
+  <b><xsl:apply-templates/></b>
+</xsl:template>
+
+
+<!-- Add LINKS to TYPES -->
+<xsl:template match="type">
+  <xsl:variable name="mytype">
+    <xsl:apply-templates/>
+  </xsl:variable>
+  <xsl:variable name="name">
+  <xsl:choose>
+    <xsl:when test="$mytype='int'">language.types.integer</xsl:when>
+    <xsl:when test="$mytype='bool'">language.types.boolean</xsl:when>
+    <xsl:when test="$mytype='double'">language.types.float</xsl:when>
     <xsl:otherwise>
-     <xsl:call-template name="inline.monoseq"/>
+      <xsl:copy-of select="concat('language.types.',
+                                  
translate($mytype,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'))"/>
     </xsl:otherwise>
   </xsl:choose>
-</xsl:template>
+  </xsl:variable>
 
-<!-- To overcome precedence issues -->
-<xsl:template match="funcdef/function">
   <xsl:choose>
-    <xsl:when test="$funcsynopsis.decoration != 0">
-      <b class="fsfunc"><xsl:apply-templates/></b>
+    <xsl:when test="count(/*/[EMAIL PROTECTED]'langref']/[EMAIL 
PROTECTED]'language.types']/[EMAIL PROTECTED]) = 1
+                    and not(ancestor::[EMAIL PROTECTED])">
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="id($name)"/> 
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:copy-of select="$mytype"/>
+      </a>
     </xsl:when>
     <xsl:otherwise>
-      <xsl:apply-templates/>
+      <xsl:copy-of select="$mytype"/>
     </xsl:otherwise>
   </xsl:choose>
 </xsl:template>
 
-<!-- Title abbreviations are not used in HTML output,
-     only in phpweb left menu generation -->
-<xsl:template match="titleabbrev"/>
 
-<!-- Add version information bellow function name -->
+<!-- Add VERSION INFORMATION below FUNCTION name -->
 <xsl:template match="refnamediv">
+  <h2>
+    <xsl:apply-templates select="refname[1]"/>
+  </h2>
+  <p>
+    <xsl:text>(</xsl:text>
+    <xsl:value-of select="$version/[EMAIL PROTECTED](current()/refname)]/@from"/>
+    <xsl:text>)</xsl:text>
+  </p>
+  <p>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+
+<!-- Let NOTES and WARNINGS look more similar to the dsssl-version -->
+<xsl:template match="simpara|para|title" mode="note.single.entry">
+  <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="note">
+  <xsl:variable name="inlinepara">
+    <xsl:choose>
+      <xsl:when test="count(title) = 0">
+        <xsl:apply-templates select="*[1]" mode="note.single.entry"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="*[2]" mode="note.single.entry"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <blockquote>
+    <p>
+      <b>
+        <xsl:choose>
+          <xsl:when test="count(title) > 0">
+            <xsl:apply-templates select="title" mode="note.single.entry"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="gentext"/>
+          </xsl:otherwise>
+        </xsl:choose>
+        <xsl:text>: </xsl:text>
+      </b>
+      <xsl:copy-of select="$inlinepara"/>
+    </p>
+    <xsl:choose>
+      <xsl:when test="$inlinepara != '' and count(title) > 0">
+        <xsl:apply-templates select="*[not(position() &lt; 3)]" />
+      </xsl:when>
+      <xsl:when test="$inlinepara != '' and count(title) = 0">
+        <xsl:apply-templates select="*[not(position() &lt; 2)]" />
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </blockquote>
+</xsl:template>
+
+<xsl:template match="warning|caution">
+  <xsl:variable name="pos">
+    <xsl:choose>
+      <xsl:when test="count(title[1])=1">2</xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
   <div class="{name(.)}">
+    <p style="font-size:10px"></p>
+    <table border="1" width="96%" align="center">
+      <tr>
+        <td align="center"><b>
+          <xsl:choose>
+            <xsl:when test="$pos=2">
+              <xsl:apply-templates select="title" mode="note.single.entry"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="gentext"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </b></td>
+      </tr>
+      <tr><td>
+        <xsl:apply-templates select="*[position()=$pos]" mode="note.single.entry" />
+        <xsl:choose>
+          <xsl:when test="(count(child::*)-$pos) > 1">
+            <xsl:apply-templates select="*[position()>$pos and position()!=last()]" />
+            <xsl:apply-templates select="*[position()=last()]" 
mode="note.single.entry" />
+          </xsl:when>
+          <xsl:otherwise>
+            <p style="font-size=8px"></p>
+            <xsl:apply-templates select="*[position()>$pos]" mode="note.single.entry" 
/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </td></tr>
+    </table>
+    <p style="font-size:10px"></p>
+  </div>
+</xsl:template>
+
+
+<!-- Ensure PARAGRAPHS: $html.cleanup is useful and should
+     be used for e.g <span...>, but supresses the <p>-tags
+     if something is inside a para (e.g. <para>bla<example>). -->
+<xsl:template match="para">
+  <xsl:variable name="p">
+    <xsl:if test="position() = 1 and parent::listitem">
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="node" select="parent::listitem"/>
+      </xsl:call-template>
+    </xsl:if>
     <xsl:call-template name="anchor"/>
+    <xsl:apply-templates/>
+  </xsl:variable>
+  <p>
     <xsl:choose>
-      <xsl:when test="$refentry.generate.name != 0">
-        <h2>
-          <xsl:call-template name="gentext">
-            <xsl:with-param name="key" select="'RefName'"/>
-          </xsl:call-template>
-        </h2>
-      </xsl:when>
-      <xsl:when test="$refentry.generate.title != 0">
-        <h2>
-          <xsl:choose>
-            <xsl:when test="../refmeta/refentrytitle">
-              <xsl:apply-templates select="../refmeta/refentrytitle"/>
-            </xsl:when>
-            <xsl:otherwise>
-              <xsl:apply-templates select="refname[1]"/>
-            </xsl:otherwise>
-          </xsl:choose>
-        </h2>
+      <xsl:when test="$html.cleanup != 0">
+        <xsl:call-template name="unwrap.p">
+          <xsl:with-param name="p" select="$p"/>
+        </xsl:call-template>
       </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$p"/>
+      </xsl:otherwise>
     </xsl:choose>
-    <p>(<xsl:value-of select="$version/[EMAIL 
PROTECTED](current()/refname)]/@from"/>)</p>
-    <p>
-      <xsl:apply-templates/>
-    </p>
-  </div>
+  </p>
 </xsl:template>
 
-<!-- This is the same as in DocBook XSL, except that we
-     preserve the role in programlisting and the like -->
-<xsl:template match="programlisting|screen|synopsis">
-  <xsl:param name="suppress-numbers" select="'0'"/>
-  <xsl:variable name="id">
-    <xsl:call-template name="object.id"/>
-  </xsl:variable>
 
-  <xsl:call-template name="anchor"/>
-  
-  <xsl:variable name="preclass">
+
+<!-- CHAPTER-TITLES: make them <h1> like in DSSSL -->
+<xsl:template match="chapter/title" mode="titlepage.mode">
+  <xsl:variable name="node" select="ancestor::chapter[1]"/>
+  <h1>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select="$node"/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="$node" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </h1>
+</xsl:template>
+
+
+<!-- SECTION-TITLES: <sect1> -> <h1> ... <sect5> -> <h5>) as in DSSSL -->
+<xsl:template name="section.heading">
+  <xsl:param name="section" select="."/>
+  <xsl:param name="level" select="1"/>
+  <xsl:param name="allow-anchors" select="1"/>
+  <xsl:param name="title"/>
+
+  <xsl:variable name="id">
     <xsl:choose>
-      <xsl:when test="./@role">
-        <xsl:value-of select="./@role"/>
+      <xsl:when test="contains(local-name(..), 'info')">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="../.."/>
+        </xsl:call-template>
       </xsl:when>
       <xsl:otherwise>
-        <xsl:value-of select="name(.)"/>
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
       </xsl:otherwise>
     </xsl:choose>
   </xsl:variable>
+  <xsl:element name="h{$level}">
+    <xsl:if test="$css.decoration != '0'">
+      <xsl:if test="$level&lt;3">
+        <xsl:attribute name="style">clear:both</xsl:attribute>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="$allow-anchors != 0">
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="node" select="$section"/>
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:copy-of select="$title"/>
+  </xsl:element>
+</xsl:template>
 
-  <xsl:variable name="content">
+
+<!-- Let FAQ-QUESTIONS look more similar to the dsssl-version -->
+<xsl:template match="question">
+  <xsl:variable name="deflabel">
     <xsl:choose>
-      <xsl:when test="$suppress-numbers = '0'
-                      and @linenumbering = 'numbered'
-                      and $use.extensions != '0'
-                      and $linenumbering.extension != '0'">
-        <xsl:variable name="rtf">
-          <xsl:apply-templates/>
-        </xsl:variable>
-        <pre class="{$preclass}">
-          <xsl:call-template name="number.rtf.lines">
-            <xsl:with-param name="rtf" select="$rtf"/>
-          </xsl:call-template>
-        </pre>
+      <xsl:when test="ancestor-or-self::[EMAIL PROTECTED]">
+        <xsl:value-of select="(ancestor-or-self::[EMAIL PROTECTED])[last()]
+                              /@defaultlabel"/>
       </xsl:when>
       <xsl:otherwise>
-        <pre class="{$preclass}">
-          <xsl:apply-templates/>
-        </pre>
+        <xsl:value-of select="qanda.defaultlabel"/>
       </xsl:otherwise>
     </xsl:choose>
   </xsl:variable>
 
+  <tr>
+    <td align="left" valign="top">
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="node" select=".."/>
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+      <b>
+        <xsl:apply-templates select="." mode="label.markup"/>
+        <xsl:text>. </xsl:text>
+      </b>
+    </td>
+    <td align="left" valign="top">
+      <b><xsl:apply-templates select="*[name(.) != 'label']" 
mode="note.single.entry"/></b>
+    </td>
+  </tr>
+</xsl:template>
+
+
+<!-- make the TITLE "Table of contents" an HTML-HEADER, so that the
+     size-diff to the headers in the reference-intro's isn't that big -->
+<xsl:template name="make.toc">
+  <xsl:param name="toc-context" select="."/>
+  <xsl:param name="toc.title.p" select="true()"/>
+  <xsl:param name="nodes" select="/NOT-AN-ELEMENT"/>
+
+  <xsl:variable name="toc.title">
+    <xsl:if test="$toc.title.p">
+      <h2>
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key">TableofContents</xsl:with-param>
+        </xsl:call-template>
+      </h2>
+    </xsl:if>
+  </xsl:variable>
+
   <xsl:choose>
-    <xsl:when test="$shade.verbatim != 0">
-      <table xsl:use-attribute-sets="shade.verbatim.style">
-        <tr>
-          <td>
-            <xsl:copy-of select="$content"/>
-          </td>
-        </tr>
-      </table>
+    <xsl:when test="$manual.toc != ''">
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id"/>
+      </xsl:variable>
+      <xsl:variable name="toc" select="document($manual.toc, .)"/>
+      <xsl:variable name="tocentry" select="$toc//[EMAIL PROTECTED]"/>
+      <xsl:if test="$tocentry and $tocentry/*">
+          <xsl:copy-of select="$toc.title"/>
+          <xsl:element name="{$toc.list.type}">
+            <xsl:call-template name="manual-toc">
+              <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
+            </xsl:call-template>
+          </xsl:element>
+      </xsl:if>
     </xsl:when>
     <xsl:otherwise>
-      <xsl:copy-of select="$content"/>
+      <xsl:if test="$nodes">
+        <xsl:copy-of select="$toc.title"/>
+        <xsl:element name="{$toc.list.type}">
+          <xsl:apply-templates select="$nodes" mode="toc">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:apply-templates>
+        </xsl:element>
+      </xsl:if>
     </xsl:otherwise>
   </xsl:choose>
 </xsl:template>
 
-<!-- Call title printout code - this was not working in
-     the 1.48 DBXML distribution -->
-<xsl:template name="refentry.titlepage">
-  <div class="titlepage">
-    <xsl:call-template name="refentry.title"/>
+
+
+<!-- Add a Label (e.g. I.) to reference-title, suppress
+     <hr> after reference-title, and save some <div>'s  -->
+<xsl:template name="reference.titlepage">
+  <xsl:apply-templates select="title" mode="reference.titlepage.mode"/>
+</xsl:template>
+<xsl:template match="title" mode="reference.titlepage.mode">
+  <h1>
+    <xsl:apply-templates select=".." mode="label.markup"/>
+    <xsl:text>. </xsl:text>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </h1>
+</xsl:template>
+
+<xsl:template match="reference/partintro">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+
+    <xsl:variable name="toc.params">
+      <xsl:call-template name="find.path.params">
+        <xsl:with-param name="node" select="parent::*"/>
+        <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:if test="contains($toc.params, 'toc')">
+      <xsl:apply-templates select="parent::*" mode="make.part.toc"/>
+    </xsl:if>
+    <xsl:call-template name="process.footnotes"/>
   </div>
 </xsl:template>
 
-<!-- Custom mode for titles for navigation without
-     "Chapter 1" and other autogenerated content -->
-<xsl:template match="*" mode="phpdoc.object.title">
-  <xsl:call-template name="substitute-markup">
-    <xsl:with-param name="allow-anchors" select="0"/>
-    <xsl:with-param name="template" select="'%t'"/>
-  </xsl:call-template>
+<xsl:template match="reference/partintro/section">
+  <xsl:apply-templates mode="titlepage.mode"/>
 </xsl:template>
 
-<!-- Rendering of methodsynopsis. The output of this should look like:
-     
-     int preg_match_all ( string pattern, string subject, array matches [, int flags])
-     
-     working from a structure like this:
-     
-     <methodsynopsis>
-      <type>int</type><methodname>preg_match_all</methodname>
-      <methodparam><type>string</type><parameter>pattern</parameter></methodparam>
-      <methodparam><type>string</type><parameter>subject</parameter></methodparam>
-      <methodparam><type>array</type><parameter>matches</parameter></methodparam>
-      <methodparam 
choice="opt"><type>int</type><parameter>flags</parameter></methodparam>
-     </methodsynopsis>
--->
 
-<!-- Override default [java] methodsynopsis rendering -->
-<xsl:template match="methodsynopsis">
-  <xsl:apply-templates select="." mode="php"/>
-</xsl:template>
-
-<!-- Print out the return type, the method name, then the parameters.
-     Close all the optional signs opened and close the prentheses -->
-<xsl:template match="methodsynopsis" mode="php">
-  <span class="funcreturntype">
-   <xsl:value-of select="concat(./type/text(), ' ')"/>
-  </span>
-  <span class="funcname">
-   <xsl:value-of select="./methodname/text()"/>
-  </span>
-  <xsl:text> ( </xsl:text>
-  <xsl:apply-templates select="./methodparam" mode="php"/>
-  <xsl:for-each select="./[EMAIL PROTECTED] = 'opt']">
-    <xsl:text>]</xsl:text>
-  </xsl:for-each>
-  <xsl:text> )</xsl:text>
-</xsl:template>
-
-<!-- Print out optional sign if needed, then a comma if this is
-     not the first param, then the type and the parameter name -->
-<xsl:template match="methodsynopsis/methodparam" mode="php">
-  <xsl:if test="@choice = 'opt'">
-    <xsl:text> [</xsl:text>
-  </xsl:if>
-  <xsl:if test="position() != 1">
-    <xsl:text>, </xsl:text>
-  </xsl:if>
-  <span class="funcparamtype">
-   <xsl:value-of select="./type/text()"/>
-  </span>
-  <xsl:text> </xsl:text>
-  <span class="funcparamname">
-   <xsl:value-of select="./parameter/text()"/>
-  </span>
+
+<!-- Just to DECREASE FILESIZE (since we have no css-styles) -->
+<xsl:template name="refentry.titlepage">
 </xsl:template>
 
-</xsl:stylesheet>
+<xsl:template match="parameter">
+  <i><tt><xsl:apply-templates/></tt></i>
+</xsl:template>
+
+<xsl:template match="constant|filename|literal|option|varname">
+  <tt><xsl:apply-templates/></tt>
+</xsl:template>
 
+<xsl:template match="refsection|refsect1|refsect2|refsect3">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template name="formal.object.heading">
+  <xsl:param name="object" select="."/>
+  <p>
+    <b>
+      <xsl:apply-templates select="$object" mode="object.title.markup">
+        <xsl:with-param name="allow-anchors" select="1"/>
+      </xsl:apply-templates>
+    </b>
+  </p>
+</xsl:template>
+
+<xsl:template name="nongraphical.admonition">
+    <xsl:if test="$admon.style">
+      <xsl:attribute name="style">
+        <xsl:value-of select="$admon.style"/>
+      </xsl:attribute>
+    </xsl:if>
+    <h3>
+      <xsl:call-template name="anchor"/>
+      <xsl:apply-templates select="." mode="object.title.markup"/>
+    </h3>
+    <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template name="component.title">
+  <xsl:param name="node" select="."/>
+  <h2>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select="$node"/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="$node" mode="object.title.markup">
+      <xsl:with-param name="allow-anchors" select="1"/>
+    </xsl:apply-templates>
+  </h2>
+</xsl:template>
+
+<xsl:template match="programlisting|screen|synopsis">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+  <table xsl:use-attribute-sets="shade.verbatim.style">
+    <tr>
+      <td>
+        <pre><xsl:apply-templates/></pre>
+      </td>
+    </tr>
+  </table>
+</xsl:template>
+
+
+
+</xsl:stylesheet>
Index: phpdoc/xsl/docbook/README
diff -u phpdoc/xsl/docbook/README:1.1 phpdoc/xsl/docbook/README:1.2
--- phpdoc/xsl/docbook/README:1.1       Tue Aug 13 11:34:28 2002
+++ phpdoc/xsl/docbook/README   Sun Mar  9 10:01:14 2003
@@ -63,7 +63,7 @@
 Copyright
 ---------
 
-Copyright (C) 1999, 2000, 2001 Norman Walsh
+Copyright (C) 1999, 2000, 2001, 2002 Norman Walsh
 
 Permission is hereby granted, free of charge, to any person
 obtaining a copy of this software and associated documentation
Index: phpdoc/xsl/docbook/VERSION
diff -u phpdoc/xsl/docbook/VERSION:1.1 phpdoc/xsl/docbook/VERSION:1.2
--- phpdoc/xsl/docbook/VERSION:1.1      Tue Aug 13 11:34:28 2002
+++ phpdoc/xsl/docbook/VERSION  Sun Mar  9 10:01:14 2003
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                 version='1.0'>
-<xsl:param name="VERSION">1.51.1</xsl:param>
+<xsl:param name="VERSION">1.60.1</xsl:param>
 </xsl:stylesheet>
 

Index: phpdoc/xsl/bightml.xsl
+++ phpdoc/xsl/bightml.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- 

  bightml.xsl: HTML specific stylesheet (not chunked)

-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                version="1.0">

<xsl:import href="./docbook/html/docbook.xsl"/>
<xsl:include href="html-common.xsl"/>


<!-- don't let the copright + year-list appear twice -->
<xsl:template match="copyright" mode="titlepage.mode" />

<!-- add missing separators -->
<xsl:template match="preface|part|chapter|reference|appendix|sect1|sect2">
  <hr/>
  <xsl:apply-imports/>
</xsl:template>

<xsl:template match="reference/partintro/section">
  <xsl:apply-imports/>
</xsl:template>

<!-- Just decrease FILESIZE in this huge file -->
<xsl:template match="refentry">
  <hr/>
  <div class="{name(.)}">
    <xsl:call-template name="anchor">
      <xsl:with-param name="conditional" select="0"/>
    </xsl:call-template>
    <xsl:apply-templates/>
    <xsl:call-template name="process.footnotes"/>
  </div>
</xsl:template>


<!-- Add parenthesis FUNCTIONS, and if target exists link
     them to their refentry, otherweise make it bold  -->
<xsl:template match="function">
  <xsl:variable name="content">
    <xsl:apply-templates/><xsl:text>()</xsl:text>
  </xsl:variable>
  <xsl:variable name="targetid">
    <xsl:value-of select="concat('function.', translate(string(current()),'_','-'))"/>
  </xsl:variable>

  <xsl:choose>
      <xsl:when test="ancestor::refentry/refnamediv/refname=translate(current(),
                        'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')
                      or count(/*/[EMAIL PROTECTED]'funcref']/*/[EMAIL PROTECTED]) = 
0">
      <b><xsl:copy-of select="$content"/></b>
    </xsl:when>
    <xsl:otherwise>
      <a>
        <xsl:attribute name="href">
          <xsl:call-template name="href.target">
            <xsl:with-param name="object" select="id($targetid)"/> 
          </xsl:call-template>
        </xsl:attribute>
        <xsl:copy-of select="$content"/>
      </a>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>



</xsl:stylesheet>

Index: phpdoc/xsl/html.xsl
+++ phpdoc/xsl/html.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- 

  html.xsl: Chunked HTML specific stylesheet

-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                version="1.0">

<xsl:import href="./docbook/html/chunkfast.xsl"/>
<xsl:include href="html-common.xsl"/>


<xsl:param name="base.dir" select="'html/'"/>
<xsl:param name="use.id.as.filename" select="1"/>

<!-- Speed up generation (no file name printouts) -->
<xsl:param name="chunk.quietly">1</xsl:param>


<!-- Make LEGALNOTICE an extra-file, omit extra-link on start-page (link
     directly from the original <COPYRIGHT>), and make nav-header/footer -->
<xsl:template match="copyright" mode="titlepage.mode">
  <p>
    <a href="{concat('copyright',$html.ext)}">
      <xsl:call-template name="gentext">
        <xsl:with-param name="key" select="'Copyright'"/>
      </xsl:call-template>
    </a>
    <xsl:text> </xsl:text>
    <xsl:call-template name="dingbat">
      <xsl:with-param name="dingbat">copyright</xsl:with-param>
    </xsl:call-template>
    <xsl:text> </xsl:text>
    <xsl:call-template name="copyright.years">
      <xsl:with-param name="years" select="year"/>
      <xsl:with-param name="print.ranges" select="$make.year.ranges"/>
      <xsl:with-param name="single.year.ranges"
                      select="$make.single.year.ranges"/>
    </xsl:call-template>
    <xsl:text> </xsl:text>
    <xsl:apply-templates select="holder" mode="titlepage.mode"/>
  </p>
</xsl:template>

<xsl:template match="legalnotice" mode="titlepage.mode">
  <xsl:variable name="filename">
    <xsl:value-of select="concat($base.dir,'copyright',$html.ext)"/>
  </xsl:variable>

  <xsl:call-template name="write.chunk">
    <xsl:with-param name="filename" select="$filename"/>
    <xsl:with-param name="quiet" select="$chunk.quietly"/>
    <xsl:with-param name="content">
      <html>
        <head>
          <xsl:call-template name="system.head.content"/>
          <title>
            <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
          </title>
        </head>
        <body>
          <xsl:call-template name="body.attributes"/>
            <table width="100%" summary="Navigation header">
              <tr>
                <th align="center"><xsl:value-of select="/book/title"/></th>
              </tr>
            </table>
          <hr/>
          <xsl:apply-templates mode="titlepage.mode"/>
          <hr/>
          <table width="100%" summary="Navigation footer">
          <tr>
            <td align="center">
              <a accesskey="h">
                <xsl:attribute name="href">
                  <xsl:call-template name="href.target">
                    <xsl:with-param name="object" select="/*[1]"/>
                  </xsl:call-template>
                </xsl:attribute>
                <xsl:call-template name="navig.content">
                  <xsl:with-param name="direction" select="'home'"/>
                </xsl:call-template>
              </a>
            </td>
          </tr>
          </table>
        </body>
      </html>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>



<!-- NAVIGATION-HEADERS: let them look similar to dsssl
     (not in 1st page, 1st line always "PHP manual", titles
     labelled just with e.g. 'A.' instead of 'appendix A.') -->
<xsl:template name="header.navigation">
  <xsl:param name="prev" select="/foo"/>
  <xsl:param name="next" select="/foo"/>
  <xsl:param name="nav.context"/>

  <xsl:variable name="home" select="/*[1]"/>
  <xsl:variable name="up" select="parent::*"/>

  <xsl:variable name="row2" select="(count($prev) &gt; 0
                                    or (count($up) &gt; 0 and $up != $home)
                                    or count($next) &gt; 0)
                                    and local-name(.) != 'book'"/>

  <div class="navheader">
    <xsl:if test="$row2">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">
            <xsl:value-of select="/book/title"/>
          </th>
        </tr>
        <tr>
          <td width="20%" align="left">
            <xsl:if test="count($prev)>0">
              <a>
                <xsl:attribute name="href">
                  <xsl:call-template name="href.target">
                    <xsl:with-param name="object" select="$prev"/>
                  </xsl:call-template>
                </xsl:attribute>
                <xsl:call-template name="navig.content">
                  <xsl:with-param name="direction" select="'prev'"/>
                </xsl:call-template>
              </a>
            </xsl:if>
            <xsl:text>&#160;</xsl:text>
          </td>
          <td width="60%" align="center">
            <xsl:choose>
              <xsl:when test="count($up) > 0 and $up != $home">
                <xsl:variable name="label">
                  <xsl:apply-templates select="$up" mode="label.markup"/>
                </xsl:variable>
                <xsl:copy-of select="$label"/>
                <xsl:if test="$label != ''">
                  <xsl:text>. </xsl:text>
                </xsl:if>
                <xsl:apply-templates select="$up" mode="title.markup"/>
              </xsl:when>
              <xsl:otherwise>&#160;</xsl:otherwise>
            </xsl:choose>
          </td>
          <td width="20%" align="right">
            <xsl:text>&#160;</xsl:text>
            <xsl:if test="count($next)>0">
              <a>
                <xsl:attribute name="href">
                  <xsl:call-template name="href.target">
                    <xsl:with-param name="object" select="$next"/>
                  </xsl:call-template>
                </xsl:attribute>
                <xsl:call-template name="navig.content">
                  <xsl:with-param name="direction" select="'next'"/>
                </xsl:call-template>
              </a>
            </xsl:if>
          </td>
        </tr>
      </table>
      <hr/>
    </xsl:if>
  </div>
</xsl:template>


<!-- NAVIGATION-FOOTERS: label just with e.g. 'A.' instead of 'appendix A.') -->
<xsl:template name="footer.navigation">
  <xsl:param name="prev" select="/foo"/>
  <xsl:param name="next" select="/foo"/>
  <xsl:param name="nav.context"/>

  <xsl:variable name="home" select="/*[1]"/>
  <xsl:variable name="up" select="parent::*"/>

  <xsl:variable name="row1" select="count($prev) &gt; 0
                                    or count($up) &gt; 0
                                    or count($next) &gt; 0"/>

  <xsl:variable name="row2" select="$prev != 0 or $next != 0
                                    or ($home != . or $nav.context = 'toc')"/>

  <div class="navfooter">
    <hr/>
    <xsl:if test="$row1 or $row2">
      <table width="100%" summary="Navigation footer">
        <xsl:if test="$row1">
          <tr>
            <td width="40%" align="left">
              <xsl:if test="count($prev)>0">
                <a accesskey="p">
                  <xsl:attribute name="href">
                    <xsl:call-template name="href.target">
                      <xsl:with-param name="object" select="$prev"/>
                    </xsl:call-template>
                  </xsl:attribute>
                  <xsl:call-template name="navig.content">
                    <xsl:with-param name="direction" select="'prev'"/>
                  </xsl:call-template>
                </a>
              </xsl:if>
              <xsl:text>&#160;</xsl:text>
            </td>
            <td width="20%" align="center">
              <xsl:choose>
                <xsl:when test="count($up)>0">
                  <a accesskey="u">
                    <xsl:attribute name="href">
                      <xsl:call-template name="href.target">
                        <xsl:with-param name="object" select="$up"/>
                      </xsl:call-template>
                    </xsl:attribute>
                    <xsl:call-template name="navig.content">
                      <xsl:with-param name="direction" select="'up'"/>
                    </xsl:call-template>
                  </a>
                </xsl:when>
                <xsl:otherwise>&#160;</xsl:otherwise>
              </xsl:choose>
            </td>
            <td width="40%" align="right">
              <xsl:text>&#160;</xsl:text>
              <xsl:if test="count($next)>0">
                <a accesskey="n">
                  <xsl:attribute name="href">
                    <xsl:call-template name="href.target">
                      <xsl:with-param name="object" select="$next"/>
                    </xsl:call-template>
                  </xsl:attribute>
                  <xsl:call-template name="navig.content">
                    <xsl:with-param name="direction" select="'next'"/>
                  </xsl:call-template>
                </a>
              </xsl:if>
            </td>
          </tr>
        </xsl:if>

        <xsl:if test="$row2">
          <tr>
            <td width="40%" align="left" valign="top">
              <xsl:variable name="label">
                <xsl:apply-templates select="$prev" mode="label.markup"/>
              </xsl:variable>
              <xsl:copy-of select="$label"/>
              <xsl:if test="$label != ''">
                <xsl:text>. </xsl:text>
              </xsl:if>
              <xsl:apply-templates select="$prev" mode="title.markup"/>
              <xsl:text>&#160;</xsl:text>
            </td>
            <td width="20%" align="center">
              <xsl:choose>
                <xsl:when test="$home != . or $nav.context = 'toc'">
                  <a accesskey="h">
                    <xsl:attribute name="href">
                      <xsl:call-template name="href.target">
                        <xsl:with-param name="object" select="$home"/>
                      </xsl:call-template>
                    </xsl:attribute>
                    <xsl:call-template name="navig.content">
                      <xsl:with-param name="direction" select="'home'"/>
                    </xsl:call-template>
                  </a>
                </xsl:when>
                <xsl:otherwise>&#160;</xsl:otherwise>
              </xsl:choose>
            </td>
            <td width="40%" align="right" valign="top">
              <xsl:text>&#160;</xsl:text>
              <xsl:variable name="label">
                <xsl:apply-templates select="$next" mode="label.markup"/>
              </xsl:variable>
              <xsl:copy-of select="$label"/>
              <xsl:if test="$label != ''">
                <xsl:text>. </xsl:text>
              </xsl:if>
              <xsl:apply-templates select="$next" mode="title.markup"/>
            </td>
          </tr>
        </xsl:if>
      </table>
    </xsl:if>
  </div>
</xsl:template>


<!-- Add parenthesis FUNCTIONS, and if target exists link
     them to their refentry, otherweise make it bold  -->
<xsl:template match="function">
  <xsl:variable name="content">
    <xsl:apply-templates/><xsl:text>()</xsl:text>
  </xsl:variable>
  <xsl:variable name="targetid">
    <xsl:value-of select="concat('function.', translate(string(current()),'_','-'))"/>
  </xsl:variable>

  <xsl:choose>
    <xsl:when test="ancestor::refentry/refnamediv/refname=translate(current(),
                      'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')
                    or count(/*/[EMAIL PROTECTED]'funcref']/*/[EMAIL PROTECTED]) = 0">
      <b><xsl:copy-of select="$content"/></b>
    </xsl:when>
    <xsl:otherwise>
      <a>
        <xsl:attribute name="href">
          <xsl:value-of select="concat($targetid, '.html')"/> 
        </xsl:attribute>
        <xsl:copy-of select="$content"/>
      </a>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>


<!-- Suppress Links in html-header -->
<xsl:template name="html.head">
  <xsl:param name="prev"/>
  <xsl:param name="next"/>
  <head>
    <title>
      <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
    </title>
  </head>
</xsl:template>



<!-- Don't let the "next"-links of navigation-headers(footers)
     point to a section below reference/partintro, which is no chunk -->
<xsl:template name="chunk-first-section-with-parent">
  <xsl:param name="content">
    <xsl:apply-imports/>
  </xsl:param>

  <xsl:variable name="prev-v1"
     select="(ancestor::sect1[$chunk.section.depth &gt; 0
                               and preceding-sibling::sect1][1]

             |ancestor::sect2[$chunk.section.depth &gt; 1
                               and preceding-sibling::sect2
                               and parent::sect1[preceding-sibling::sect1]][1]

             |ancestor::section[$chunk.section.depth &gt; count(ancestor::section)
                                and 
not(ancestor::section[not(preceding-sibling::section)])][1])[last()]"/>

  <xsl:variable name="prev-v2"
     select="(preceding::sect1[$chunk.section.depth &gt; 0
                               and preceding-sibling::sect1][1]

             |preceding::sect2[$chunk.section.depth &gt; 1
                               and preceding-sibling::sect2
                               and parent::sect1[preceding-sibling::sect1]][1]

             |preceding::section[$chunk.section.depth &gt; count(ancestor::section)
                                 and preceding-sibling::section
                                 and 
not(ancestor::section[not(preceding-sibling::section)])][1])[last()]"/>

  <xsl:variable name="prev"
    select="(preceding::book[1]
             |preceding::preface[1]
             |preceding::chapter[1]
             |preceding::appendix[1]
             |preceding::part[1]
             |preceding::reference[1]
             |preceding::refentry[1]
             |preceding::colophon[1]
             |preceding::article[1]
             |preceding::bibliography[1]
             |preceding::glossary[1]
             |preceding::index[1]
             |preceding::setindex[1]
             |ancestor::set
             |ancestor::book[1]
             |ancestor::preface[1]
             |ancestor::chapter[1]
             |ancestor::appendix[1]
             |ancestor::part[1]
             |ancestor::reference[1]
             |ancestor::article[1]
             |$prev-v1
             |$prev-v2)[last()]"/>

  <xsl:variable name="next-v1"
    select="(following::sect1[$chunk.section.depth &gt; 0
                               and preceding-sibling::sect1][1]

             |following::sect2[$chunk.section.depth &gt; 1
                               and preceding-sibling::sect2
                               and parent::sect1[preceding-sibling::sect1]][1]

             |following::section[$chunk.section.depth &gt; count(ancestor::section)
                                 and preceding-sibling::section
                                 and 
not(ancestor::section[not(preceding-sibling::section)])
                                 and not(parent::partintro)][1])[1]"/>

  <xsl:variable name="next-v2"
    select="(descendant::sect1[$chunk.section.depth &gt; 0
                               and preceding-sibling::sect1][1]

             |descendant::sect2[$chunk.section.depth &gt; 1
                               and preceding-sibling::sect2
                               and parent::sect1[preceding-sibling::sect1]][1]

             |descendant::section[$chunk.section.depth &gt; count(ancestor::section)
                                 and preceding-sibling::section
                                 and 
not(ancestor::section[not(preceding-sibling::section)])
                                 and not(parent::partintro)])[1]"/>

  <xsl:variable name="next"
    select="(following::book[1]
             |following::preface[1]
             |following::chapter[1]
             |following::appendix[1]
             |following::part[1]
             |following::reference[1]
             |following::refentry[1]
             |following::colophon[1]
             |following::bibliography[1]
             |following::glossary[1]
             |following::index[1]
             |following::article[1]
             |following::setindex[1]
             |descendant::book[1]
             |descendant::preface[1]
             |descendant::chapter[1]
             |descendant::appendix[1]
             |descendant::article[1]
             |descendant::bibliography[1]
             |descendant::glossary[1]
             |descendant::index[1]
             |descendant::colophon[1]
             |descendant::setindex[1]
             |descendant::part[1]
             |descendant::reference[1]
             |descendant::refentry[1]
             |$next-v1
             |$next-v2)[1]"/>

  <xsl:call-template name="process-chunk">
    <xsl:with-param name="prev" select="$prev"/>
    <xsl:with-param name="next" select="$next"/>
    <xsl:with-param name="content" select="$content"/>
  </xsl:call-template>
</xsl:template>



</xsl:stylesheet>

Index: phpdoc/xsl/param_html.xsl
+++ phpdoc/xsl/param_html.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- 

  param_html.xsl: Parameters generated by the configure-script

-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                version="1.0">


<xsl:output method="html" encoding="ISO-8859-1"/>



</xsl:stylesheet>

-- 
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to