home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0" encoding="UTF-8"?>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | This is the transformation style sheet for Help files |
- | (main_tranform.xsl). |
- | (c) 2001 by Sun Microsystems, Inc. All Rights Reserved |
- | FPE |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | You should not edit this file unless you know what you're doing! |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | Revision History |
- | ================ |
- | |
- | 27-Jul-01: Evaluation of $Program replaced by declaration |
- | of $Prog for the same purpose |
- | 09-Aug-01: Added evaluation of th in "How to get"-popups. |
- | Changed evaluation of icon/name tables within that. |
- | 09-Aug-01: Added special formatting of "Related" header |
- | (styleclass "reltop") |
- | 09-Aug-01: Added variable for column width of first columns of |
- | tables with icons |
- | 14-Aug-01: Fixed Bug: Switches were not evaluated in document |
- | title h1 |
- | 14-Aug-01: Fixed Bug: System switches were falsely evaluated. |
- | Changed the way of switch evaluation, now using modes|
- | 17-AUG-01: Fixed Bug: switch as direct child of embedded were |
- | not evaluated |
- | 22-Aug-01: Fixed: Axis PRECEDING no longer used (wasn't |
- | supported by processor) |
- | 22-Aug-01: Now empty Howtoget links are ignored |
- | 27-Aug-01: Now the image size is evaluated (from cm to pixels) |
- | and included in the img tags. |
- | 28-Aug-01: Embedded Paras now check for a <p> ancestor |
- | instead of a parent. |
- | 30-Aug-01: Added recursive evaluation of embedded text |
- | 02-Oct-01: ABI: Added parameter cs for use in css url |
- | 10-Oct-01: Added handling for text:tab-stop and text:s |
- | 10-Oct-01: Added handling for source file admin information |
- | 15-Oct-01: Fixed Bug: fix URL vnd.sun.star.help for internal URL|
- | calls (embedded + popup-cut), $sm for external calls |
- | 19-Oct-01: Added handling of product variable parameters |
- | 25-Oct-01: Removed insertion of hr before h2 |
- | 25-Oct-01: Added language handling |
- | 15-Nov-01: Fixed Bug: embedded productname tags were not |
- | replaced |
- | 15-Nov-01: Fixed Bug: embedde ol/ul were not evaluated due |
- | to a typo |
- | 10-Dec-01: Changed transcription of "Head"s. Now they are |
- | transformed to <h>s |
- | 10-Dec-01: Added OOo-switch for Product |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- //-->
-
- <xsl:stylesheet version="1.0"
- xmlns:nu="http://www.jclark.com/xt/java/com.sun.xmlsearch.tree.NodeUtils"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="http://openoffice.org/2000/office"
- xmlns:style="http://openoffice.org/2000/style"
- xmlns:text="http://openoffice.org/2000/text"
- xmlns:table="http://openoffice.org/2000/table"
- xmlns:draw="http://openoffice.org/2000/drawing"
- xmlns:fo="http://www.w3.org/1999/XSL/Format"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="http://openoffice.org/2000/meta"
- xmlns:number="http://openoffice.org/2000/datastyle"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:chart="http://openoffice.org/2000/chart"
- xmlns:help="http://openoffice.org/2000/help">
-
- <!-- Generate html code -->
- <xsl:output method="html"/>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | STYLESHEET PARAMETER DEFINITION |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | These are used to define the parameters handed over to the |
- | stylesheet processor. They are used to build the help URLs |
- | and for application and product/name evaluation. |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- Unused parameter of mysterious origin ?-->
- <xsl:param name="Device" select="'WARP'"/>
-
- <!-- Parameters used to construct the URL prefix -->
- <xsl:param name="hp" select="''"/>
- <xsl:param name="sm" select="'vnd.sun.star.help://'"/>
- <xsl:param name="qm" select="'?'"/>
- <xsl:param name="es" select="'='"/>
- <xsl:param name="am" select="'&'"/>
- <xsl:param name="cl" select="':'"/>
- <xsl:param name="sl" select="'/'"/>
- <xsl:param name="hm" select="'#'"/>
- <xsl:param name="cs" select="''"/>
-
- <!-- Parameter used to identify the current application database -->
- <xsl:param name="Database" select="'swriter'"/>
-
- <!-- Parameter used to identify the current language -->
- <xsl:param name="Language" select="'de'"/>
-
- <!-- Parameter to identify the OS/platform used -->
- <xsl:param name="System" select="'WIN'"/>
-
- <!-- Parameters used to output help error information -->
- <xsl:param name="Id" select="'0000'"/>
- <xsl:param name="Path" select="'Path'"/>
-
- <!-- Parameters used to assign product names -->
- <xsl:param name="productname" select="'Office'"/>
- <xsl:param name="productversion" select="''"/>
- <xsl:param name="vendorname" select="'Webtop'"/>
- <xsl:param name="vendorversion" select="''"/>
- <xsl:param name="vendorshort" select="'Webtop'"/>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | STYLESHEET VARIABLE DEFINITION |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | These are used for repeated tasks in this stylesheet and only |
- | defined once here. |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!--
- Variable to identify the application used for evaluation of program switches
- This one is derived from the database name
- -->
- <xsl:variable name="Program">
- <xsl:choose>
- <xsl:when test="$Database='swriter'">WRITER</xsl:when>
- <xsl:when test="$Database='scalc'">CALC</xsl:when>
- <xsl:when test="$Database='sdraw'">DRAW</xsl:when>
- <xsl:when test="$Database='simpress'">IMPRESS</xsl:when>
- <xsl:when test="$Database='sbasic'">BASIC</xsl:when>
- <xsl:when test="$Database='smath'">MATH</xsl:when>
- <xsl:when test="$Database='schart'">CHART</xsl:when>
- <xsl:when test="$Database='portal'">PORTAL</xsl:when>
- <xsl:otherwise>NONE</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <!--
- Variable to define the language of the help document which may be different
- from the one defined in the Language *parameter*! It is evaluated from a
- meta tag in the xml source
- -->
- <xsl:variable name="lang">
- <xsl:for-each select="/html/head/meta">
- <xsl:if test="@name='language'">
- <xsl:value-of select="@content"/>
- </xsl:if>
- </xsl:for-each>
- </xsl:variable>
-
- <!-- Variables for formatting purposes. "onepixel" is the image number of a transparent 1-pixel image -->
- <xsl:variable name="colwidth_1">25</xsl:variable>
- <xsl:variable name="spacewidth">5</xsl:variable>
- <xsl:variable name="tabwidth">15</xsl:variable>
- <xsl:variable name="onepixel">67433</xsl:variable>
-
- <!-- Variable for distinguishing the Open Source distribution -->
- <xsl:variable name="Prod">
- <xsl:choose>
- <xsl:when test="$productname='StarOffice'">Commercial</xsl:when>
- <xsl:when test="$productname='StarSuite'">Commercial</xsl:when>
- <xsl:otherwise>OpenSource</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | BASIC PROCESSING OF ELEMENTS |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- Copy through of all elements including their attributes -->
- <xsl:template match="*|@*|comment()|processing-instruction()|text()">
- <xsl:copy>
- <xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()"/>
- </xsl:copy>
- </xsl:template>
-
- <xsl:template match="help:*">
- <xsl:element name="{name()}">
- <xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()"/>
- </xsl:element>
- </xsl:template>
-
- <!-- The language of the document body is set here as an attribute of the body tag -->
- <xsl:template match="body">
- <xsl:element name="body">
- <xsl:attribute name="lang"><xsl:value-of select="$lang"/></xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:template>
-
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | PROCESSING OF SPECIFIC HELP ELEMENTS |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <xsl:template match="help:help-id|help:to-be-embedded">
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="help:to-popup">
- <xsl:apply-templates/>
- </xsl:template>
-
- <!-- Text for active help must only show in the content if set to visible -->
- <xsl:template match="help:help-text">
- <xsl:if test="@value='visible'">
- <xsl:apply-templates/>
- </xsl:if>
- </xsl:template>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | CONDITIONAL PROCESSING |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | There are program, system and product switches throughout the |
- | help enabling or disabling content depending on their context |
- | which is described using the parameters/variables defined above. |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- Switches inside normal text -->
- <xsl:template match="help:switch">
- <xsl:choose>
- <xsl:when test="@select='Program'">
- <xsl:apply-templates mode="switch_prog"/>
- </xsl:when>
- <xsl:when test="@select='System'">
- <xsl:apply-templates mode="switch_sys"/>
- </xsl:when>
- <xsl:when test="@select='Product'">
- <xsl:apply-templates mode="switch_prod"/>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
-
-
- <!-- Switches inside text which is embedded from elsewhere -->
- <xsl:template match="help:switch" mode="embedded">
- <xsl:choose>
- <xsl:when test="@select='Program'">
- <xsl:apply-templates mode="switch_prog"/>
- </xsl:when>
- <xsl:when test="@select='System'">
- <xsl:apply-templates mode="switch_sys"/>
- </xsl:when>
- <xsl:when test="@select='Product'">
- <xsl:apply-templates mode="switch_prod"/>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
-
-
- <xsl:template match="help:case" mode="switch_prog">
- <xsl:if test="@select=$Program">
- <xsl:apply-templates/>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="help:default" mode="switch_prog">
- <xsl:if test="not(../help:case[@select=$Program])">
- <xsl:apply-templates/>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="help:case" mode="switch_sys">
- <xsl:if test="@select=$System">
- <xsl:apply-templates/>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="help:default" mode="switch_sys">
- <xsl:if test="not(../help:case[@select=$System])">
- <xsl:apply-templates/>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="help:case" mode="switch_prod">
- <xsl:if test="@select=$Prod">
- <xsl:apply-templates/>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="help:default" mode="switch_prod">
- <xsl:if test="not(../help:case[@select=$Prod])">
- <xsl:apply-templates/>
- </xsl:if>
- </xsl:template>
-
- <!-- Switches inside the document title -->
- <xsl:template match="help:switch" mode="doctitle">
- <xsl:if test="@select='Program' or @select='System'">
- <xsl:apply-templates mode="doctitle"/>
- </xsl:if>
- </xsl:template>
- <xsl:template match="help:case" mode="doctitle">
- <xsl:if test="@select=$Program or @select=$System">
- <xsl:apply-templates mode="doctitle"/>
- </xsl:if>
- </xsl:template>
- <xsl:template match="help:default" mode="doctitle">
- <xsl:if test="../../help:switch[@select='System'] and not(../help:case[@select=$System])">
- <xsl:apply-templates mode="doctitle"/>
- </xsl:if>
- <xsl:if test="../../help:switch[@select='Program'] and not(../help:case[@select=$Program])">
- <xsl:apply-templates mode="doctitle"/>
- </xsl:if>
- </xsl:template>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | PROCESSING OF PARAGRAPHS AND HEADINGS |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | This one is quite cascaded to take account of the different para |
- | contexts. This includes headers as in the xml source files these |
- | are only paragraphs with a special style class, viz "Head" |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- Normal Paragraphs -->
- <xsl:template match="p">
-
- <!-- Disregard empty paragraphs -->
- <xsl:choose>
- <xsl:when test=".='' and count(child::*)=0"/>
- <xsl:otherwise>
-
- <!-- Process all headings -->
- <xsl:choose>
- <xsl:when test="substring(@class,1,4)='Head'">
-
- <!-- Head 1 should only be the document title at the top and is treated differently -->
- <xsl:choose>
- <xsl:when test="@class='Head1'">
- <xsl:element name="table">
- <xsl:attribute name="width">100%</xsl:attribute>
- <xsl:attribute name="border">0</xsl:attribute>
- <xsl:attribute name="cellspacing">1</xsl:attribute>
- <xsl:attribute name="cellpadding">3</xsl:attribute>
- <xsl:attribute name="class">doctablebg</xsl:attribute>
- <xsl:element name="tr">
- <xsl:attribute name="class">doctitlebg</xsl:attribute>
- <xsl:element name="td">
- <xsl:element name="h1">
- <xsl:apply-templates mode="doctitle"/>
- </xsl:element>
- </xsl:element>
- </xsl:element>
- </xsl:element>
- <xsl:element name="br"/>
- </xsl:when>
-
- <!-- All other Heads are converted to HTML headings -->
- <xsl:when test="@class='Head2'">
- <xsl:element name="h2">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
-
- <xsl:when test="@class='Head3'">
- <xsl:element name="h3">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
-
- <xsl:when test="@class='Head4'">
- <xsl:element name="h4">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
-
- <xsl:when test="@class='Head5'">
- <xsl:element name="h5">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
-
- <xsl:when test="@class='Head6'">
- <xsl:element name="h6">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
-
- </xsl:choose>
-
- </xsl:when>
-
- <!--
- All Non-Header paragraphs are converted into HTML p with corresponding style class assigned.
- Valid style classes are Paragraph, ParaList, TextInTable, TableHead, PropText
- -->
-
- <xsl:when test="@class='Paragraph'
- or @class='ParaList'
- or @class='TextInTable'
- or @class='TableHead'
- or @class='PropText'">
- <xsl:element name="p">
- <xsl:choose>
- <!-- By special request, turn the "Related Topics" header into an own style class -->
- <xsl:when test="child::help:embedded[@Eid='related']">
- <xsl:attribute name="class">reltop</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="class"><xsl:value-of select="@class"/></xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
-
- <!-- all unknown paragraph styles are just converted into the standard "paragraph" style -->
- <xsl:otherwise>
- <xsl:element name="p">
- <xsl:attribute name="class">Paragraph</xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:otherwise>
-
- </xsl:choose>
-
- </xsl:otherwise> <!-- non-empty paras-->
- </xsl:choose>
- </xsl:template>
-
- <!-- Paragraphs inside text which is embedded from somewhere else -->
- <xsl:template match="p" mode="embedded">
-
- <!-- Disregard empty paragraphs -->
- <xsl:choose>
- <xsl:when test=".='' and count(child::*)=0"/>
- <xsl:otherwise>
- <xsl:choose>
-
- <xsl:when test="@class='Head1'">
- <xsl:element name="h2">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
-
- <xsl:when test="@class='Head2'">
- <xsl:element name="h2">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
-
- <xsl:when test="@class='Head3'">
- <xsl:element name="h3">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
-
- <xsl:when test="@class='Head4'">
- <xsl:element name="h4">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
-
- <xsl:when test="@class='Head5'">
- <xsl:element name="h5">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
-
- <xsl:when test="@class='Head6'">
- <xsl:element name="h6">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
-
- <!--
- All Non-Header paragraphs are converted into HTML p with corresponding style class assigned.
- Valid style classes are Paragraph, ParaList, TextInTable, TableHead, PropText
- -->
-
- <xsl:when test="@class='Paragraph'
- or @class='ParaList'
- or @class='TextInTable'
- or @class='TableHead'
- or @class='PropText'">
- <xsl:element name="p">
- <xsl:attribute name="class"><xsl:value-of select="@class"/></xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
-
- <!-- all unknown paragraph styles are just converted into the standard "paragraph" style -->
- <xsl:otherwise>
- <xsl:element name="p">
- <xsl:attribute name="class">Paragraph</xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:otherwise>
-
- </xsl:choose>
- </xsl:otherwise> <!-- non-empty paragraphs -->
- </xsl:choose>
- </xsl:template>
-
- <!-- Paragraphs inside popup text (mainly the information of how to get a function) -->
- <xsl:template match="p" mode="popup">
- <xsl:if test="(. != '') or (count(child::*)>0)">
- <xsl:element name="p">
- <xsl:attribute name="class">howtogetpara</xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:if>
- </xsl:template>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | PROCESSING OF LISTS |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- Numbered lists in normal text -->
- <xsl:template match="ol">
- <xsl:element name="ol">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:template>
-
- <!-- Numbered lists in text embedded from somewhere else -->
- <xsl:template match="ol" mode="embedded">
- <xsl:element name="ol">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:template>
-
- <!-- Bulleted lists in normal text -->
- <xsl:template match="ul">
- <xsl:element name="ul">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:template>
-
- <!-- Bulleted lists in text embedded from somewhere else -->
- <xsl:template match="ul" mode="embedded">
- <xsl:element name="ul">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:template>
-
- <!-- List items in any context -->
- <xsl:template match="li">
- <xsl:element name="li">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:template>
-
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | PROCESSING OF CHARACTER CLASSES |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- Process character formatting -->
- <xsl:template match="span">
- <!-- Disregard spans with table automatic formats, starting with "Tabelle" -->
- <xsl:choose>
- <xsl:when test="substring(@class,1,7)='Tabelle'">
- <xsl:apply-templates/>
- </xsl:when>
- <xsl:otherwise>
- <!-- insert emphasized span -->
- <xsl:element name="span">
- <xsl:attribute name="class">emph</xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <xsl:template match="span" mode="embedded">
- <!-- Disregard spans with table automatic formats, starting with "Tabelle" -->
- <xsl:choose>
- <xsl:when test="substring(@class,1,7)='Tabelle'">
- <xsl:apply-templates/>
- </xsl:when>
- <xsl:otherwise>
- <!-- insert emphasized span -->
- <xsl:element name="span">
- <xsl:attribute name="class">emph</xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <xsl:template match="span" mode="popup">
- <!-- Disregard spans with table automatic formats, starting with "Tabelle" -->
- <xsl:choose>
- <xsl:when test="substring(@class,1,7)='Tabelle'">
- <xsl:apply-templates/>
- </xsl:when>
- <xsl:otherwise>
- <!-- insert emphasized span -->
- <xsl:element name="span">
- <xsl:attribute name="class">emph</xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | PROCESSING OF TABLES |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- Tables should be preceded and followed by a line break -->
- <xsl:template match="table">
- <xsl:element name="br"/>
- <xsl:element name="table">
- <xsl:if test="@border>0">
- <xsl:attribute name="border">1</xsl:attribute>
- <xsl:attribute name="class">tablebg</xsl:attribute>
- </xsl:if>
- <xsl:attribute name="cellspacing">0</xsl:attribute>
- <xsl:attribute name="cellpadding">2</xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- <xsl:element name="br"/>
- </xsl:template>
- <xsl:template match="table" mode="embedded">
- <xsl:element name="br"/>
- <xsl:element name="table">
- <xsl:if test="@border>0">
- <xsl:attribute name="border">1</xsl:attribute>
- <xsl:attribute name="class">tablebg</xsl:attribute>
- </xsl:if>
- <xsl:attribute name="cellspacing">0</xsl:attribute>
- <xsl:attribute name="cellpadding">2</xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- <xsl:element name="br"/>
- </xsl:template>
- <xsl:template match="table" mode="popup">
- <xsl:element name="table">
- <xsl:attribute name="border">0</xsl:attribute>
- <xsl:attribute name="cellspacing">0</xsl:attribute>
- <xsl:attribute name="cellpadding">2</xsl:attribute>
- <xsl:apply-templates mode="popup"/>
- </xsl:element>
- </xsl:template>
- <xsl:template match="tr">
- <xsl:element name="tr">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:template>
- <xsl:template match="tr" mode="popup">
- <xsl:element name="tr">
- <xsl:apply-templates mode="popup"/>
- </xsl:element>
- </xsl:template>
- <xsl:template match="th">
- <!-- no th for borderless tables - 24/07/01-->
- <xsl:choose>
- <xsl:when test="../../table[@border>0]">
- <xsl:element name="th">
- <xsl:attribute name="align">left</xsl:attribute>
- <xsl:attribute name="valign">top</xsl:attribute>
- <xsl:attribute name="class">tableheadbg</xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
- <xsl:otherwise>
- <xsl:element name="td">
- <xsl:attribute name="align">left</xsl:attribute>
- <xsl:attribute name="valign">top</xsl:attribute>
- <xsl:attribute name="class">tabledatabg</xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <xsl:template match="td" mode="popup">
- <xsl:element name="td">
- <xsl:if test="descendant::draw:image">
- <xsl:attribute name="width"><xsl:value-of select="$colwidth_1"/></xsl:attribute>
- </xsl:if>
- <xsl:apply-templates mode="popup"/>
- </xsl:element>
- </xsl:template>
- <xsl:template match="th" mode="popup">
- <xsl:element name="td">
- <xsl:if test="descendant::draw:image">
- <xsl:attribute name="width"><xsl:value-of select="$colwidth_1"/></xsl:attribute>
- </xsl:if>
- <xsl:apply-templates mode="popup"/>
- </xsl:element>
- </xsl:template>
- <xsl:template match="td">
- <xsl:element name="td">
- <xsl:attribute name="align">left</xsl:attribute>
- <xsl:attribute name="valign">top</xsl:attribute>
- <xsl:attribute name="class">tabledatabg</xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:template>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | PROCESSING OF TEXT EMBEDDED FROM SOMEHWERE ELSE |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
-
- <!-- Process embedded help text -->
- <xsl:template match="help:embedded">
- <xsl:variable name="Link" select="concat('vnd.sun.star.help://',$Database,'/',@Id,'?Language=',$Language,'&System=',$System)"/>
- <xsl:variable name="EmbeddedDoc" select="document($Link)"/>
- <xsl:variable name="Docpart" select="@Eid"/>
- <xsl:choose>
- <!-- prevent embedded paragraphs without p tag -->
- <xsl:when test="not(ancestor::p)">
- <xsl:element name="p">
- <xsl:attribute name="class">Paragraph</xsl:attribute>
- <xsl:apply-templates select="$EmbeddedDoc//help:to-be-embedded[@Eid=$Docpart]" mode="embedded"/>
- </xsl:element>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="$EmbeddedDoc//help:to-be-embedded[@Eid=$Docpart]" mode="embedded"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <!-- Process embedded help text -->
- <xsl:template match="help:embedded" mode="embedded">
- <xsl:variable name="Link" select="concat($sm,$Database,'/',@Id,'?Language=',$Language,'&System=',$System)"/>
- <xsl:variable name="EmbeddedDoc" select="document($Link)"/>
- <xsl:variable name="Docpart" select="@Eid"/>
- <xsl:choose>
- <!-- prevent embedded paragraphs without p tag -->
- <xsl:when test="not(ancestor::p)">
- <xsl:element name="p">
- <xsl:attribute name="class">Paragraph</xsl:attribute>
- <xsl:apply-templates select="$EmbeddedDoc//help:to-be-embedded[@Eid=$Docpart]" mode="embedded"/>
- </xsl:element>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="$EmbeddedDoc//help:to-be-embedded[@Eid=$Docpart]" mode="embedded"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | PROCESSING OF POPUP TEXT |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- Process Popup help text -->
- <xsl:template match="help:popup-cut">
- <xsl:variable name="ref" select="concat('vnd.sun.star.help://',$Database,'/',@Id,'?Language=',$Language,'&System=',$System)"/>
- <xsl:variable name="popupdoc" select="document($ref)"/>
- <xsl:variable name="part" select="@Eid"/>
- <xsl:apply-templates select="$popupdoc//help:to-popup[@Eid=$part]"/>
- <!--
- <xsl:element name="hr">
- <xsl:attribute name="width">50%</xsl:attribute>
- <xsl:attribute name="align">center</xsl:attribute>
- <xsl:attribute name="size">1</xsl:attribute>
- </xsl:element>
- //-->
- </xsl:template>
-
- <!-- Process help popups -->
- <!-- Workaround for "How to get this function" popup is to load it in a small table into the document -->
- <xsl:template match="help:popup">
- <xsl:choose>
- <xsl:when test="child::help:embedded[@Eid='wie']">
- <xsl:variable name="Link" select="concat('vnd.sun.star.help://',$Database,'/',@Id,'?Language=',$Language,'&System=',$System)"/>
- <xsl:variable name="EmbeddedDoc" select="document($Link)"/>
- <xsl:variable name="Docpart" select="@Eid"/>
- <xsl:if test="$EmbeddedDoc//help:to-popup[@Eid=$Docpart]!=''">
- <xsl:element name="table">
- <xsl:attribute name="width">100%</xsl:attribute>
- <xsl:attribute name="border">0</xsl:attribute>
- <xsl:attribute name="cellspacing">0</xsl:attribute>
- <xsl:attribute name="cellpadding">4</xsl:attribute>
- <xsl:element name="tr">
- <xsl:element name="td">
- <xsl:attribute name="class">howtogetheader</xsl:attribute>
- <xsl:value-of select="."/>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:element>
- <xsl:element name="tr">
- <xsl:element name="td">
- <xsl:attribute name="class">howtogetbody</xsl:attribute>
- <xsl:apply-templates select="$EmbeddedDoc//help:to-popup[@Eid=$Docpart]" mode="popup"/>
- </xsl:element>
- </xsl:element>
- </xsl:element>
- </xsl:if>
- <xsl:element name="br"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="Link" select="concat($hp,$sm,$Database,$sl,@Id,$qm,'Language',$es,$Language,$am,'System',$es,$System,$am,'Eid',$es,@Eid)"/>
- <xsl:element name="a">
- <xsl:attribute name="class">ContentLink</xsl:attribute>
- <xsl:attribute name="href"><xsl:value-of select="$Link"/></xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | PROCESSING OF ANCHORS |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | These can be based on help index keywords or Help-IDs |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- Process anchor names (help index keywords) -->
- <xsl:template match="help:key-word">
- <xsl:element name="a">
- <xsl:attribute name="name"><xsl:value-of select="@tag"/></xsl:attribute>
- </xsl:element>
- </xsl:template>
- <xsl:template match="help:key-word" mode="doctitle">
- <xsl:element name="a">
- <xsl:attribute name="name"><xsl:value-of select="@tag"/></xsl:attribute>
- </xsl:element>
- </xsl:template>
- <!-- Process anchor names (help ids) -->
- <xsl:template match="help:help-id">
- <xsl:element name="a">
- <xsl:attribute name="name"><xsl:value-of select="@value"/></xsl:attribute>
- </xsl:element>
- </xsl:template>
- <xsl:template match="help:help-id" mode="doctitle">
- <xsl:element name="a">
- <xsl:attribute name="name"><xsl:value-of select="@value"/></xsl:attribute>
- </xsl:element>
- </xsl:template>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | PROCESSING OF LINKS |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- Process help links -->
- <xsl:template match="help:link">
- <xsl:choose>
- <xsl:when test="@Eid">
- <xsl:variable name="Link" select="concat($hp,$sm,$Database,$sl,@Id,$qm,'Language',$es,$Language,$am,'System',$es,$System,'#',@Eid)"/>
- <xsl:element name="a">
- <xsl:attribute name="class">ContentLink</xsl:attribute>
- <xsl:attribute name="href"><xsl:value-of select="$Link"/></xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="Link" select="concat($hp,$sm,$Database,$sl,@Id,$qm,'Language',$es,$Language,$am,'System',$es,$System)"/>
- <xsl:element name="a">
- <xsl:attribute name="class">ContentLink</xsl:attribute>
- <xsl:attribute name="href"><xsl:value-of select="$Link"/></xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <xsl:template match="help:link" mode="embedded">
- <xsl:choose>
- <xsl:when test="@Eid">
- <xsl:variable name="Link" select="concat($hp,$sm,$Database,$sl,@Id,$qm,'Language',$es,$Language,$am,'System',$es,$System,'#',@Eid)"/>
- <xsl:element name="a">
- <xsl:attribute name="class">ContentLink</xsl:attribute>
- <xsl:attribute name="href"><xsl:value-of select="$Link"/></xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="Link" select="concat($hp,$sm,$Database,$sl,@Id,$qm,'Language',$es,$Language,$am,'System',$es,$System)"/>
- <xsl:element name="a">
- <xsl:attribute name="class">ContentLink</xsl:attribute>
- <xsl:attribute name="href"><xsl:value-of select="$Link"/></xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <xsl:template match="help:link" mode="doctitle">
- <xsl:apply-templates/>
- </xsl:template>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | PROCESSING OF IMAGES |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- Process images -->
- <xsl:template match="draw:image | office:image">
- <xsl:element name="img">
- <xsl:variable name="pictureLink" select="concat($hp,$sm,'picture',$sl,@xlink:href,$qm,'Language',$es,$Language,$am,'System',$es,$System)"/>
- <xsl:attribute name="src"><xsl:value-of select="$pictureLink"/></xsl:attribute>
- <xsl:attribute name="width"><xsl:value-of select="round(substring-before(@svg:width,'cm')*37.8)"/></xsl:attribute>
- <xsl:attribute name="height"><xsl:value-of select="round(substring-before(@svg:height,'cm')*37.8)"/></xsl:attribute>
- </xsl:element>
- </xsl:template>
- <!-- Remove residues of formatting information -->
- <xsl:template match="style"/>
- <!-- Add CSS link to custom.css -->
- <xsl:template match="help:css-file-link">
- <xsl:variable name="CssStylesheet" select="concat($hp,$sm,$cs,$sl,$qm,'Language',$es,$Language,$am,'System',$es,$System)"/>
- <xsl:element name="link">
- <xsl:attribute name="rel">STYLESHEET</xsl:attribute>
- <xsl:attribute name="href"><xsl:value-of select="$CssStylesheet"/></xsl:attribute>
- <xsl:attribute name="type">text/css</xsl:attribute>
- </xsl:element>
- <!-- Add Encoding meta tag for correct display of asian text -->
- <xsl:element name="meta">
- <xsl:attribute name="http-equiv">Content-type</xsl:attribute>
- <xsl:attribute name="content">text/html; charset=utf-8</xsl:attribute>
- </xsl:element>
- </xsl:template>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | ERROR HANDLING |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- error handling -->
- <xsl:template match="help:error-id">
- <xsl:value-of select="$Id"/>
- </xsl:template>
- <xsl:template match="help:error-module">
- <xsl:value-of select="$Database"/>
- </xsl:template>
- <xsl:template match="help:error-path">
- <xsl:value-of select="$Path"/>
- </xsl:template>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | PROCESSING OF PRODUCT INFORMATION/BRANDING |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- Branding -->
- <xsl:template match="help:productname">
- <xsl:element name="span">
- <xsl:attribute name="class">prod</xsl:attribute>
- <xsl:value-of select="$productname"/>
- </xsl:element>
- </xsl:template>
- <xsl:template match="help:productversion">
- <xsl:element name="span">
- <xsl:attribute name="class">prod</xsl:attribute>
- <xsl:value-of select="$productversion"/>
- </xsl:element>
- </xsl:template>
- <xsl:template match="help:productpath">{installpath}</xsl:template>
- <xsl:template match="help:vendorname">
- <xsl:element name="span">
- <xsl:attribute name="class">vendor</xsl:attribute>
- <xsl:value-of select="$vendorname"/>
- </xsl:element>
- </xsl:template>
- <xsl:template match="help:vendorversion">
- <xsl:element name="span">
- <xsl:attribute name="class">vendor</xsl:attribute>
- <xsl:value-of select="$vendorversion"/>
- </xsl:element>
- </xsl:template>
- <xsl:template match="help:vendorpath">{installpath}</xsl:template>
- <xsl:template match="help:vendorshort">
- <xsl:element name="span">
- <xsl:attribute name="class">vendor</xsl:attribute>
- <xsl:value-of select="$vendorshort"/>
- </xsl:element>
- </xsl:template>
- <xsl:template match="help:productname" mode="doctitle">
- <xsl:value-of select="$productname"/>
- </xsl:template>
- <xsl:template match="help:productversion" mode="doctitle">
- <xsl:value-of select="$productversion"/>
- </xsl:template>
- <xsl:template match="help:productpath" mode="doctitle">{installpath}</xsl:template>
- <xsl:template match="help:vendorname" mode="doctitle">
- <xsl:value-of select="$vendorname"/>
- </xsl:template>
- <xsl:template match="help:vendorversion" mode="doctitle">
- <xsl:value-of select="$vendorversion"/>
- </xsl:template>
- <xsl:template match="help:vendorpath" mode="doctitle">{installpath}</xsl:template>
- <xsl:template match="help:vendorshort" mode="doctitle">
- <xsl:value-of select="$vendorshort"/>
- </xsl:template>
- <xsl:template match="help:productname" mode="popup">
- <xsl:value-of select="$productname"/>
- </xsl:template>
- <xsl:template match="help:productversion" mode="popup">
- <xsl:value-of select="$productversion"/>
- </xsl:template>
- <xsl:template match="help:productpath" mode="popup">{installpath}</xsl:template>
- <xsl:template match="help:vendorname" mode="popup">
- <xsl:value-of select="$vendorname"/>
- </xsl:template>
- <xsl:template match="help:vendorversion" mode="popup">
- <xsl:value-of select="$vendorversion"/>
- </xsl:template>
- <xsl:template match="help:vendorpath" mode="popup">{installpath}</xsl:template>
- <xsl:template match="help:vendorshort" mode="popup">
- <xsl:value-of select="$vendorshort"/>
- </xsl:template>
- <xsl:template match="help:productname" mode="embedded">
- <xsl:value-of select="$productname"/>
- </xsl:template>
- <xsl:template match="help:productversion" mode="embedded">
- <xsl:value-of select="$productversion"/>
- </xsl:template>
- <xsl:template match="help:productpath" mode="embedded">{installpath}</xsl:template>
- <xsl:template match="help:vendorname" mode="embedded">
- <xsl:value-of select="$vendorname"/>
- </xsl:template>
- <xsl:template match="help:vendorversion" mode="embedded">
- <xsl:value-of select="$vendorversion"/>
- </xsl:template>
- <xsl:template match="help:vendorpath" mode="embedded">{installpath}</xsl:template>
- <xsl:template match="help:vendorshort" mode="embedded">
- <xsl:value-of select="$vendorshort"/>
- </xsl:template>
-
- <!--
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- | ADDITIONAL STUFF |
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -->
-
- <!-- admin info -->
- <xsl:template match="referenznumber"/>
- <!-- spacing -->
- <xsl:template match="text:s">
- <!-- not currentyl working -->
- <xsl:apply-templates/>
- </xsl:template>
- <xsl:template match="text:tab-stop">
- <xsl:call-template name="spacer">
- <xsl:with-param name="width">
- <xsl:value-of select="$tabwidth"/>
- </xsl:with-param>
- </xsl:call-template>
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template name="loop">
- <xsl:param name="ct">1</xsl:param>
- <xsl:param name="cur">1</xsl:param>
- <xsl:param name="wdth">1</xsl:param>
- <xsl:call-template name="spacer">
- <xsl:with-param name="width">
- <xsl:value-of select="$wdth"/>
- </xsl:with-param>
- </xsl:call-template>
- <xsl:if test="$cur < $ct">
- <xsl:call-template name="loop">
- <xsl:with-param name="ct">
- <xsl:value-of select="$ct"/>
- </xsl:with-param>
- <xsl:with-param name="cur">
- <xsl:value-of select="$cur+1"/>
- </xsl:with-param>
- <xsl:with-param name="wdth">
- <xsl:value-of select="$wdth"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="spacer">
- <xsl:param name="width">1</xsl:param>
- <xsl:element name="img">
- <xsl:variable name="pictureLink" select="concat($hp,$sm,'picture',$sl,$onepixel,$qm,'Language',$es,$Language,$am,'System',$es,$System)"/>
- <xsl:attribute name="src"><xsl:value-of select="$pictureLink"/></xsl:attribute>
- <xsl:attribute name="width"><xsl:value-of select="$width"/></xsl:attribute>
- <xsl:attribute name="height">1</xsl:attribute>
- </xsl:element>
- </xsl:template>
- </xsl:stylesheet>
-