New web page layout as prepared by Rainer.

svn path=/trunk/; revision=8196
This commit is contained in:
2007-05-05 16:34:57 +00:00
parent 396a19bc27
commit 1cd62a5b6d
2 changed files with 402 additions and 256 deletions

View File

@@ -1,219 +1,273 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"
encoding="UTF-8"
doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/REC-html40/loose.dtd"
indent="yes"
/>
<xsl:output method="html" encoding="utf-8" indent="yes"
doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/REC-html40/loose.dtd"/>
<!-- The top level element of the input file is "buildinfo" -->
<xsl:template match="buildinfo">
<xsl:apply-templates select="node()" />
<xsl:apply-templates select="node()"/>
</xsl:template>
<!-- The actual HTML tree is in "buildinfo/document" -->
<xsl:template match="buildinfo/document">
<xsl:element name="html">
<xsl:attribute name="lang">
<xsl:value-of select="/buildinfo/@language" />
<xsl:value-of select="/buildinfo/@language"/>
</xsl:attribute>
<xsl:apply-templates select="node()" />
<xsl:apply-templates select="node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="body">
<body>
<xsl:comment>
DO NOT MODIFY THIS DOCUMENT. IT WAS GENERATED BY XSLT PROCESSING
AND YOUR MODIFICATIONS WILL BE LOST. THE SOURCE OF THE DOCUMENT
IS IN THE .xml FILE USE make all TO REGENERATE
</xsl:comment>
<table width="100%">
<tr>
<td>
<a href="/"><img alt="[FSFE Logo]" src="/graphics/logo.png" border="0" align="left" /></a>
</td>
<td class="focus">
<table class="focus">
<tr>
<td colspan="2" class="focus-box">
<div align="center">
<form action="/cgi-bin/nph-redirect.cgi" method="get">
<select name="address" onchange="window.location.href=this.options[this.selectedIndex].value">
<option value="#"> - <xsl:value-of select="/buildinfo/textset/text[@id='select']" /> -</option>
<option><xsl:attribute name="value">http://www.fsfeurope.org<xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="/buildinfo/@language" />.html</xsl:attribute>Global</option>
<option><xsl:attribute name="value">http://www.france.fsfeurope.org<xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="/buildinfo/@language" />.html</xsl:attribute>France</option>
<option><xsl:attribute name="value">http://www.germany.fsfeurope.org<xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="/buildinfo/@language" />.html</xsl:attribute>Germany</option>
<option><xsl:attribute name="value">http://www.italy.fsfeurope.org<xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="/buildinfo/@language" />.html</xsl:attribute>Italy</option>
<option><xsl:attribute name="value">http://www.spain.fsfeurope.org<xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="/buildinfo/@language" />.html</xsl:attribute>Spain</option>
<option><xsl:attribute name="value">http://www.sweden.fsfeurope.org<xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="/buildinfo/@language" />.html</xsl:attribute>Sweden</option>
</select><br /><br />
<input type="submit" name="submit"><xsl:attribute name="value"><xsl:value-of select="/buildinfo/textset/text[@id='selectgo']" /></xsl:attribute></input>
</form>
</div>
</td>
</tr>
<!-- <tr>
<td class="focus-top-hinge">
<xsl:value-of select="/buildinfo/textset/text[@id='find']" />
</td>
<td class="focus-box">
<form method="post" action="/search.cgi">
<input type="text" size="10" name="var" />
</form>
</td>
</tr> -->
</table>
</td>
</tr>
<tr>
<td class="line" colspan="2">
<div align="center">
<xsl:for-each select="/buildinfo/trlist/tr">
<xsl:sort select="@id" />
<xsl:choose>
<xsl:when test="@id=/buildinfo/@language">
<xsl:value-of select="." disable-output-escaping="yes" />
</xsl:when>
<xsl:otherwise>
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="/buildinfo/@filename" />.<xsl:value-of select="@id" />.html</xsl:attribute>
<xsl:value-of select="." disable-output-escaping="yes" />
</xsl:element>
</xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
</xsl:for-each>
<xsl:if test="/buildinfo/@outdated='yes'"><br />
<xsl:apply-templates select="/buildinfo/textset/text[@id='outdated']/node()" />
</xsl:if>
<xsl:if test="/buildinfo/@language!=/buildinfo/document/@language"><br />
<xsl:apply-templates select="/buildinfo/textset/text[@id='notranslation']/node()" />
</xsl:if>
</div>
</td>
</tr>
<tr>
<td class="body" valign="top">
<xsl:apply-templates select="node()"/>
</td>
<td class="menu" width="150">
<xsl:for-each select="/buildinfo/menuset/menu[not(@parent)]">
<xsl:sort select="@id" />
<xsl:variable name="id"><xsl:value-of select="@id" /></xsl:variable>
<a class="menu" href="{.}">
<xsl:value-of select="/buildinfo/textset/text[@id=$id]" />
</a> <br />
<xsl:for-each select="/buildinfo/menuset/menu[@parent=$id]">
<xsl:sort select="@id" />
<a class="submenu" href="{.}">
<xsl:variable name="mid"><xsl:value-of select="@id" /></xsl:variable>
<xsl:value-of select="/buildinfo/textset/text[@id=$mid]" />
</a> <br />
</xsl:for-each>
</xsl:for-each>
<!-- "Join the Fellowship" button -->
<br/>
<a href="https://www.fsfe.org/join"><img alt="Join the Fellowship" src="/graphics/global/Join_Fellowship.png" border="0"/></a>
<br/>
<!-- "Donate Today" button >
<br/>
<a href="/help/paypal.html"><img alt="Donate today" src="/graphics/global/Become_Patron2006_w_small.png" border="0"/></a>
<br/-->
</td>
</tr>
<tr>
<td class="line" colspan="2">
<div align="center">
<xsl:apply-templates
select="/buildinfo/textset/text[@id='copyright']/node()" />
<!-- "Last changed" magic -->
<xsl:variable name="timestamp">
<xsl:value-of select="/buildinfo/document/timestamp" />
</xsl:variable>
<!-- FIXME: over time, all pages should have the timestamp -->
<!-- tags, so this conditional could be removed -->
<xsl:if test="string-length ($timestamp) &gt; 0">
<xsl:variable name="Date">
<xsl:value-of select="substring-before (substring-after
($timestamp, 'Date: '), ' $')" />
</xsl:variable>
<xsl:variable name="Author">
<xsl:value-of select="substring-before (substring-after
($timestamp, 'Author: '), ' $')" />
</xsl:variable>
<xsl:apply-templates
select="/buildinfo/textset/text[@id='lastchanged']/node()" />
<xsl:value-of select="translate ($Date, '/', '-')" />
(<xsl:value-of select="$Author" />)
</xsl:if>
<!-- Link to the XHTML source -->
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:text>/source</xsl:text>
<xsl:value-of select="/buildinfo/@filename" />
<xsl:text>.</xsl:text>
<xsl:value-of select="/buildinfo/document/@language" />
<xsl:text>.xhtml</xsl:text>
</xsl:attribute>
<xsl:text>[XHTML]</xsl:text>
</xsl:element>
<!-- Insert the inofficial translation notice if appropriate -->
<xsl:if test="/buildinfo/document/@translation='unofficial'">
<xsl:element name="br" />
<xsl:value-of select="/buildinfo/textset/text[@id='translator1']" />
<xsl:value-of select="/buildinfo/document/translator" />
<xsl:value-of select="/buildinfo/textset/text[@id='translator2']" />
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="/buildinfo/@filename" />
<xsl:text>.en.html</xsl:text>
</xsl:attribute>
<xsl:value-of select="/buildinfo/textset/text[@id='translator3']" />
</xsl:element>
<xsl:value-of select="/buildinfo/textset/text[@id='translator4']" />
</xsl:if>
<br />
<xsl:apply-templates
select="/buildinfo/textset/text[@id='permission']/node()" />
<br />
<xsl:apply-templates
select="/buildinfo/textset/text[@id='webmaster']/node()" />
</div>
</td>
</tr>
</table>
</body>
</xsl:template>
<!-- HTML head -->
<xsl:template match="head">
<head>
<xsl:copy>
<meta name="robots" content="index, follow"/>
<link rel="stylesheet" href="/fsfeurope.css" type="text/css" />
<link rel="icon" href="/graphics/fsfeurope.ico" type="image/x-icon" />
<link rel="shortcut icon" href="/graphics/fsfeurope.ico" type="image/x-icon" />
<xsl:apply-templates select="@*|node()"/>
</head>
</xsl:copy>
</xsl:template>
<xsl:template match="timestamp|translator|buildinfo/set|buildinfo/textset|buildinfo/menuset|buildinfo/trlist" />
<!-- HTML body -->
<xsl:template match="body">
<xsl:copy>
<!-- First of all, a comment to make clear this is generated -->
<xsl:comment>This file was generated by an XSLT script. Please do not edit.</xsl:comment>
<xsl:comment>Unnecessary <div>, for IE only</xsl:comment>
<xsl:element name="div">
<xsl:attribute name="class">page</xsl:attribute>
<xsl:comment>Give non-graphical browsers a way to skip the menu</xsl:comment>
<xsl:element name="a">
<xsl:attribute name="class">n</xsl:attribute>
<xsl:attribute name="id">top</xsl:attribute>
<xsl:attribute name="href">#content</xsl:attribute>
Skip menu
</xsl:element>
<!-- Menu bar -->
<xsl:element name="div">
<xsl:attribute name="class">menu</xsl:attribute>
<!-- Logo -->
<xsl:element name="div">
<xsl:attribute name="class">logo</xsl:attribute>
<xsl:element name="a">
<xsl:attribute name="class">gl</xsl:attribute>
<xsl:attribute name="href">/</xsl:attribute>
<img alt="[FSFE Logo]" src="/graphics/logo.png"/>
</xsl:element>
</xsl:element>
<!-- Menu -->
<xsl:element name="ul">
<xsl:for-each select="/buildinfo/menuset/menu[not(@parent)]">
<xsl:sort select="@id"/>
<xsl:variable name="id"><xsl:value-of select="@id"/></xsl:variable>
<xsl:element name="li">
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="{.}"/>
<xsl:value-of select="/buildinfo/textset/text[@id=$id]"/>
</xsl:element>
</xsl:element>
<xsl:for-each select="/buildinfo/menuset/menu[@parent=$id]">
<xsl:sort select="@id" />
<xsl:variable name="mid"><xsl:value-of select="@id"/></xsl:variable>
<xsl:element name="li">
<xsl:attribute name="class">submenu</xsl:attribute>
<xsl:element name="a">
<xsl:value-of select="/buildinfo/textset/text[@id=$mid]"/>
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:for-each>
</xsl:element>
<!-- Focus list -->
<xsl:element name="ul">
<xsl:variable name="filename"><xsl:value-of select="/buildinfo/@filename"/>.<xsl:value-of select="/buildinfo/@language"/>.html</xsl:variable>
<xsl:element name="li">
<xsl:element name="a"><xsl:attribute name="href">http://www.fsfeurope.org<xsl:value-of select="$filename"/></xsl:attribute>Our global work</xsl:element>
</xsl:element>
<xsl:element name="li">
<xsl:attribute name="class">submenu</xsl:attribute>
<xsl:element name="a"><xsl:attribute name="href">http://www.germany.fsfeurope.org<xsl:value-of select="$filename"/></xsl:attribute>Germany</xsl:element>
</xsl:element>
<xsl:element name="li">
<xsl:attribute name="class">submenu</xsl:attribute>
<xsl:element name="a"><xsl:attribute name="href">http://www.italy.fsfeurope.org<xsl:value-of select="$filename"/></xsl:attribute>Italy</xsl:element>
</xsl:element>
<xsl:element name="li">
<xsl:attribute name="class">submenu</xsl:attribute>
<xsl:element name="a"><xsl:attribute name="href">http://www.spain.fsfeurope.org<xsl:value-of select="$filename"/></xsl:attribute>Spain</xsl:element>
</xsl:element>
<xsl:element name="li">
<xsl:attribute name="class">submenu</xsl:attribute>
<xsl:element name="a"><xsl:attribute name="href">http://www.sweden.fsfeurope.org<xsl:value-of select="$filename"/></xsl:attribute>Sweden</xsl:element>
</xsl:element>
</xsl:element>
<!-- Sister organisation list -->
<xsl:element name="ul">
<xsl:element name="li">Our sister organisations</xsl:element>
<xsl:element name="li">
<xsl:attribute name="class">submenu</xsl:attribute>
<xsl:element name="a"><xsl:attribute name="href">http://www.fsf.org</xsl:attribute>FSF</xsl:element>
</xsl:element>
<xsl:element name="li">
<xsl:attribute name="class">submenu</xsl:attribute>
<xsl:element name="a"><xsl:attribute name="href">http://www.fsf.org.in</xsl:attribute>FSF India</xsl:element>
<xsl:element name="li">
<xsl:attribute name="class">submenu</xsl:attribute>
<xsl:element name="a"><xsl:attribute name="href">http://www.fsfla</xsl:attribute>FSF Latin America</xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
<!-- End Menu bar -->
<!-- Language bar -->
<xsl:element name="div">
<xsl:attribute name="class">language</xsl:attribute>
<!-- Translation list -->
<xsl:element name="ul">
<xsl:for-each select="/buildinfo/trlist/tr">
<xsl:sort select="@id"/>
<xsl:element name="li">
<xsl:choose>
<xsl:when test="@id=/buildinfo/@language">
<xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:when>
<xsl:otherwise>
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="/buildinfo/@filename"/>.<xsl:value-of select="@id"/>.html</xsl:attribute>
<xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:for-each>
</xsl:element>
<!-- Outdated note -->
<xsl:if test="/buildinfo/@outdated='yes'">
<xsl:element name="p">
<xsl:apply-templates select="/buildinfo/textset/text[@id='outdated']/node()" />
</xsl:element>
</xsl:if>
<!-- Missing translation note -->
<xsl:if test="/buildinfo/@language!=/buildinfo/document/@language">
<xsl:element name="p">
<xsl:apply-templates select="/buildinfo/textset/text[@id='notranslation']/node()" />
</xsl:element>
</xsl:if>
</xsl:element>
<!-- End Language bar -->
<!-- Content -->
<xsl:element name="div">
<xsl:attribute name="class">content</xsl:attribute>
<!-- Here goes the actual content of the <body> node of the input file -->
<xsl:apply-templates select="node()"/>
<!-- Link to top -->
<xsl:element name="a">
<xsl:attribute name="class">n</xsl:attribute>
<xsl:attribute name="href">#top</xsl:attribute>
To top
</xsl:element>
</xsl:element>
<!-- End Content -->
<!-- Footer -->
<xsl:element name="div">
<xsl:attribute name="class">footer</xsl:attribute>
<xsl:element name="p">
<!-- Copyright -->
<xsl:apply-templates select="/buildinfo/textset/text[@id='copyright']/node()"/>
<!-- "Last changed" magic -->
<xsl:variable name="timestamp">
<xsl:value-of select="/buildinfo/document/timestamp"/>
</xsl:variable>
<!-- FIXME: over time, all pages should have the timestamp -->
<!-- tags, so this conditional could be removed -->
<xsl:if test="string-length($timestamp) &gt; 0">
<xsl:variable name="Date">
<xsl:value-of select="substring-before(substring-after($timestamp, 'Date: '), ' $')"/>
</xsl:variable>
<xsl:variable name="Author">
<xsl:value-of select="substring-before(substring-after($timestamp, 'Author: '), ' $')"/>
</xsl:variable>
<xsl:apply-templates select="/buildinfo/textset/text[@id='lastchanged']/node()"/>
<xsl:value-of select="translate ($Date, '/', '-')"/>
(<xsl:value-of select="$Author"/>)
</xsl:if>
<!-- Link to the XHTML source -->
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:text>/source</xsl:text>
<xsl:value-of select="/buildinfo/@filename"/>
<xsl:text>.</xsl:text>
<xsl:value-of select="/buildinfo/document/@language"/>
<xsl:text>.xhtml</xsl:text>
</xsl:attribute>
<xsl:text>[XHTML]</xsl:text>
</xsl:element>
<!-- Insert the inofficial translation notice if appropriate -->
<xsl:if test="/buildinfo/document/@translation='unofficial'">
<xsl:element name="br"/>
<xsl:value-of select="/buildinfo/textset/text[@id='translator1']"/>
<xsl:value-of select="/buildinfo/document/translator"/>
<xsl:value-of select="/buildinfo/textset/text[@id='translator2']"/>
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="/buildinfo/@filename"/>
<xsl:text>.en.html</xsl:text>
</xsl:attribute>
<xsl:value-of select="/buildinfo/textset/text[@id='translator3']"/>
</xsl:element>
<xsl:value-of select="/buildinfo/textset/text[@id='translator4']"/>
</xsl:if>
<!-- Permission note -->
<xsl:element name="br"/>
<xsl:apply-templates select="/buildinfo/textset/text[@id='permission']/node()"/>
<!-- Webmaster feedback note -->
<xsl:element name="br"/>
<xsl:apply-templates select="/buildinfo/textset/text[@id='webmaster']/node()">
</xsl:element>
</xsl:element>
<!-- End Footer -->
</xsl:element>
</xsl:copy>
</xsl:template>
<!-- Do not copy non-HTML elements to output -->
<xsl:template match="timestamp|translator|buildinfo/set|buildinfo/textset|buildinfo/menuset|buildinfo/trlist"/>
<!-- For all other nodes, copy verbatim -->
<xsl:template match="@*|node()" priority="-1">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>