2010-01-03 01:31:55 +00:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
2025-08-27 15:22:06 +00:00
|
|
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
2020-04-18 21:30:56 +02:00
|
|
|
<xsl:import href="fsfe.xsl"/>
|
|
|
|
|
<!-- ==================================================================== -->
|
|
|
|
|
<!-- Dynamic list of news items -->
|
|
|
|
|
<!-- ==================================================================== -->
|
2024-05-17 10:53:44 +00:00
|
|
|
<xsl:template match="dynamic-content-highlights">
|
2025-08-27 15:22:06 +00:00
|
|
|
<xsl:for-each select="/buildinfo/document/set/news[ translate(@date, '-', '') <= translate(/buildinfo/@date, '-', '') and tags/tag/@key = 'highlights' ]">
|
2020-04-18 21:30:56 +02:00
|
|
|
<xsl:sort select="@date" order="descending"/>
|
|
|
|
|
<xsl:if test="position() <= 3">
|
|
|
|
|
<xsl:element name="div">
|
|
|
|
|
<xsl:attribute name="class">column</xsl:attribute>
|
|
|
|
|
<xsl:element name="div">
|
|
|
|
|
<xsl:attribute name="class">row</xsl:attribute>
|
|
|
|
|
<!-- Image (with or without link) -->
|
|
|
|
|
<xsl:element name="div">
|
2024-05-17 10:53:44 +00:00
|
|
|
<xsl:attribute name="class">image <xsl:value-of select="tags/tag[1]/@key"/></xsl:attribute>
|
2020-05-02 00:03:37 +02:00
|
|
|
<xsl:call-template name="news-image"/>
|
2025-08-27 15:22:06 +00:00
|
|
|
</xsl:element>
|
|
|
|
|
<!-- div/image -->
|
2020-04-18 21:30:56 +02:00
|
|
|
<xsl:element name="div">
|
|
|
|
|
<xsl:attribute name="class">text</xsl:attribute>
|
|
|
|
|
<!-- Title (with or without link) -->
|
|
|
|
|
<xsl:element name="h3">
|
2020-04-28 21:16:38 +02:00
|
|
|
<xsl:call-template name="news-title"/>
|
2025-08-27 15:22:06 +00:00
|
|
|
</xsl:element>
|
|
|
|
|
<!-- h3 -->
|
2020-04-18 21:30:56 +02:00
|
|
|
<!-- Date -->
|
|
|
|
|
<xsl:element name="p">
|
2024-05-17 10:53:44 +00:00
|
|
|
<xsl:attribute name="class">tag</xsl:attribute>
|
|
|
|
|
<xsl:value-of select="tags/tag[1]"/>
|
2025-08-27 15:22:06 +00:00
|
|
|
</xsl:element>
|
|
|
|
|
<!-- p/tag -->
|
2020-04-18 21:30:56 +02:00
|
|
|
<!-- Teaser -->
|
2020-05-02 00:03:37 +02:00
|
|
|
<xsl:call-template name="news-teaser"/>
|
2025-08-27 15:22:06 +00:00
|
|
|
</xsl:element>
|
|
|
|
|
<!-- div/text -->
|
|
|
|
|
</xsl:element>
|
|
|
|
|
<!-- div/row -->
|
|
|
|
|
</xsl:element>
|
|
|
|
|
<!-- div/column -->
|
2018-08-10 07:38:22 +02:00
|
|
|
</xsl:if>
|
2020-04-18 21:30:56 +02:00
|
|
|
</xsl:for-each>
|
|
|
|
|
</xsl:template>
|
2024-05-17 10:53:44 +00:00
|
|
|
<xsl:template match="dynamic-content-news">
|
2025-08-27 15:22:06 +00:00
|
|
|
<xsl:for-each select="/buildinfo/document/set/news[ translate(@date, '-', '') <= translate(/buildinfo/@date, '-', '') ]">
|
2024-05-17 10:53:44 +00:00
|
|
|
<xsl:sort select="@date" order="descending"/>
|
|
|
|
|
<xsl:if test="position() <= 3">
|
|
|
|
|
<xsl:element name="div">
|
|
|
|
|
<xsl:element name="p">
|
|
|
|
|
<xsl:attribute name="class">text</xsl:attribute>
|
|
|
|
|
<xsl:element name="a">
|
2025-08-27 15:22:06 +00:00
|
|
|
<xsl:attribute name="href">
|
|
|
|
|
<xsl:value-of select="link"/>
|
|
|
|
|
</xsl:attribute>
|
2024-05-17 10:53:44 +00:00
|
|
|
<xsl:value-of select="title"/>
|
|
|
|
|
<xsl:value-of select="news-teaser"/>
|
|
|
|
|
</xsl:element>
|
|
|
|
|
<xsl:element name="br"/>
|
|
|
|
|
<xsl:element name="span">
|
|
|
|
|
<xsl:attribute name="class">date</xsl:attribute>
|
|
|
|
|
<xsl:value-of select="@date"/>
|
|
|
|
|
</xsl:element>
|
|
|
|
|
</xsl:element>
|
|
|
|
|
</xsl:element>
|
|
|
|
|
</xsl:if>
|
|
|
|
|
</xsl:for-each>
|
|
|
|
|
</xsl:template>
|
2020-04-18 21:30:56 +02:00
|
|
|
<!-- ==================================================================== -->
|
|
|
|
|
<!-- Dynamic list of testimonial quotes -->
|
|
|
|
|
<!-- ==================================================================== -->
|
|
|
|
|
<xsl:template match="dynamic-content-testimonials">
|
|
|
|
|
<xsl:for-each select="/buildinfo/document/set/quote[@frontpage]">
|
|
|
|
|
<xsl:element name="div">
|
|
|
|
|
<xsl:attribute name="class">column</xsl:attribute>
|
|
|
|
|
<xsl:element name="div">
|
|
|
|
|
<xsl:attribute name="class">row</xsl:attribute>
|
|
|
|
|
<!-- Image with link -->
|
|
|
|
|
<xsl:element name="div">
|
|
|
|
|
<xsl:attribute name="class">image</xsl:attribute>
|
|
|
|
|
<xsl:element name="a">
|
|
|
|
|
<xsl:attribute name="href">
|
|
|
|
|
<xsl:text>/about/people/testimonials.html#</xsl:text>
|
|
|
|
|
<xsl:value-of select="@id"/>
|
|
|
|
|
</xsl:attribute>
|
2026-02-23 09:23:04 +00:00
|
|
|
<xsl:attribute name="aria-label">
|
|
|
|
|
<xsl:call-template name="fsfe-gettext">
|
|
|
|
|
<xsl:with-param name="id" select="'read-testimonial'"/>
|
|
|
|
|
</xsl:call-template>
|
|
|
|
|
</xsl:attribute>
|
2020-04-18 21:30:56 +02:00
|
|
|
<xsl:element name="img">
|
|
|
|
|
<xsl:attribute name="class">img-circle</xsl:attribute>
|
|
|
|
|
<xsl:attribute name="src">
|
|
|
|
|
<xsl:value-of select="@image"/>
|
|
|
|
|
</xsl:attribute>
|
|
|
|
|
<xsl:attribute name="alt">
|
|
|
|
|
<xsl:value-of select="/buildinfo/document/text[@id='photograph']"/>
|
|
|
|
|
</xsl:attribute>
|
2025-08-27 15:22:06 +00:00
|
|
|
</xsl:element>
|
|
|
|
|
<!-- img -->
|
|
|
|
|
</xsl:element>
|
|
|
|
|
<!-- a -->
|
|
|
|
|
</xsl:element>
|
|
|
|
|
<!-- div/image -->
|
2020-04-18 21:30:56 +02:00
|
|
|
<!-- Text and source -->
|
|
|
|
|
<xsl:element name="div">
|
|
|
|
|
<xsl:attribute name="class">text</xsl:attribute>
|
|
|
|
|
<xsl:element name="p">
|
|
|
|
|
<xsl:apply-templates select="text/node()"/>
|
2025-08-27 15:22:06 +00:00
|
|
|
</xsl:element>
|
|
|
|
|
<!-- p -->
|
2020-04-18 21:30:56 +02:00
|
|
|
<xsl:element name="p">
|
|
|
|
|
<xsl:attribute name="class">source</xsl:attribute>
|
|
|
|
|
<xsl:element name="a">
|
|
|
|
|
<xsl:attribute name="href">
|
|
|
|
|
<xsl:text>/about/people/testimonials.html#</xsl:text>
|
|
|
|
|
<xsl:value-of select="@id"/>
|
|
|
|
|
</xsl:attribute>
|
2026-02-23 09:23:04 +00:00
|
|
|
<xsl:attribute name="aria-label">
|
|
|
|
|
<xsl:call-template name="fsfe-gettext">
|
|
|
|
|
<xsl:with-param name="id" select="'read-testimonial'"/>
|
|
|
|
|
</xsl:call-template>
|
|
|
|
|
</xsl:attribute>
|
2020-04-18 21:30:56 +02:00
|
|
|
<xsl:apply-templates select="name/node()"/>
|
2025-08-27 15:22:06 +00:00
|
|
|
</xsl:element>
|
|
|
|
|
<!-- a -->
|
|
|
|
|
</xsl:element>
|
|
|
|
|
<!-- p/source -->
|
|
|
|
|
</xsl:element>
|
|
|
|
|
<!-- div/text -->
|
|
|
|
|
</xsl:element>
|
|
|
|
|
<!-- div/row -->
|
|
|
|
|
</xsl:element>
|
|
|
|
|
<!-- div/column -->
|
2020-04-18 21:30:56 +02:00
|
|
|
</xsl:for-each>
|
|
|
|
|
</xsl:template>
|
|
|
|
|
<!-- ==================================================================== -->
|
|
|
|
|
<!-- Dynamic list of events -->
|
|
|
|
|
<!-- ==================================================================== -->
|
|
|
|
|
<xsl:template match="dynamic-content-events">
|
2025-08-27 15:22:06 +00:00
|
|
|
<xsl:for-each select="/buildinfo/document/set/event[ translate (substring(@end,1,10), '-', '') >= translate (/buildinfo/@date, '-', '') ]">
|
2020-04-18 21:30:56 +02:00
|
|
|
<xsl:sort select="@start"/>
|
|
|
|
|
<xsl:if test="position() <= 3">
|
2024-05-17 10:53:44 +00:00
|
|
|
<xsl:element name="div">
|
2025-08-27 15:22:06 +00:00
|
|
|
<!-- Description -->
|
|
|
|
|
<xsl:element name="p">
|
|
|
|
|
<xsl:attribute name="class">text</xsl:attribute>
|
|
|
|
|
<xsl:element name="a">
|
|
|
|
|
<xsl:attribute name="href">
|
|
|
|
|
<xsl:text>/events/index.html#</xsl:text>
|
|
|
|
|
<xsl:value-of select="@filename"/>
|
|
|
|
|
</xsl:attribute>
|
|
|
|
|
<xsl:value-of select="title"/>
|
|
|
|
|
</xsl:element>
|
|
|
|
|
<xsl:element name="br"/>
|
|
|
|
|
<!-- Date -->
|
|
|
|
|
<xsl:element name="span">
|
|
|
|
|
<xsl:attribute name="class">date</xsl:attribute>
|
|
|
|
|
<xsl:call-template name="event-date"/>
|
|
|
|
|
</xsl:element>
|
|
|
|
|
<!-- p/date -->
|
|
|
|
|
</xsl:element>
|
|
|
|
|
<!-- p -->
|
|
|
|
|
</xsl:element>
|
|
|
|
|
<!-- div/text -->
|
2015-07-14 09:26:34 +00:00
|
|
|
</xsl:if>
|
2020-04-18 21:30:56 +02:00
|
|
|
</xsl:for-each>
|
2011-01-13 14:29:42 +00:00
|
|
|
</xsl:template>
|
2010-11-24 17:00:57 +00:00
|
|
|
</xsl:stylesheet>
|