Project

Profile

Help

Bug #1603 » Ind_Pers_de.xsl

Manfred Staudinger, 2012-08-14 14:32

 
<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="2.0"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:ixsl="http://saxonica.com/ns/interactiveXSLT"
xmlns:dr="http://documenta.rudolphina.org/"
extension-element-prefixes="ixsl"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="@* | node()" mode="#all">
<xsl:copy>
<xsl:apply-templates select="@* | node()" mode="#current"/>
</xsl:copy>
</xsl:template>

<xsl:template match="/">
<xsl:result-document href="#htmlbody" method="ixsl:replace-content">
<xsl:apply-templates select="ixsl:page()/*/*/*[@id='htmlbody']/*" mode="init"/>
</xsl:result-document>
</xsl:template>
<!--
Note: mode="init" will be used until Ind_Pers_de.html and Index_de_A.html etc.
have _no_ static @onclick and div (with initial style="display: none") anymore !!!
-->
<xsl:template match="html:a/@onclick" mode="init"/>
<xsl:template match="html:li/html:div" mode="init"/>

<xsl:template match="html:div[@class='fixed']/html:a" mode="ixsl:onclick">
<xsl:variable name="current" select="id(substring(current()/@href, 2))" as="element()"/>
<xsl:call-template name="toggle-div">
<xsl:with-param name="container" select="$current/.." as="element()"/>
<xsl:with-param name="content" select="doc($current/@href)/*/*/html:div/html:ul" as="element()"/>
</xsl:call-template>
</xsl:template>
<xsl:template match="html:ul[@class='index']/*/html:a" mode="ixsl:onclick">
<xsl:sequence select="ixsl:call(ixsl:event(), 'preventDefault')"/>
<xsl:call-template name="toggle-div">
<xsl:with-param name="container" select=".." as="element()"/>
<xsl:with-param name="content" select="doc(@href)/*/*/html:div/html:ul" as="element()"/>
</xsl:call-template>
</xsl:template>
<xsl:template match="html:ul[@class='namelist']/*/html:a" mode="ixsl:onclick">
<xsl:sequence select="ixsl:call(ixsl:event(), 'preventDefault')"/>
<xsl:call-template name="toggle-div">
<xsl:with-param name="container" select=".." as="element()"/>
<xsl:with-param name="content" select="doc(@href)/*/html:* except html:title" as="element()+"/>
</xsl:call-template>
</xsl:template>

<xsl:template name="toggle-div">
<xsl:param name="container" as="element()"/>
<xsl:param name="content" as="element()+"/>
<xsl:for-each select="$container">
<xsl:choose>
<xsl:when test="html:div">
<xsl:result-document href="?select=." method="ixsl:replace-content">
<xsl:apply-templates select="*" mode="del"/>
</xsl:result-document>
</xsl:when>
<xsl:otherwise>
<xsl:result-document href="?select=." method="ixsl:append-content">
<html:div xmlns:html="http://www.w3.org/1999/xhtml" id="{html:a/@id}_div">
<xsl:apply-templates select="$content" mode="init"/>
</html:div>
</xsl:result-document>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<xsl:template match="html:div" mode="del"/>

</xsl:transform>
(2-2/2)