2006-10-28 20:33:31 +02:00
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version= "1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:date="http://exslt.org/dates-and-times"
exclude-result-prefixes="xsl date">
2006-11-10 02:16:50 +01:00
2007-02-08 04:39:10 +01:00
<xsl:include href= "ddate.xsl" />
2006-11-10 02:16:50 +01:00
2006-10-28 20:33:31 +02:00
<xsl:template match= "/page/calendar-summary" >
2010-11-09 23:13:51 +01:00
<table class= "calendar" >
2006-10-28 20:33:31 +02:00
<tr >
<th > Montag</th>
<th > Dienstag</th>
<th > Mittwoch</th>
<th > Donnerstag</th>
<th > Freitag</th>
<th > Samstag</th>
<th > Sonntag</th>
</tr>
<xsl:call-template name= "output-week" >
<xsl:with-param name= "date" >
<xsl:call-template name= "get-past-monday" >
2007-01-03 23:47:49 +01:00
<xsl:with-param name= "date" select= "concat(date:year(date:date()), '-', format-number(date:month-in-year(date:date()), '00'), '-01')" />
2006-10-28 20:33:31 +02:00
</xsl:call-template>
</xsl:with-param>
<xsl:with-param name= "stopmonth" select= "date:month-in-year(date:add(date:date(), 'P2M'))" />
</xsl:call-template>
</table>
2011-02-15 21:10:58 +01:00
<p >
Der Kalender ist auch im <a href= "{$baseurl}ical.ics" > iCal-</a> ,
<a href= "{$baseurl}xcal.xml" > XCal-</a> und <a
href="{$baseurl}reminders">remind-Format</a> verfügbar.
</p>
2006-10-28 20:33:31 +02:00
</xsl:template>
<xsl:template name= "output-week" >
<xsl:param name= "date" />
<xsl:param name= "stopmonth" />
<tr >
<xsl:call-template name= "output-day" >
<xsl:with-param name= "date" select= "$date" />
</xsl:call-template>
</tr>
<xsl:variable name= "nextweek" select= "date:add($date, 'P7D')" />
<xsl:if test= "date:month-in-year($nextweek) != $stopmonth" >
<xsl:call-template name= "output-week" >
<xsl:with-param name= "date" select= "$nextweek" />
<xsl:with-param name= "stopmonth" select= "$stopmonth" />
</xsl:call-template>
</xsl:if>
</xsl:template>
<!--
td/@class ist wie folgend aufgebaut:
* Beginnt immer mit 'cal'
* Dann 'week' für Wochentage, 'sun' für Sonntage
* '1' für aktuellen Monat, '2' für folgenden Monat, '3' für sonstige Monate
-->
<xsl:template name= "output-day" >
<xsl:param name= "date" />
<td >
<xsl:attribute name= "class" >
<xsl:text > cal</xsl:text>
<xsl:choose >
<xsl:when test= "date:day-in-week($date) = 1" > sun</xsl:when>
<xsl:otherwise > week</xsl:otherwise>
</xsl:choose>
<xsl:choose >
<xsl:when test= "date:month-in-year($date) = date:month-in-year(date:date())" > 1</xsl:when>
<xsl:when test= "date:month-in-year($date) = date:month-in-year(date:add(date:date(), 'P1M'))" > 2</xsl:when>
<xsl:otherwise > 3</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
2014-02-28 02:56:00 +01:00
<!-- vv01f: added id to jump to a specific date with links and hashtag liek {$month} - {$day} // -->
2014-02-27 20:49:26 +01:00
<xsl:attribute name= "id" >
2014-02-28 23:57:50 +01:00
<xsl:value-of select= "concat('eventday-', date:month-in-year($date), '-', date:day-in-month($date))" />
2014-02-27 20:49:26 +01:00
</xsl:attribute>
2007-02-08 04:39:10 +01:00
<xsl:variable name= "ddate" >
<xsl:call-template name= "ddate" >
<xsl:with-param name= "date" select= "$date" />
</xsl:call-template>
</xsl:variable>
2007-08-22 00:51:20 +02:00
<span class= "day" title= "{$ddate}"
id="calendar-{date:year($date)}-{date:month-in-year($date)}-{date:day-in-month($date)}"
>
2006-10-29 12:50:59 +01:00
<xsl:value-of select= "date:day-in-month($date)" />
</span>
2007-02-08 04:39:10 +01:00
2006-10-28 20:43:50 +02:00
<ul >
2012-02-27 01:02:13 +01:00
<xsl:variable name= "dholiday" >
<xsl:call-template name= "ddate-holiday" >
<xsl:with-param name= "date" select= "$date" />
</xsl:call-template>
</xsl:variable>
<li > <xsl:value-of select= "normalize-space($dholiday)" /> </li>
2006-10-28 20:43:50 +02:00
<xsl:for-each select= "event" >
2006-11-10 00:41:41 +01:00
<xsl:sort select= "start" />
2006-11-10 02:16:50 +01:00
<xsl:variable name= "start" >
<xsl:call-template name= "strip-time-from-date" >
<xsl:with-param name= "date" select= "start" />
</xsl:call-template>
</xsl:variable>
<xsl:variable name= "end" >
<xsl:call-template name= "strip-time-from-date" >
<xsl:with-param name= "date" select= "end" />
</xsl:call-template>
</xsl:variable>
2007-01-03 23:47:49 +01:00
<xsl:variable name= "date" >
2006-11-10 02:16:50 +01:00
<xsl:call-template name= "strip-time-from-date" >
<xsl:with-param name= "date" select= "$date" />
</xsl:call-template>
</xsl:variable>
2006-11-10 00:41:41 +01:00
2007-05-18 15:25:53 +02:00
<xsl:if test= "(date:seconds($start) & l t ; = d a t e : s e c o n d s ( $ d a t e ) )
and (date:seconds($date) < = date:seconds($end))">
2006-10-29 12:50:59 +01:00
<li >
2010-08-01 23:01:34 +02:00
<a >
<!-- a/@href -->
2011-11-02 02:01:04 +01:00
<xsl:if test= "string-length(link) > 0" >
2014-02-08 00:01:28 +01:00
<xsl:attribute name= "href" >
<xsl:call-template name= "make-href" >
<xsl:with-param name= "href" select= "link" />
</xsl:call-template>
</xsl:attribute>
2011-11-02 02:01:04 +01:00
</xsl:if>
2010-08-01 23:01:34 +02:00
<!-- a/@title -->
2014-02-28 16:28:44 +01:00
<xsl:attribute name= "title" >
<xsl:if test= "string-length(location) > 0" >
2014-07-21 22:50:03 +02:00
<xsl:value-of select= "concat('Ort: ', location,'
')" />
2014-02-28 16:28:44 +01:00
</xsl:if>
2014-07-21 22:39:00 +02:00
<!-- sometimes things dont have a place to happen
2014-02-28 16:28:44 +01:00
<xsl:if test= "string-length(location) = 0" >
<xsl:value-of select= "concat('Ort: ', 'GCHQ, Lingnerallee 3, 01069 Dresden')" />
</xsl:if>
2014-07-21 22:39:00 +02:00
-->
2014-02-28 16:28:44 +01:00
<xsl:if test= "string-length(date:time(start)) > 0 or string-length(date:time(end)) > 0" >
<xsl:if test= "date:day-in-month($date) = date:day-in-month(start) or date:day-in-month($date) = date:day-in-month(end)" >
2014-07-21 22:50:03 +02:00
<xsl:value-of select= "concat('', 'Zeit:')" disable-output-escaping= "yes" />
2014-02-28 16:28:44 +01:00
<xsl:if test= "date:day-in-month($date) = date:day-in-month(start) and string-length(date:time(start)) > 0 and substring(date:time(start),1,5) != ''" >
2014-02-09 03:30:45 +01:00
<xsl:value-of select= "concat(' ab ', substring(date:time(start),1,5))" />
2014-02-09 03:16:09 +01:00
</xsl:if>
2014-02-28 16:28:44 +01:00
<xsl:if test= "date:day-in-month($date) = date:day-in-month(end) and string-length(date:time(end)) > 0 and substring(date:time(end),1,5) != '' and substring(date:time(end),1,5) != substring(date:time(start),1,5)" >
2014-02-09 03:30:45 +01:00
<xsl:value-of select= "concat(' bis ', substring(date:time(end),1,5))" />
2014-02-08 16:00:35 +01:00
</xsl:if>
</xsl:if>
2014-02-28 16:28:44 +01:00
</xsl:if>
</xsl:attribute>
2010-08-01 23:01:34 +02:00
<!-- string(a) -->
2006-10-29 12:50:59 +01:00
<xsl:value-of select= "title" />
</a>
</li>
2006-10-28 20:43:50 +02:00
</xsl:if>
</xsl:for-each>
2007-02-08 04:39:10 +01:00
2006-10-28 20:43:50 +02:00
</ul>
2006-10-28 20:33:31 +02:00
</td>
<xsl:if test= "date:day-in-week($date) != 1" > <!-- Sunday? Break and return to output - week... -->
<xsl:call-template name= "output-day" >
<xsl:with-param name= "date" select= "date:add($date, 'P1D')" />
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name= "calendar-title" >
<xsl:variable name= "d1" select= "date:date()" />
<xsl:variable name= "d2" select= "date:add(date:date(), 'P1M')" />
<xsl:text > Kalender: </xsl:text>
<xsl:call-template name= "get-monthstring" >
<xsl:with-param name= "date" select= "$d1" />
</xsl:call-template>
<xsl:if test= "date:year($d1) != date:year($d2)" >
<xsl:text > </xsl:text>
<xsl:value-of select= "date:year($d1)" />
</xsl:if>
<xsl:text > & </xsl:text>
<xsl:call-template name= "get-monthstring" >
<xsl:with-param name= "date" select= "$d2" />
</xsl:call-template>
<xsl:text > </xsl:text>
<xsl:value-of select= "date:year($d2)" />
</xsl:template>
<xsl:template name= "get-past-monday" >
<xsl:param name= "date" />
<xsl:choose >
<xsl:when test= "date:day-in-week($date) = 2" >
<xsl:value-of select= "$date" />
</xsl:when>
<xsl:otherwise >
<xsl:call-template name= "get-past-monday" >
<xsl:with-param name= "date" select= "date:add($date, '-P1D')" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>