2006-01-06 18:59:33 +01:00
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version= "1.0"
2008-03-25 20:53:29 +01:00
xmlns="http://www.w3.org/1999/xhtml"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="xsl date">
2006-01-06 18:59:33 +01:00
2006-04-22 15:36:06 +02:00
<xsl:include href= "../common.xsl" />
2006-01-06 19:55:19 +01:00
2006-01-06 18:59:33 +01:00
<xsl:output method= "xml"
version="1.0"
encoding="utf-8"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="DTD/xhtml1-strict.dtd"
indent="yes"/>
2006-04-22 15:36:06 +02:00
<xsl:strip-space elements= "p ul td" />
2006-04-22 00:40:06 +02:00
2006-01-06 18:59:33 +01:00
<xsl:template match= "/page" >
2006-01-14 19:41:48 +01:00
<xsl:variable name= "title" >
<xsl:choose >
<xsl:when test= "/page/@pagetitle" >
<xsl:value-of select= "/page/@pagetitle" />
</xsl:when>
<xsl:when test= "/page/@title" >
<xsl:value-of select= "/page/@title" />
</xsl:when>
<xsl:otherwise >
<xsl:comment > <xsl:text > missing title </xsl:text> </xsl:comment>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
2008-03-25 20:53:29 +01:00
<html lang= "de" xml:lang= "de" >
2006-04-28 23:57:52 +02:00
<xsl:call-template name= "htmlhead" >
<xsl:with-param name= "title" select= "$title" />
</xsl:call-template>
2006-01-06 18:59:33 +01:00
<body >
2006-04-22 00:40:03 +02:00
<xsl:call-template name= "heading" >
2006-04-22 15:36:06 +02:00
<xsl:with-param name= "title" select= "$title" />
</xsl:call-template>
2008-03-25 20:53:29 +01:00
<div id= "content" >
2006-01-06 18:59:33 +01:00
<xsl:apply-templates />
</div>
2006-04-22 15:36:06 +02:00
<xsl:call-template name= "ending" />
2006-04-22 00:40:03 +02:00
</body>
</html>
</xsl:template>
<!-- Parse XHTML schedule generated by Pentabarf[tm] -->
2006-05-08 02:58:41 +02:00
<!-- Da ich hier nicht lange frickeln wollte, wird xhtml nochmal als
extra NS behandelt, also jegliche Elemente in XPath mit xhtml:
prefixen
Weiterhin ist Pentabarf-Output XHTML und kein schicker XML-Dialekt.
Dafür haben wir da drin aber schon eine schicke Tabellenstruktur. Für
die <td /> s usw. extra Templates anzulegen war mir zu unsauber, deshalb
wird hier überall manuell durchiteriert.
Vorgehensweise klar? -~~~~ -->
2008-03-25 20:53:29 +01:00
<xsl:template match= "/html" >
2006-04-28 23:57:52 +02:00
<xsl:variable name= "title" > Programm</xsl:variable>
2006-04-22 00:40:03 +02:00
<html xmlns= "http://www.w3.org/1999/xhtml" lang= "de" xml:lang= "de" >
2006-04-28 23:57:52 +02:00
<xsl:call-template name= "htmlhead" >
<xsl:with-param name= "title" select= "$title" />
2006-05-09 12:44:28 +02:00
</xsl:call-template>
2006-04-22 00:40:03 +02:00
<body >
<xsl:call-template name= "heading" >
2006-04-28 23:57:52 +02:00
<xsl:with-param name= "title" select= "$title" />
2006-04-22 00:40:03 +02:00
</xsl:call-template>
2006-05-08 02:58:41 +02:00
2006-04-22 00:40:03 +02:00
<div id= "bodyText" >
2006-05-08 02:58:41 +02:00
<table cellpadding= "4" cellspacing= "6" class= "schedule" >
2008-03-25 20:53:29 +01:00
<xsl:for-each select= "body/div/div/table" >
2006-05-09 12:44:28 +02:00
<tr >
<th align= "center" colspan= "3" class= "scheduledate" >
2006-05-08 02:58:41 +02:00
<xsl:choose >
2007-04-29 16:02:33 +02:00
<xsl:when test= "position()=1" > 5. Mai</xsl:when>
<xsl:when test= "position()=2" > 6. Mai</xsl:when>
2006-05-08 02:58:41 +02:00
</xsl:choose>
2006-05-09 12:44:28 +02:00
</th>
2006-05-09 12:28:12 +02:00
</tr>
2006-05-08 02:58:41 +02:00
2006-05-09 12:28:12 +02:00
<tr >
2008-03-25 20:53:29 +01:00
<xsl:for-each select= "thead/tr/th" >
2006-05-08 02:58:41 +02:00
<th >
2008-03-25 20:53:29 +01:00
<xsl:if test= "strong" >
2006-05-08 02:58:41 +02:00
<xsl:attribute name= "class" > schedulehead</xsl:attribute>
<xsl:value-of select= "." />
</xsl:if>
</th>
</xsl:for-each>
2006-05-09 12:44:28 +02:00
</tr>
2006-05-08 02:58:41 +02:00
2008-03-25 20:53:29 +01:00
<xsl:for-each select= "tbody/tr" >
2006-05-09 12:46:07 +02:00
<tr >
2008-03-25 20:53:29 +01:00
<xsl:for-each select= "td" >
2006-05-09 12:46:07 +02:00
<xsl:if test= "@class" >
<td >
<xsl:attribute name= "class" >
2006-05-08 02:58:41 +02:00
<xsl:choose >
2006-05-09 12:46:07 +02:00
<xsl:when test= "@class='time'" > scheduletime</xsl:when>
<xsl:when test= "@class='room event '" > scheduleevent</xsl:when>
<xsl:otherwise > scheduleempty</xsl:otherwise>
2006-05-08 02:58:41 +02:00
</xsl:choose>
2006-05-09 12:46:07 +02:00
</xsl:attribute>
<xsl:attribute name= "rowspan" >
<xsl:value-of select= "@rowspan" />
</xsl:attribute>
<xsl:choose >
<xsl:when test= 'count(*)=0' >
<!-- Zeit oder leer -->
<xsl:value-of select= "." />
</xsl:when>
<xsl:otherwise >
<!-- Event -->
<a >
2006-05-09 13:35:20 +02:00
<xsl:attribute name= "class" > event</xsl:attribute>
2008-03-25 20:53:29 +01:00
<xsl:attribute name= "href" > <xsl:value-of select= "concat('http://www.datenspuren.de', p[@class='title']/a/@href)" /> </xsl:attribute>
<xsl:value-of select= "p[@class='title']" />
2006-05-09 12:46:07 +02:00
</a>
<ul >
2008-03-25 20:53:29 +01:00
<xsl:for-each select= "ul[@class='speakers']/li/a" >
2006-05-09 12:46:07 +02:00
<li >
<a >
2006-05-10 15:18:00 +02:00
<xsl:attribute name= "href" > <xsl:value-of select= "concat('http://www.datenspuren.de', @href)" /> </xsl:attribute>
2006-05-09 12:46:07 +02:00
<xsl:value-of select= "." />
</a>
</li>
</xsl:for-each>
</ul>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:if>
</xsl:for-each>
</tr>
</xsl:for-each>
2006-05-08 02:58:41 +02:00
</xsl:for-each>
</table>
2006-04-22 00:40:03 +02:00
</div>
2006-05-08 02:58:41 +02:00
2006-04-22 00:40:03 +02:00
<xsl:call-template name= "ending" />
2006-01-06 18:59:33 +01:00
</body>
</html>
</xsl:template>
2006-04-22 00:40:03 +02:00
<xsl:template name= "htmlhead" >
<xsl:param name= "title" />
<head >
<meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" />
2008-03-25 20:53:29 +01:00
<meta name= "description" content= "Symposium Datenspuren - Privatsphäre war gestern, 07.-08.06.2008, Kulturzentrum Scheune, veranstaltet vom Chaos Computer Club Dresden" />
<meta name= "keywords" content= "Symposium Datenspuren,c3d2,Chaos Computer Club,CCC,Dresden,Datenschutz,Privatsphäre,Anonymität,informationelle Selbstbestimmung,Überwachung,Data Mining,ETSI,RFID,Mautsystem,Remailer,TCPA,TCG,Bundestrojaner,Vorratsdatenspeicherung,Biometrie" />
2006-04-22 00:40:03 +02:00
<meta name= "robots" content= "index,follow" />
<meta name= "language" content= "German" />
<link rel= "stylesheet" type= "text/css" href= "style/style.css" />
2008-03-25 20:53:29 +01:00
<link rel= "alternate" type= "application/rss+xml" title= "RSS 2.0" href= "news-rss.xml" />
<link rel= "alternate" type= "application/atom+xml" title= "Atom 1.0" href= "news-atom.xml" />
2006-04-22 00:40:03 +02:00
<title >
2008-02-29 19:37:04 +01:00
<xsl:text > Datenspuren 2008 - </xsl:text>
2006-04-22 00:40:03 +02:00
<xsl:value-of select= "$title" />
</title>
</head>
</xsl:template>
<xsl:template name= "heading" >
2008-03-25 20:53:29 +01:00
<div id= "head" >
<p id= "c3d2" >
Chaos Computer Club Dresden
</p>
<div id= "headline" >
<h1 > Datenspuren 2008</h1>
<p >
Privatsphäre war gestern
</p>
</div>
2006-04-22 00:40:03 +02:00
</div>
2008-03-25 20:53:29 +01:00
<ul class= "navigation" >
<li > <a href= "index.html" > News</a> </li>
<li > <a href= "info.html" > Informationen</a> </li>
<li > <a href= "ort.html" > Ort</a> </li>
<!-- li><a href="programm.html">Programm</a></li -->
<!-- li><a href="lounge.html">Lounge</a></li -->
<li > <a href= "mitschnitte.html" > Mitschnitte</a> </li>
</ul>
2006-04-22 00:40:03 +02:00
</xsl:template>
<xsl:template name= "ending" >
2008-03-25 20:53:29 +01:00
<p id= "foot" >
CC BY, CCCDD 2008
<xsl:text > ‒ </xsl:text>
<a href= "/2007/" > 2007</a>
<xsl:text > </xsl:text>
<a href= "/2006/" > 2006</a>
<xsl:text > </xsl:text>
<a href= "/2005/" > 2005</a>
<xsl:text > </xsl:text>
<a href= "/2004/" > 2004</a>
</p>
</xsl:template>
<xsl:template match= "news-list" >
<xsl:variable name= "prefix" select= "@prefix" />
<xsl:variable name= "details" select= "@details" />
<xsl:for-each select= "document('../../news.xml')/page/news/newsfile" >
<xsl:sort select= "date:seconds(document(concat('../../', .))/item/@date)" data-type= "number" order= "descending" />
<xsl:variable name= "newsfile" select= "." />
<xsl:for-each select= "document(concat('../../', $newsfile))/item" >
<xsl:if test= "((string-length($prefix) = 0) or starts-with($newsfile, concat('content/news/', $prefix))) and (($details != 'resources-only') or (count(resource) > 0))" >
<h3 class= "summary" >
<a href= "https://www.c3d2.de/news/{substring-before(substring-after($newsfile, 'content/'), '.xml')}.html" class= "url" >
<xsl:value-of select= "@title" />
</a>
</h3>
<xsl:apply-templates />
</xsl:if>
</xsl:for-each>
</xsl:for-each>
2006-04-22 00:40:03 +02:00
</xsl:template>
2006-04-22 15:36:06 +02:00
2006-01-06 18:59:33 +01:00
</xsl:stylesheet>