techtonik Sat Jul 30 15:42:43 2005 EDT
Modified files:
/phpdoc/xsl htmlhelp.xsl
Log:
- grrrr.. convert endings back to lf
http://cvs.php.net/diff.php/phpdoc/xsl/htmlhelp.xsl?r1=1.23&r2=1.24&ty=u
Index: phpdoc/xsl/htmlhelp.xsl
diff -u phpdoc/xsl/htmlhelp.xsl:1.23 phpdoc/xsl/htmlhelp.xsl:1.24
--- phpdoc/xsl/htmlhelp.xsl:1.23 Sat Jul 30 14:30:40 2005
+++ phpdoc/xsl/htmlhelp.xsl Sat Jul 30 15:42:41 2005
@@ -1,755 +1,755 @@
-<?xml version="1.0"?>
-<!--
-
- HTML Help specific stylesheet
-
- $Id: htmlhelp.xsl,v 1.23 2005/07/30 18:30:40 techtonik Exp $
-
--->
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
- xmlns:exsl="http://exslt.org/common"
- xmlns:set="http://exslt.org/sets"
- version="1.0"
- exclude-result-prefixes="doc exsl set">
-<!--
- xCHM HTMLHELP customizations include:
- - output directory for HTML and project Help files is 'htmlhelp/html/'
- - open ulinks in _blank window
- - CHM buttons settings
- - custom .hhk file with index.html split in two files (titlepage and toc)
- - custom .hhc file with same changes
- - .hhk and .hhc are processed in html mode unlike native DocBook XSL
templates
- - proper escaping in .hhk and .hhc to reflect transition from text to html
mode
-
- - DOCTYPE in output HTML defines DOM standard for browser to handle JS
correctly
- - strip <link> tags from HTML headers
- - add javascript handlers in body attributes
- - add root DHTML div with id ="PageContent" for skinning purposes
- - header off, footer on (also custom with some js handlers and custom ids)
-
- - turn on function index page building (in appendixes) and turn off ToC for
it
- - output formal object titles enclosed in <h3> tags
- (abstract title, examples, tables, ...?)
- - simple bold text for admonitions (note|important|warning|caution|tip)
- - custom tables attributes
- - special reference page - drop out "description" title, proper rendering
for
- "seealso", move <refname> along with function prototype to page header and
- render it appropriately
- TODO: need convenient reference page skeleton
-
- NOTE: custom HTML xCHM layout described in phpdoc/en/chmonly/skins.xml or
- http://wiki.phpdoc.info/xCHM
--->
-
-<!-- - BASED ON 1.66.1 HTMLHELP.XSL DOCBOOK XSL STYLESHEET - -->
-
-<xsl:import href="./docbook/html/chunk.xsl"/>
-<xsl:import href="./docbook/htmlhelp/htmlhelp-common.xsl"/>
-<xsl:import href="common.xsl"/>
-
-<!-- configure/able/ parameters -->
-<xsl:include href="htmlhelp-config.xsl"/>
-
-<!-- we use CSS styling to make verbatim sections look nicy -->
-<xsl:param name="shade.verbatim" select="0"/>
-
-<xsl:param name="chunker.output.doctype-system"
select="'http://www.w3.org/TR/html4/loose.dtd'"/>
-<xsl:param name="chunker.output.doctype-public" select="'-//W3C//DTD HTML 4.01
Transitional//EN'"/>
-
-<xsl:param name="base.dir" select="'htmlhelp/html/'"/>
-<!-- project files for HTML Help are written into base.dir instead of current
directory -->
-<xsl:param name="manifest.in.base.dir" select="1"/>
-<xsl:param name="use.id.as.filename" select="1"/>
-<xsl:param name="chunk.quietly" select="1"/>
-
-<!-- Supress the ",figure,example,equation" (like DSSSL output). -->
-<xsl:param name="generate.toc">
-appendix toc,title
-article toc
-book toc,title
-chapter toc,title
-part toc,title
-preface toc
-qandadiv toc
-qandaset toc
-reference toc,title
-sect1 toc
-sect2 toc
-sect3 toc
-sect4 toc
-sect5 toc
-section toc
-set toc
-</xsl:param>
-
-<!-- Target window for external ulinks -->
-<xsl:param name="ulink.target" select="'_blank'"/>
-
-
-<!-- *************** HTML HELP PROJECT PARAMETERS **************** -->
-
-<!-- Turn off Binary TOC used Prev/Next buttons on toolbar. Files with binary
TOC can't be merged -->
-<xsl:param name="htmlhelp.hhc.binary" select="0"/>
-<xsl:param name="htmlhelp.generate.index" select="1"/>
-<xsl:param name="htmlhelp.use.hhk" select="1"/>
-<!-- <xsl:param name="htmlhelp.use.hhk" select="1"/> doesn't work -->
-
-<xsl:param name="htmlhelp.display.progress" select="0"/>
-<xsl:param name="htmlhelp.default.topic" select="'_index.html'"/>
-<xsl:param name="htmlhelp.hhp.window" select="'phpdoc'"/>
-<xsl:param name="htmlhelp.enhanced.decompilation" select="1"/>
-
-<xsl:param name="htmlhelp.hhc.folders.instead.books" select="0"/>
-<xsl:param name="htmlhelp.hhc.show.root" select="0"/>
-
-
-<!-- <xsl:with-param name="xnavigation" select="'0x23520'"/> -->
-<xsl:param name="htmlhelp.show.menu" select="0"/>
-<xsl:param name="htmlhelp.show.toolbar.text" select="1"/>
-<xsl:param name="htmlhelp.show.advanced.search" select="1"/>
-<xsl:param name="htmlhelp.show.favorities" select="1"/>
-
-<!-- <xsl:with-param name="xbuttons" select="'0x386e'"/> -->
-<!-- 0x4387E with additional stop and php.net buttons -->
-<xsl:param name="htmlhelp.button.hideshow" select="1"/>
-<xsl:param name="htmlhelp.button.locate" select="1"/>
-<xsl:param name="htmlhelp.button.back" select="1"/>
-<xsl:param name="htmlhelp.button.forward" select="1"/>
-<!-- next two buttons are questionable -->
-<xsl:param name="htmlhelp.button.stop" select="1"/>
-<xsl:param name="htmlhelp.button.refresh" select="1"/>
-<xsl:param name="htmlhelp.button.home" select="1"/>
-<xsl:param name="htmlhelp.button.options" select="1"/>
-<xsl:param name="htmlhelp.button.print" select="1"/>
-<!-- next jump button can be discussed too -->
-<!-- <xsl:param name="htmlhelp.button.jump1" select="1"/>
-<xsl:param name="htmlhelp.button.jump1.url" select="'http://www.php.net'"/>
-<xsl:param name="htmlhelp.button.jump1.title" select="'PHP.NET'"/>
-FIX: hhc.exe chokes on this link.. need additional redirection page -->
-<xsl:param name="htmlhelp.button.next" select="0"/>
-<xsl:param name="htmlhelp.button.prev" select="0"/>
-<xsl:param name="htmlhelp.button.zoom" select="0"/>
-
-
-
-<!-- *************** HTML HELP INDEX CUSTOMIZINGS (HHK) **************** -->
-
-<!-- compile custom index file (.hhk) and insert two additional files into
- index structure. These will be created later by splitting result title
- page with contents in two -->
-<xsl:template match="book" mode="hhk">
- <xsl:variable name="title">
- <xsl:apply-templates select="." mode="title.markup"/>
- </xsl:variable>
- <xsl:variable name="bookhref">
- <xsl:call-template name="href.target"/>
- </xsl:variable>
- <xsl:variable name="toctitle">
- <xsl:call-template name="gentext">
- <xsl:with-param name="key" select="'TableofContents'"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:text>
- </xsl:text>
- <li><object type="text/sitemap">
- <param name="Name" value="{normalize-space($title)}"/>
- <param name="Local" value="_index.html"/>
- </object></li>
- <xsl:text>
- </xsl:text>
- <li><object type="text/sitemap">
- <param name="Name" value="{normalize-space($toctitle)}"/>
- <param name="Local" value="{$bookhref}"/>
- </object></li>
- <xsl:apply-templates
select="part|preface|chapter|appendix|article|reference|bibliography|colophon"
- mode="hhk"/>
-</xsl:template>
-
-<xsl:template match="part|preface|chapter|appendix|article|reference|refentry
- |sect1|sect2|sect3|sect4|sect5
- |section
- |book/glossary|article/glossary
- |book/bibliography|article/bibliography
- |colophon"
- mode="hhk">
- <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
- <xsl:if test="$ischunk='1'">
- <xsl:variable name="title">
- <xsl:apply-templates select="." mode="title.markup"/>
- </xsl:variable>
- <xsl:variable name="filename">
- <xsl:call-template name="make-relative-filename">
- <xsl:with-param name="base.dir" select="''"/>
- <xsl:with-param name="base.name">
- <xsl:apply-templates mode="chunk-filename" select="."/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:variable>
- <xsl:text>
- </xsl:text>
- <li><object type="text/sitemap">
- <param name="Name" value="{normalize-space($title)}"/>
- <param name="Local" value="{$filename}"/>
- </object></li>
- </xsl:if>
-
- <xsl:apply-templates select="*" mode="hhk"/>
-</xsl:template>
-
-<xsl:template name="hhk">
- <xsl:call-template name="write.chunk">
- <xsl:with-param name="filename">
- <xsl:if test="$manifest.in.base.dir != 0">
- <xsl:value-of select="$base.dir"/>
- </xsl:if>
- <xsl:value-of select="$htmlhelp.hhk"/>
- </xsl:with-param>
- <xsl:with-param name="indent" select="'yes'"/>
- <xsl:with-param name="content"><xsl:text
disable-output-escaping="yes"><![CDATA[<!DOCTYPE HTML PUBLIC "-//IETF//DTD
HTML//EN">
-<HTML>
-<HEAD>
-<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
-<!-- Sitemap 1.0 -->
-</HEAD><BODY>
-<OBJECT type="text/site properties">
- <param name="Window Styles" value="0x800227">
-</OBJECT>
-<UL>]]>
-</xsl:text>
-<xsl:if test="($htmlhelp.use.hhk != 0) and $htmlhelp.generate.index">
- <xsl:choose>
- <xsl:when test="$rootid != ''">
- <xsl:apply-templates select="key('id',$rootid)" mode="hhk"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="/" mode="hhk"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:if>
-<xsl:text disable-output-escaping="yes"><![CDATA[</UL>
-</BODY></HTML>]]></xsl:text>
- </xsl:with-param>
- <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
- </xsl:call-template>
-</xsl:template>
-
-<!-- escape double quotes in titles to correctly generate .hhk entry
- for example: <title><literal>emply("0")... -->
-<xsl:template match="title/literal">
- <xsl:variable name="apos" select=""'"" />
- <xsl:variable name="quot" select=''"'' />
- <xsl:value-of select="translate(.,'"',$apos)"/>
-</xsl:template>
-
-
-
-<!-- *************** HTML HELP TOC CUSTOMIZINGS (HHC) **************** -->
-
-<!-- compile custom TOC file (.hhc) and insert two additional files into
- contents structure. These will be created later by splitting result title
- page with contents in two -->
-<!-- Setup style for TOC window -->
-<xsl:template name="hhc-main">
- <xsl:text disable-output-escaping="yes"><![CDATA[<HTML>
-<HEAD></HEAD>
-<BODY>
-
-<OBJECT type="text/site properties">
- <param name="Window Styles" value="0x800227"/>
-]]></xsl:text>
- <xsl:if test="$htmlhelp.hhc.folders.instead.books != 0">
- <param name="ImageType" value="Folder"/>
- </xsl:if>
- <xsl:text disable-output-escaping="yes"><![CDATA[</OBJECT>
-
-<UL>]]></xsl:text>
-
- <xsl:choose>
- <xsl:when test="$rootid != ''">
- <xsl:apply-templates select="key('id',$rootid)" mode="hhc"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="/" mode="hhc"/>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:text disable-output-escaping="yes"><![CDATA[</UL></BODY>
-</HTML>]]></xsl:text>
-</xsl:template>
-
-<xsl:template match="book" mode="hhc">
- <xsl:variable name="title">
- <xsl:if test="$htmlhelp.autolabel=1">
- <xsl:variable name="label.markup">
- <xsl:apply-templates select="." mode="label.markup"/>
- </xsl:variable>
- <xsl:if test="normalize-space($label.markup)">
- <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/>
- </xsl:if>
- </xsl:if>
- <xsl:apply-templates select="." mode="title.markup"/>
- </xsl:variable>
- <xsl:variable name="href">
- <xsl:call-template name="href.target"/>
- </xsl:variable>
- <xsl:variable name="toctitle">
- <xsl:call-template name="gentext">
- <xsl:with-param name="key" select="'TableofContents'"/>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:text>
- </xsl:text>
- <li><object type="text/sitemap">
- <param name="Name" value="{normalize-space($title)}"/>
- <param name="Local" value="_index.html"/>
- </object></li>
- <xsl:text>
- </xsl:text>
- <li><object type="text/sitemap">
- <param name="Name" value="{normalize-space($toctitle)}"/>
- <param name="Local" value="{$href}"/>
- </object></li>
- <xsl:text>
- </xsl:text>
-
- <xsl:apply-templates
select="part|reference|preface|chapter|bibliography|appendix|article|colophon|glossary"
- mode="hhc"/>
-</xsl:template>
-
-
-<!-- [Next template is temporarily until patch to 1.66.1 is approved] -->
-<!--
https://sourceforge.net/tracker/index.php?func=detail&aid=1048856&group_id=21935&atid=373749
-->
-<xsl:template name="hhc">
- <xsl:call-template name="write.chunk">
- <xsl:with-param name="filename">
- <xsl:if test="$manifest.in.base.dir != 0">
- <xsl:value-of select="$base.dir"/>
- </xsl:if>
- <xsl:value-of select="$htmlhelp.hhc"/>
- </xsl:with-param>
- <xsl:with-param name="indent" select="'yes'"/>
- <xsl:with-param name="content">
- <xsl:call-template name="hhc-main"/>
- </xsl:with-param>
- <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
- </xsl:call-template>
-</xsl:template>
-
-<!-- [Temporarily also until it will be discussed in docbook-apps about
features operating
- in html mode - is it neccesary to escape attributes which are already
escaped in sources] -->
-<!-- Do not escape titles since we are operating in html mode -->
-<xsl:template
match="part|reference|preface|chapter|bibliography|appendix|article|glossary"
- mode="hhc">
- <xsl:variable name="title">
- <xsl:if test="$htmlhelp.autolabel=1">
- <xsl:variable name="label.markup">
- <xsl:apply-templates select="." mode="label.markup"/>
- </xsl:variable>
- <xsl:if test="normalize-space($label.markup)">
- <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/>
- </xsl:if>
- </xsl:if>
- <xsl:apply-templates select="." mode="title.markup"/>
- </xsl:variable>
- <xsl:variable name="href">
- <xsl:call-template name="href.target.with.base.dir"/>
- </xsl:variable>
-
- <xsl:text>
- </xsl:text>
- <li><object type="text/sitemap">
- <param name="Name" value="{normalize-space($title)}"/>
- <param name="Local" value="{$href}"/>
- </object></li>
- <xsl:text>
- </xsl:text>
-
- <xsl:if
test="reference|preface|chapter|appendix|refentry|section|sect1|bibliodiv">
- <ul>
- <xsl:apply-templates
-
select="reference|preface|chapter|appendix|refentry|section|sect1|bibliodiv"
- mode="hhc"/>
- </ul>
- </xsl:if>
-</xsl:template>
-
-<!--
-<xsl:param name="htmlhelp.only" select="1"/>
-htmlhelp.autolabel - chapter and section numbers in ToC - off
--->
-
-
-<!-- *************** HH HTML FILES CUSTOMIZATIONS **************** -->
-
-<xsl:param name="label.from.part" select="1"/>
-
-<!-- custom HTML xCHM layout described in phpdoc/en/chmonly/skins.xml or
- http://wiki.phpdoc.info/xCHM -->
-<!-- Add "pageContent" div for skinning support -->
-<xsl:template name="chunk-element-content">
- <xsl:param name="prev"/>
- <xsl:param name="next"/>
- <xsl:param name="nav.context"/>
- <xsl:param name="content">
- <xsl:apply-imports/>
- </xsl:param>
-
- <html>
- <xsl:call-template name="html.head">
- <xsl:with-param name="prev" select="$prev"/>
- <xsl:with-param name="next" select="$next"/>
- </xsl:call-template>
-
- <body>
- <xsl:call-template name="body.attributes"/>
- <div id="pageContent" style="display:none;">
- <xsl:call-template name="user.header.navigation"/>
-
- <xsl:call-template name="header.navigation">
- <xsl:with-param name="prev" select="$prev"/>
- <xsl:with-param name="next" select="$next"/>
- <xsl:with-param name="nav.context" select="$nav.context"/>
- </xsl:call-template>
-
- <xsl:call-template name="user.header.content"/>
-
- <xsl:copy-of select="$content"/>
-
- <xsl:call-template name="user.footer.content"/>
-
- <xsl:call-template name="footer.navigation">
- <xsl:with-param name="prev" select="$prev"/>
- <xsl:with-param name="next" select="$next"/>
- <xsl:with-param name="nav.context" select="$nav.context"/>
- </xsl:call-template>
-
- <xsl:call-template name="user.footer.navigation"/>
- </div>
- </body>
- </html>
-</xsl:template>
-
-<!-- *extra* slim HTML head to strip <link> tags -->
-<xsl:template name="html.head">
- <head>
- <xsl:call-template name="system.head.content"/>
- <xsl:call-template name="head.content"/>
- <xsl:call-template name="user.head.content"/>
- </head>
-</xsl:template>
-
-<xsl:template name="user.head.content">
- <xsl:param name="node" select="."/>
- <script type="text/javascript" language="JavaScript1.2"
src="_script.js"></script>
-</xsl:template>
-
-<!-- We need quite different body attributes than the defaults -->
-<xsl:template name="body.attributes">
- <xsl:attribute name="onload">if (typeof displayPage == 'function') {
displayPage(); } else {document.all['pageContent'].style.display =
'block';}</xsl:attribute>
- <xsl:attribute name="oncontextmenu">if(prefs_context_override){return
false;}</xsl:attribute>
-</xsl:template>
-
-<!-- We need no header navigation, but we'll need footer -->
-<xsl:param name="suppress.navigation" select="0"/>
-<xsl:param name="suppress.header.navigation" select="1"/>
-
-<!-- DIV place for user notes to be inserted dynamically -->
-<xsl:template name="user.footer.content">
- <a id="user_notes"></a>
- <div id="pageNotes"></div>
- <script type="text/javascript" language="JavaScript1.2">
- function displayNotes() { _displayNotes(); }
- if (typeof loadNotes == "function") { loadNotes(); }
- </script>
-</xsl:template>
-
-<!-- Footer part with special table for our special needs ;) -->
-<xsl:template name="footer.navigation">
- <xsl:param name="prev" select="/foo"/>
- <xsl:param name="next" select="/foo"/>
-
- <div id="pageNav">
- <table width="100%" border="0" cellspacing="10" cellpadding="0"
class="navigation">
- <tr align="left" valign="middle">
- <td width="30%">
- <xsl:if test="count($prev)>0">
- <span id="navPrev">
- <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:text><< </xsl:text>
- <xsl:apply-templates select="$prev" mode="title.markup"/>
- </a>
- </span>
- </xsl:if>
- </td>
- <td align="center" width="40%">
- <span id="navPath">
- <xsl:apply-templates select="." mode="path.to.this.page">
- <xsl:with-param name="actpage" select="true()"/>
- </xsl:apply-templates>
- </span>
- </td>
- <td align="right" width="30%">
- <xsl:if test="count($next)>0">
- <span id="navNext">
- <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:apply-templates select="$next" mode="title.markup"/>
- <xsl:text> >></xsl:text>
- </a>
- </span>
- </xsl:if>
- </td>
- </tr>
- <tr align="center" valign="middle">
- <td colspan="3">
- <span id="navOnline">
- <span id="navThisOnline"><a href="javascript:thisPageOnline();">This
page online</a></span>
- <xsl:text disable-output-escaping="yes"> &nbsp; </xsl:text>
- <span id="navReportBug"><a href="javascript:bugOnPage();">Report a
bug</a></span>
- </span>
- </td>
- </tr>
- </table>
- </div>
-</xsl:template>
-
-<!-- Building path to this page from the main page -->
-<xsl:template match="*" mode="path.to.this.page">
- <xsl:param name="actpage" select="false()"/>
- <xsl:variable name="up" select="parent::*"/>
-
- <!-- Call this recursively for the parent -->
- <xsl:if test="count($up)>0">
- <xsl:apply-templates select="parent::*" mode="path.to.this.page">
- <xsl:with-param name="actpage" select="false()"/>
- </xsl:apply-templates>
- </xsl:if>
-
- <!-- Choose our own title, different from the default if this
- is the main page -->
- <xsl:variable name="object.title">
- <xsl:choose>
- <xsl:when test="count($up)>0">
- <xsl:apply-templates select="." mode="title.markup"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="'Main'"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <!-- Do not link if actual page, put " : " between links -->
- <xsl:choose>
- <xsl:when test="$actpage = true()">
- <xsl:value-of select="$object.title"/>
- </xsl:when>
- <xsl:otherwise>
- <a>
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="."/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:value-of select="$object.title"/>
- </a>
- <xsl:text> : </xsl:text>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<!-- Remove block in ./docbook/htmlhelp/htmlhelp-common.xsl for building
- functions index -->
-<xsl:template match="index">
- <xsl:apply-templates/>
-</xsl:template>
-
-<!-- Do not generate ToC for index page -->
-<!-- Copy of native DocBook template with "if" inserted -->
-<xsl:template name="component.toc">
- <xsl:param name="toc-context" select="."/>
- <xsl:param name="toc.title.p" select="true()"/>
-
- <xsl:if test="@id!='indexes'">
- <xsl:call-template name="make.toc">
- <xsl:with-param name="toc-context" select="$toc-context"/>
- <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
- <xsl:with-param name="nodes" select="section|sect1|refentry
- |article|bibliography|glossary
- |appendix|index
- |bridgehead[not(@renderas)
- and $bridgehead.in.toc !=
0]
- |.//[EMAIL PROTECTED]'sect1'
- and $bridgehead.in.toc
!= 0]"/>
- </xsl:call-template>
- </xsl:if>
-</xsl:template>
-
-
-
-<!-- *************** HH HTML MARKUP CUSTOMIZATIONS **************** -->
-
-<!-- output formal object titles enclosed in <h3> tags -->
-<!-- formalhead was seen in abstract title, examples, tables -->
-<xsl:template name="formal.object.heading">
- <xsl:param name="object" select="."/>
- <h3 class="formalhead">
- <xsl:call-template name="anchor"/>
- <xsl:apply-templates select="$object" mode="object.title.markup">
- <xsl:with-param name="allow-anchors" select="1"/>
- </xsl:apply-templates>
- </h3>
-</xsl:template>
-
-<!-- Use simple bold text for admonitions (note|important|warning|caution|tip)
-->
-<xsl:template name="nongraphical.admonition">
- <div class="{name(.)}">
- <xsl:if test="$admon.style">
- <xsl:attribute name="style">
- <xsl:value-of select="$admon.style"/>
- </xsl:attribute>
- </xsl:if>
-
- <b>
- <xsl:call-template name="anchor"/>
- <xsl:apply-templates select="." mode="object.title.markup"/>
- <xsl:text>: </xsl:text>
- </b>
-
- <xsl:apply-templates/>
- </div>
-</xsl:template>
-
-<!-- Tune table cellpadding and cellspacing -->
-<xsl:param name="html.cellspacing" select="'1'"/>
-<xsl:param name="html.cellpadding" select="'2'"/>
-<!-- Tune table borders -->
-<xsl:param name="table.borders.with.css" select="1"/>
-<xsl:param name="table.cell.border.thickness" select="''"/>
-<xsl:param name="table.cell.border.style" select="''"/>
-
-
-
-<!-- Special REFERENCE PAGE formatting for HH -->
-
-<!-- REFERENCE PAGE TITLE or REFERENCE TITLEPAGE -->
-<!-- We need <refname> to be in page title (page header which also called
- titlepage in templates).
- Native <refentry> template calls "refentry.titlepage" template to display
- page header. "refentry.titlepage" is generated automatically as described
- in http://www.sagehill.net/docbookxsl/HtmlCustomEx.html#HTMLTitlePage
-
- Default template doesn't produce titlepage content for <refname>, but
- <refname> can be rendered with "refentry.title" in html/refentry.xsl
-
- FIX: replace autogenerated template with ours custom as we don't have
- template for automatic generation of titlepage templates
--->
-<xsl:template name="refentry.titlepage">
- <div class="titlepage">
- <xsl:call-template name="refentry.title"/>
- </div>
-</xsl:template>
-
-<!-- Function page sample:
-<h2 class="subheader">Format a local time/date. (PHP 3, PHP 4 >= 4.0.0)<br>
-Usage: string date (string format, int [timestamp])<br></h2>
--->
-<xsl:template match="refnamediv">
- <div class="{name(.)}">
- <xsl:call-template name="anchor"/>
- <h2 class="subheader">
- <span id="funcPurpose"><xsl:value-of select="./refpurpose"/></span>
- (<span id="funcAvail"><xsl:value-of select="$version/[EMAIL
PROTECTED](current()/refname)]/@from"/></span>)
- <br/>
- <span id="funcUsage"><xsl:apply-templates
select="../refsect1/methodsynopsis" mode="php"/></span>
- </h2>
- </div>
-</xsl:template>
-
-<!-- Rendering of METHODSYNOPSIS with span tags. 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
role="reference">matches</parameter></methodparam>
- <methodparam
choice="opt"><type>int</type><parameter>flags</parameter></methodparam>
- </methodsynopsis>
-
- This overrides common.xsl templates
--->
-<!-- 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">
- <div class="{name(.)}">
- <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>
- </div>
-</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:if test="./parameter/@role='reference'">
- <xsl:text>&</xsl:text>
- </xsl:if>
- <xsl:value-of select="./parameter/text()"/>
- </span>
-</xsl:template>
-
-
-<!-- REFERENCE PAGE CONTENTS -->
-
-<!-- Drop out constant "Description" -->
-<xsl:template match="[EMAIL PROTECTED] = 'description']/title"/>
-<!-- FIX: try to drop out "Description" in old format until we move to a
- new format completely (will not work for other language) -->
-<xsl:template match="refsect1/title[.='Description']"/>
-
-<!-- Render "See also section" -->
-<!-- FIX: old format by the same reason -->
-<xsl:template match="[EMAIL PROTECTED] = 'seealso']/title |
refsect1/title[.='See also']">
- <xsl:value-of select="."/>
-</xsl:template>
-
-<!-- Do not process methodsynopsis node as we've rendered it explicitly in
- reference titlepage above -->
-<xsl:template match="methodsynopsis"/>
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+<!--
+
+ HTML Help specific stylesheet
+
+ $Id: htmlhelp.xsl,v 1.24 2005/07/30 19:42:41 techtonik Exp $
+
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:set="http://exslt.org/sets"
+ version="1.0"
+ exclude-result-prefixes="doc exsl set">
+<!--
+ xCHM HTMLHELP customizations include:
+ - output directory for HTML and project Help files is 'htmlhelp/html/'
+ - open ulinks in _blank window
+ - CHM buttons settings
+ - custom .hhk file with index.html split in two files (titlepage and toc)
+ - custom .hhc file with same changes
+ - .hhk and .hhc are processed in html mode unlike native DocBook XSL
templates
+ - proper escaping in .hhk and .hhc to reflect transition from text to html
mode
+
+ - DOCTYPE in output HTML defines DOM standard for browser to handle JS
correctly
+ - strip <link> tags from HTML headers
+ - add javascript handlers in body attributes
+ - add root DHTML div with id ="PageContent" for skinning purposes
+ - header off, footer on (also custom with some js handlers and custom ids)
+
+ - turn on function index page building (in appendixes) and turn off ToC for
it
+ - output formal object titles enclosed in <h3> tags
+ (abstract title, examples, tables, ...?)
+ - simple bold text for admonitions (note|important|warning|caution|tip)
+ - custom tables attributes
+ - special reference page - drop out "description" title, proper rendering
for
+ "seealso", move <refname> along with function prototype to page header and
+ render it appropriately
+ TODO: need convenient reference page skeleton
+
+ NOTE: custom HTML xCHM layout described in phpdoc/en/chmonly/skins.xml or
+ http://wiki.phpdoc.info/xCHM
+-->
+
+<!-- - BASED ON 1.66.1 HTMLHELP.XSL DOCBOOK XSL STYLESHEET - -->
+
+<xsl:import href="./docbook/html/chunk.xsl"/>
+<xsl:import href="./docbook/htmlhelp/htmlhelp-common.xsl"/>
+<xsl:import href="common.xsl"/>
+
+<!-- configure/able/ parameters -->
+<xsl:include href="htmlhelp-config.xsl"/>
+
+<!-- we use CSS styling to make verbatim sections look nicy -->
+<xsl:param name="shade.verbatim" select="0"/>
+
+<xsl:param name="chunker.output.doctype-system"
select="'http://www.w3.org/TR/html4/loose.dtd'"/>
+<xsl:param name="chunker.output.doctype-public" select="'-//W3C//DTD HTML 4.01
Transitional//EN'"/>
+
+<xsl:param name="base.dir" select="'htmlhelp/html/'"/>
+<!-- project files for HTML Help are written into base.dir instead of current
directory -->
+<xsl:param name="manifest.in.base.dir" select="1"/>
+<xsl:param name="use.id.as.filename" select="1"/>
+<xsl:param name="chunk.quietly" select="1"/>
+
+<!-- Supress the ",figure,example,equation" (like DSSSL output). -->
+<xsl:param name="generate.toc">
+appendix toc,title
+article toc
+book toc,title
+chapter toc,title
+part toc,title
+preface toc
+qandadiv toc
+qandaset toc
+reference toc,title
+sect1 toc
+sect2 toc
+sect3 toc
+sect4 toc
+sect5 toc
+section toc
+set toc
+</xsl:param>
+
+<!-- Target window for external ulinks -->
+<xsl:param name="ulink.target" select="'_blank'"/>
+
+
+<!-- *************** HTML HELP PROJECT PARAMETERS **************** -->
+
+<!-- Turn off Binary TOC used Prev/Next buttons on toolbar. Files with binary
TOC can't be merged -->
+<xsl:param name="htmlhelp.hhc.binary" select="0"/>
+<xsl:param name="htmlhelp.generate.index" select="1"/>
+<xsl:param name="htmlhelp.use.hhk" select="1"/>
+<!-- <xsl:param name="htmlhelp.use.hhk" select="1"/> doesn't work -->
+
+<xsl:param name="htmlhelp.display.progress" select="0"/>
+<xsl:param name="htmlhelp.default.topic" select="'_index.html'"/>
+<xsl:param name="htmlhelp.hhp.window" select="'phpdoc'"/>
+<xsl:param name="htmlhelp.enhanced.decompilation" select="1"/>
+
+<xsl:param name="htmlhelp.hhc.folders.instead.books" select="0"/>
+<xsl:param name="htmlhelp.hhc.show.root" select="0"/>
+
+
+<!-- <xsl:with-param name="xnavigation" select="'0x23520'"/> -->
+<xsl:param name="htmlhelp.show.menu" select="0"/>
+<xsl:param name="htmlhelp.show.toolbar.text" select="1"/>
+<xsl:param name="htmlhelp.show.advanced.search" select="1"/>
+<xsl:param name="htmlhelp.show.favorities" select="1"/>
+
+<!-- <xsl:with-param name="xbuttons" select="'0x386e'"/> -->
+<!-- 0x4387E with additional stop and php.net buttons -->
+<xsl:param name="htmlhelp.button.hideshow" select="1"/>
+<xsl:param name="htmlhelp.button.locate" select="1"/>
+<xsl:param name="htmlhelp.button.back" select="1"/>
+<xsl:param name="htmlhelp.button.forward" select="1"/>
+<!-- next two buttons are questionable -->
+<xsl:param name="htmlhelp.button.stop" select="1"/>
+<xsl:param name="htmlhelp.button.refresh" select="1"/>
+<xsl:param name="htmlhelp.button.home" select="1"/>
+<xsl:param name="htmlhelp.button.options" select="1"/>
+<xsl:param name="htmlhelp.button.print" select="1"/>
+<!-- next jump button can be discussed too -->
+<!-- <xsl:param name="htmlhelp.button.jump1" select="1"/>
+<xsl:param name="htmlhelp.button.jump1.url" select="'http://www.php.net'"/>
+<xsl:param name="htmlhelp.button.jump1.title" select="'PHP.NET'"/>
+FIX: hhc.exe chokes on this link.. need additional redirection page -->
+<xsl:param name="htmlhelp.button.next" select="0"/>
+<xsl:param name="htmlhelp.button.prev" select="0"/>
+<xsl:param name="htmlhelp.button.zoom" select="0"/>
+
+
+
+<!-- *************** HTML HELP INDEX CUSTOMIZINGS (HHK) **************** -->
+
+<!-- compile custom index file (.hhk) and insert two additional files into
+ index structure. These will be created later by splitting result title
+ page with contents in two -->
+<xsl:template match="book" mode="hhk">
+ <xsl:variable name="title">
+ <xsl:apply-templates select="." mode="title.markup"/>
+ </xsl:variable>
+ <xsl:variable name="bookhref">
+ <xsl:call-template name="href.target"/>
+ </xsl:variable>
+ <xsl:variable name="toctitle">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'TableofContents'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:text>
+ </xsl:text>
+ <li><object type="text/sitemap">
+ <param name="Name" value="{normalize-space($title)}"/>
+ <param name="Local" value="_index.html"/>
+ </object></li>
+ <xsl:text>
+ </xsl:text>
+ <li><object type="text/sitemap">
+ <param name="Name" value="{normalize-space($toctitle)}"/>
+ <param name="Local" value="{$bookhref}"/>
+ </object></li>
+ <xsl:apply-templates
select="part|preface|chapter|appendix|article|reference|bibliography|colophon"
+ mode="hhk"/>
+</xsl:template>
+
+<xsl:template match="part|preface|chapter|appendix|article|reference|refentry
+ |sect1|sect2|sect3|sect4|sect5
+ |section
+ |book/glossary|article/glossary
+ |book/bibliography|article/bibliography
+ |colophon"
+ mode="hhk">
+ <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+ <xsl:if test="$ischunk='1'">
+ <xsl:variable name="title">
+ <xsl:apply-templates select="." mode="title.markup"/>
+ </xsl:variable>
+ <xsl:variable name="filename">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir" select="''"/>
+ <xsl:with-param name="base.name">
+ <xsl:apply-templates mode="chunk-filename" select="."/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:text>
+ </xsl:text>
+ <li><object type="text/sitemap">
+ <param name="Name" value="{normalize-space($title)}"/>
+ <param name="Local" value="{$filename}"/>
+ </object></li>
+ </xsl:if>
+
+ <xsl:apply-templates select="*" mode="hhk"/>
+</xsl:template>
+
+<xsl:template name="hhk">
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename">
+ <xsl:if test="$manifest.in.base.dir != 0">
+ <xsl:value-of select="$base.dir"/>
+ </xsl:if>
+ <xsl:value-of select="$htmlhelp.hhk"/>
+ </xsl:with-param>
+ <xsl:with-param name="indent" select="'yes'"/>
+ <xsl:with-param name="content"><xsl:text
disable-output-escaping="yes"><![CDATA[<!DOCTYPE HTML PUBLIC "-//IETF//DTD
HTML//EN">
+<HTML>
+<HEAD>
+<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
+<!-- Sitemap 1.0 -->
+</HEAD><BODY>
+<OBJECT type="text/site properties">
+ <param name="Window Styles" value="0x800227">
+</OBJECT>
+<UL>]]>
+</xsl:text>
+<xsl:if test="($htmlhelp.use.hhk != 0) and $htmlhelp.generate.index">
+ <xsl:choose>
+ <xsl:when test="$rootid != ''">
+ <xsl:apply-templates select="key('id',$rootid)" mode="hhk"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="/" mode="hhk"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:if>
+<xsl:text disable-output-escaping="yes"><![CDATA[</UL>
+</BODY></HTML>]]></xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- escape double quotes in titles to correctly generate .hhk entry
+ for example: <title><literal>emply("0")... -->
+<xsl:template match="title/literal">
+ <xsl:variable name="apos" select=""'"" />
+ <xsl:variable name="quot" select=''"'' />
+ <xsl:value-of select="translate(.,'"',$apos)"/>
+</xsl:template>
+
+
+
+<!-- *************** HTML HELP TOC CUSTOMIZINGS (HHC) **************** -->
+
+<!-- compile custom TOC file (.hhc) and insert two additional files into
+ contents structure. These will be created later by splitting result title
+ page with contents in two -->
+<!-- Setup style for TOC window -->
+<xsl:template name="hhc-main">
+ <xsl:text disable-output-escaping="yes"><![CDATA[<HTML>
+<HEAD></HEAD>
+<BODY>
+
+<OBJECT type="text/site properties">
+ <param name="Window Styles" value="0x800227"/>
+]]></xsl:text>
+ <xsl:if test="$htmlhelp.hhc.folders.instead.books != 0">
+ <param name="ImageType" value="Folder"/>
+ </xsl:if>
+ <xsl:text disable-output-escaping="yes"><![CDATA[</OBJECT>
+
+<UL>]]></xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="$rootid != ''">
+ <xsl:apply-templates select="key('id',$rootid)" mode="hhc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="/" mode="hhc"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:text disable-output-escaping="yes"><![CDATA[</UL></BODY>
+</HTML>]]></xsl:text>
+</xsl:template>
+
+<xsl:template match="book" mode="hhc">
+ <xsl:variable name="title">
+ <xsl:if test="$htmlhelp.autolabel=1">
+ <xsl:variable name="label.markup">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="normalize-space($label.markup)">
+ <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="title.markup"/>
+ </xsl:variable>
+ <xsl:variable name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:variable>
+ <xsl:variable name="toctitle">
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'TableofContents'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:text>
+ </xsl:text>
+ <li><object type="text/sitemap">
+ <param name="Name" value="{normalize-space($title)}"/>
+ <param name="Local" value="_index.html"/>
+ </object></li>
+ <xsl:text>
+ </xsl:text>
+ <li><object type="text/sitemap">
+ <param name="Name" value="{normalize-space($toctitle)}"/>
+ <param name="Local" value="{$href}"/>
+ </object></li>
+ <xsl:text>
+ </xsl:text>
+
+ <xsl:apply-templates
select="part|reference|preface|chapter|bibliography|appendix|article|colophon|glossary"
+ mode="hhc"/>
+</xsl:template>
+
+
+<!-- [Next template is temporarily until patch to 1.66.1 is approved] -->
+<!--
https://sourceforge.net/tracker/index.php?func=detail&aid=1048856&group_id=21935&atid=373749
-->
+<xsl:template name="hhc">
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename">
+ <xsl:if test="$manifest.in.base.dir != 0">
+ <xsl:value-of select="$base.dir"/>
+ </xsl:if>
+ <xsl:value-of select="$htmlhelp.hhc"/>
+ </xsl:with-param>
+ <xsl:with-param name="indent" select="'yes'"/>
+ <xsl:with-param name="content">
+ <xsl:call-template name="hhc-main"/>
+ </xsl:with-param>
+ <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- [Temporarily also until it will be discussed in docbook-apps about
features operating
+ in html mode - is it neccesary to escape attributes which are already
escaped in sources] -->
+<!-- Do not escape titles since we are operating in html mode -->
+<xsl:template
match="part|reference|preface|chapter|bibliography|appendix|article|glossary"
+ mode="hhc">
+ <xsl:variable name="title">
+ <xsl:if test="$htmlhelp.autolabel=1">
+ <xsl:variable name="label.markup">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="normalize-space($label.markup)">
+ <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="title.markup"/>
+ </xsl:variable>
+ <xsl:variable name="href">
+ <xsl:call-template name="href.target.with.base.dir"/>
+ </xsl:variable>
+
+ <xsl:text>
+ </xsl:text>
+ <li><object type="text/sitemap">
+ <param name="Name" value="{normalize-space($title)}"/>
+ <param name="Local" value="{$href}"/>
+ </object></li>
+ <xsl:text>
+ </xsl:text>
+
+ <xsl:if
test="reference|preface|chapter|appendix|refentry|section|sect1|bibliodiv">
+ <ul>
+ <xsl:apply-templates
+
select="reference|preface|chapter|appendix|refentry|section|sect1|bibliodiv"
+ mode="hhc"/>
+ </ul>
+ </xsl:if>
+</xsl:template>
+
+<!--
+<xsl:param name="htmlhelp.only" select="1"/>
+htmlhelp.autolabel - chapter and section numbers in ToC - off
+-->
+
+
+<!-- *************** HH HTML FILES CUSTOMIZATIONS **************** -->
+
+<xsl:param name="label.from.part" select="1"/>
+
+<!-- custom HTML xCHM layout described in phpdoc/en/chmonly/skins.xml or
+ http://wiki.phpdoc.info/xCHM -->
+<!-- Add "pageContent" div for skinning support -->
+<xsl:template name="chunk-element-content">
+ <xsl:param name="prev"/>
+ <xsl:param name="next"/>
+ <xsl:param name="nav.context"/>
+ <xsl:param name="content">
+ <xsl:apply-imports/>
+ </xsl:param>
+
+ <html>
+ <xsl:call-template name="html.head">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+
+ <body>
+ <xsl:call-template name="body.attributes"/>
+ <div id="pageContent" style="display:none;">
+ <xsl:call-template name="user.header.navigation"/>
+
+ <xsl:call-template name="header.navigation">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="nav.context" select="$nav.context"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="user.header.content"/>
+
+ <xsl:copy-of select="$content"/>
+
+ <xsl:call-template name="user.footer.content"/>
+
+ <xsl:call-template name="footer.navigation">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="nav.context" select="$nav.context"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="user.footer.navigation"/>
+ </div>
+ </body>
+ </html>
+</xsl:template>
+
+<!-- *extra* slim HTML head to strip <link> tags -->
+<xsl:template name="html.head">
+ <head>
+ <xsl:call-template name="system.head.content"/>
+ <xsl:call-template name="head.content"/>
+ <xsl:call-template name="user.head.content"/>
+ </head>
+</xsl:template>
+
+<xsl:template name="user.head.content">
+ <xsl:param name="node" select="."/>
+ <script type="text/javascript" language="JavaScript1.2"
src="_script.js"></script>
+</xsl:template>
+
+<!-- We need quite different body attributes than the defaults -->
+<xsl:template name="body.attributes">
+ <xsl:attribute name="onload">if (typeof displayPage == 'function') {
displayPage(); } else {document.all['pageContent'].style.display =
'block';}</xsl:attribute>
+ <xsl:attribute name="oncontextmenu">if(prefs_context_override){return
false;}</xsl:attribute>
+</xsl:template>
+
+<!-- We need no header navigation, but we'll need footer -->
+<xsl:param name="suppress.navigation" select="0"/>
+<xsl:param name="suppress.header.navigation" select="1"/>
+
+<!-- DIV place for user notes to be inserted dynamically -->
+<xsl:template name="user.footer.content">
+ <a id="user_notes"></a>
+ <div id="pageNotes"></div>
+ <script type="text/javascript" language="JavaScript1.2">
+ function displayNotes() { _displayNotes(); }
+ if (typeof loadNotes == "function") { loadNotes(); }
+ </script>
+</xsl:template>
+
+<!-- Footer part with special table for our special needs ;) -->
+<xsl:template name="footer.navigation">
+ <xsl:param name="prev" select="/foo"/>
+ <xsl:param name="next" select="/foo"/>
+
+ <div id="pageNav">
+ <table width="100%" border="0" cellspacing="10" cellpadding="0"
class="navigation">
+ <tr align="left" valign="middle">
+ <td width="30%">
+ <xsl:if test="count($prev)>0">
+ <span id="navPrev">
+ <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:text><< </xsl:text>
+ <xsl:apply-templates select="$prev" mode="title.markup"/>
+ </a>
+ </span>
+ </xsl:if>
+ </td>
+ <td align="center" width="40%">
+ <span id="navPath">
+ <xsl:apply-templates select="." mode="path.to.this.page">
+ <xsl:with-param name="actpage" select="true()"/>
+ </xsl:apply-templates>
+ </span>
+ </td>
+ <td align="right" width="30%">
+ <xsl:if test="count($next)>0">
+ <span id="navNext">
+ <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:apply-templates select="$next" mode="title.markup"/>
+ <xsl:text> >></xsl:text>
+ </a>
+ </span>
+ </xsl:if>
+ </td>
+ </tr>
+ <tr align="center" valign="middle">
+ <td colspan="3">
+ <span id="navOnline">
+ <span id="navThisOnline"><a href="javascript:thisPageOnline();">This
page online</a></span>
+ <xsl:text disable-output-escaping="yes"> &nbsp; </xsl:text>
+ <span id="navReportBug"><a href="javascript:bugOnPage();">Report a
bug</a></span>
+ </span>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<!-- Building path to this page from the main page -->
+<xsl:template match="*" mode="path.to.this.page">
+ <xsl:param name="actpage" select="false()"/>
+ <xsl:variable name="up" select="parent::*"/>
+
+ <!-- Call this recursively for the parent -->
+ <xsl:if test="count($up)>0">
+ <xsl:apply-templates select="parent::*" mode="path.to.this.page">
+ <xsl:with-param name="actpage" select="false()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <!-- Choose our own title, different from the default if this
+ is the main page -->
+ <xsl:variable name="object.title">
+ <xsl:choose>
+ <xsl:when test="count($up)>0">
+ <xsl:apply-templates select="." mode="title.markup"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'Main'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- Do not link if actual page, put " : " between links -->
+ <xsl:choose>
+ <xsl:when test="$actpage = true()">
+ <xsl:value-of select="$object.title"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:value-of select="$object.title"/>
+ </a>
+ <xsl:text> : </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- Remove block in ./docbook/htmlhelp/htmlhelp-common.xsl for building
+ functions index -->
+<xsl:template match="index">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- Do not generate ToC for index page -->
+<!-- Copy of native DocBook template with "if" inserted -->
+<xsl:template name="component.toc">
+ <xsl:param name="toc-context" select="."/>
+ <xsl:param name="toc.title.p" select="true()"/>
+
+ <xsl:if test="@id!='indexes'">
+ <xsl:call-template name="make.toc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="toc.title.p" select="$toc.title.p"/>
+ <xsl:with-param name="nodes" select="section|sect1|refentry
+ |article|bibliography|glossary
+ |appendix|index
+ |bridgehead[not(@renderas)
+ and $bridgehead.in.toc !=
0]
+ |.//[EMAIL PROTECTED]'sect1'
+ and $bridgehead.in.toc
!= 0]"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+
+
+<!-- *************** HH HTML MARKUP CUSTOMIZATIONS **************** -->
+
+<!-- output formal object titles enclosed in <h3> tags -->
+<!-- formalhead was seen in abstract title, examples, tables -->
+<xsl:template name="formal.object.heading">
+ <xsl:param name="object" select="."/>
+ <h3 class="formalhead">
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates select="$object" mode="object.title.markup">
+ <xsl:with-param name="allow-anchors" select="1"/>
+ </xsl:apply-templates>
+ </h3>
+</xsl:template>
+
+<!-- Use simple bold text for admonitions (note|important|warning|caution|tip)
-->
+<xsl:template name="nongraphical.admonition">
+ <div class="{name(.)}">
+ <xsl:if test="$admon.style">
+ <xsl:attribute name="style">
+ <xsl:value-of select="$admon.style"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <b>
+ <xsl:call-template name="anchor"/>
+ <xsl:apply-templates select="." mode="object.title.markup"/>
+ <xsl:text>: </xsl:text>
+ </b>
+
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<!-- Tune table cellpadding and cellspacing -->
+<xsl:param name="html.cellspacing" select="'1'"/>
+<xsl:param name="html.cellpadding" select="'2'"/>
+<!-- Tune table borders -->
+<xsl:param name="table.borders.with.css" select="1"/>
+<xsl:param name="table.cell.border.thickness" select="''"/>
+<xsl:param name="table.cell.border.style" select="''"/>
+
+
+
+<!-- Special REFERENCE PAGE formatting for HH -->
+
+<!-- REFERENCE PAGE TITLE or REFERENCE TITLEPAGE -->
+<!-- We need <refname> to be in page title (page header which also called
+ titlepage in templates).
+ Native <refentry> template calls "refentry.titlepage" template to display
+ page header. "refentry.titlepage" is generated automatically as described
+ in http://www.sagehill.net/docbookxsl/HtmlCustomEx.html#HTMLTitlePage
+
+ Default template doesn't produce titlepage content for <refname>, but
+ <refname> can be rendered with "refentry.title" in html/refentry.xsl
+
+ FIX: replace autogenerated template with ours custom as we don't have
+ template for automatic generation of titlepage templates
+-->
+<xsl:template name="refentry.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="refentry.title"/>
+ </div>
+</xsl:template>
+
+<!-- Function page sample:
+<h2 class="subheader">Format a local time/date. (PHP 3, PHP 4 >= 4.0.0)<br>
+Usage: string date (string format, int [timestamp])<br></h2>
+-->
+<xsl:template match="refnamediv">
+ <div class="{name(.)}">
+ <xsl:call-template name="anchor"/>
+ <h2 class="subheader">
+ <span id="funcPurpose"><xsl:value-of select="./refpurpose"/></span>
+ (<span id="funcAvail"><xsl:value-of select="$version/[EMAIL
PROTECTED](current()/refname)]/@from"/></span>)
+ <br/>
+ <span id="funcUsage"><xsl:apply-templates
select="../refsect1/methodsynopsis" mode="php"/></span>
+ </h2>
+ </div>
+</xsl:template>
+
+<!-- Rendering of METHODSYNOPSIS with span tags. 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
role="reference">matches</parameter></methodparam>
+ <methodparam
choice="opt"><type>int</type><parameter>flags</parameter></methodparam>
+ </methodsynopsis>
+
+ This overrides common.xsl templates
+-->
+<!-- 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">
+ <div class="{name(.)}">
+ <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>
+ </div>
+</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:if test="./parameter/@role='reference'">
+ <xsl:text>&</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="./parameter/text()"/>
+ </span>
+</xsl:template>
+
+
+<!-- REFERENCE PAGE CONTENTS -->
+
+<!-- Drop out constant "Description" -->
+<xsl:template match="[EMAIL PROTECTED] = 'description']/title"/>
+<!-- FIX: try to drop out "Description" in old format until we move to a
+ new format completely (will not work for other language) -->
+<xsl:template match="refsect1/title[.='Description']"/>
+
+<!-- Render "See also section" -->
+<!-- FIX: old format by the same reason -->
+<xsl:template match="[EMAIL PROTECTED] = 'seealso']/title |
refsect1/title[.='See also']">
+ <xsl:value-of select="."/>
+</xsl:template>
+
+<!-- Do not process methodsynopsis node as we've rendered it explicitly in
+ reference titlepage above -->
+<xsl:template match="methodsynopsis"/>
+
+</xsl:stylesheet>