Now use saxon8 instead of cow.
This commit is contained in:
parent
304118de22
commit
21d57fc91b
6
Makefile
6
Makefile
|
@ -1,8 +1,7 @@
|
||||||
INPUTS = index.xml footer.xml
|
INPUTS = index.xml footer.xml
|
||||||
SUBDIRS = about events docs office news users clubs media
|
SUBDIRS = about events docs office news users clubs media
|
||||||
|
|
||||||
# the following two rules are there so cow gets built first.
|
first: noroot events.ics books.xml members.xml menu.xml all
|
||||||
cow-first: noroot events.ics recurse-cow books.xml members.xml menu.xml all
|
|
||||||
find ! -regex '.*/\..*' -type f ! -perm -0664 -print0 | xargs -r0 chmod u=rwX,g=rwX,o=rX || true
|
find ! -regex '.*/\..*' -type f ! -perm -0664 -print0 | xargs -r0 chmod u=rwX,g=rwX,o=rX || true
|
||||||
find ! -regex '.*/\..*' -type d ! -perm 2775 -print0 | xargs -r0 chmod 2775 || true
|
find ! -regex '.*/\..*' -type d ! -perm 2775 -print0 | xargs -r0 chmod 2775 || true
|
||||||
find ! -regex '.*/\..*' -type d ! -group www -print0 | xargs -r0 chgrp www || true
|
find ! -regex '.*/\..*' -type d ! -group www -print0 | xargs -r0 chgrp www || true
|
||||||
|
@ -10,9 +9,6 @@ cow-first: noroot events.ics recurse-cow books.xml members.xml menu.xml all
|
||||||
noroot:
|
noroot:
|
||||||
if test $$UID = 0; then echo "don't build as root!"; exit 1; fi
|
if test $$UID = 0; then echo "don't build as root!"; exit 1; fi
|
||||||
|
|
||||||
recurse-cow:
|
|
||||||
cd cow && $(MAKE) && cd ..
|
|
||||||
|
|
||||||
members.xml:
|
members.xml:
|
||||||
echo '<?xml version='\''1.0'\''?>' > $@
|
echo '<?xml version='\''1.0'\''?>' > $@
|
||||||
echo '<memberlist>' >> $@
|
echo '<memberlist>' >> $@
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
*.o
|
|
||||||
/i686
|
|
||||||
/x86_64
|
|
||||||
/alpha
|
|
17
cow/Makefile
17
cow/Makefile
|
@ -1,17 +0,0 @@
|
||||||
ARCH=$(shell uname -m)
|
|
||||||
MAIN = $(ARCH)/cow
|
|
||||||
CFLAGS = -I/usr/include/libxml2 -DDEBUG -pedantic -ansi -Wall
|
|
||||||
LDFLAGS = $(CFLAGS) -lxml2 -lxslt
|
|
||||||
SOURCES = $(wildcard *.c)
|
|
||||||
OBJECTS = $(addprefix $(ARCH)/,$(SOURCES:.c=.o))
|
|
||||||
|
|
||||||
all: $(MAIN)
|
|
||||||
|
|
||||||
$(ARCH):
|
|
||||||
mkdir -p $(ARCH)
|
|
||||||
|
|
||||||
$(MAIN): $(OBJECTS)
|
|
||||||
$(CC) $(LDFLAGS) -o $@ $(OBJECTS)
|
|
||||||
|
|
||||||
$(ARCH)/%.o: %.c $(ARCH)
|
|
||||||
$(CC) -c $(CFLAGS) -o $@ $<
|
|
|
@ -1 +0,0 @@
|
||||||
requires libxslt to build
|
|
13
cow/debug.h
13
cow/debug.h
|
@ -1,13 +0,0 @@
|
||||||
#ifndef CSC_COW_DEBUG_H
|
|
||||||
#define CSC_COW_DEBUG_H
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
#define DEBUG_PRINT(x) do { fprintf(stderr, "%s:%d (%s): %s\n", __FILE__, \
|
|
||||||
__LINE__, __FUNCTION__, x); } while (0)
|
|
||||||
#else
|
|
||||||
#define DEBUG_PRINT(x) do { } while (0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,49 +0,0 @@
|
||||||
#include "debug.h"
|
|
||||||
#include <libxslt/extensions.h>
|
|
||||||
#include <libxml/xpath.h>
|
|
||||||
#include <libxml/xpathInternals.h>
|
|
||||||
|
|
||||||
#define COW_URI ((const xmlChar *)"http://www.csclub.uwaterloo.ca/cow")
|
|
||||||
|
|
||||||
/* return the term ({Winter,Summer,Fall} YYYY) for a date in
|
|
||||||
* YYYY-MM-DD format.
|
|
||||||
*/
|
|
||||||
void extension_cow_term(xmlXPathParserContextPtr ctxt,
|
|
||||||
int nargs)
|
|
||||||
{
|
|
||||||
xmlChar *str, *ret;
|
|
||||||
int month;
|
|
||||||
|
|
||||||
if (nargs != 1) {
|
|
||||||
xmlXPathSetArityError(ctxt);
|
|
||||||
}
|
|
||||||
str = xmlXPathPopString(ctxt);
|
|
||||||
|
|
||||||
month = (str[5] - '0')*10 + (str[6] - '0');
|
|
||||||
|
|
||||||
ret = xmlUTF8Strndup((const xmlChar*)(month < 9 ? (month < 5 ? "Winter " : "Spring ") : "Fall "), 7);
|
|
||||||
ret = xmlStrcat(ret, xmlUTF8Strsub(str, 0, 4));
|
|
||||||
|
|
||||||
xmlXPathReturnString(ctxt, ret);
|
|
||||||
xmlFree(str);
|
|
||||||
}
|
|
||||||
|
|
||||||
void *extension_init_func(xsltTransformContextPtr ctxt,
|
|
||||||
const xmlChar *URI)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void extension_shutdown_func(xsltTransformContextPtr ctxt,
|
|
||||||
const xmlChar *URI,
|
|
||||||
void *data)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void init_extensions()
|
|
||||||
{
|
|
||||||
xsltRegisterExtModule(COW_URI,
|
|
||||||
extension_init_func, extension_shutdown_func);
|
|
||||||
xsltRegisterExtModuleFunction((const xmlChar*)"term", COW_URI,
|
|
||||||
extension_cow_term);
|
|
||||||
}
|
|
100
cow/main.c
100
cow/main.c
|
@ -1,100 +0,0 @@
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <libxml/xmlmemory.h>
|
|
||||||
#include <libxml/debugXML.h>
|
|
||||||
#include <libxml/HTMLtree.h>
|
|
||||||
#include <libxml/xmlIO.h>
|
|
||||||
#include <libxml/DOCBparser.h>
|
|
||||||
#include <libxml/xinclude.h>
|
|
||||||
#include <libxml/catalog.h>
|
|
||||||
#include <libxslt/xslt.h>
|
|
||||||
#include <libxslt/xsltInternals.h>
|
|
||||||
#include <libxslt/transform.h>
|
|
||||||
#include <libxslt/xsltutils.h>
|
|
||||||
#include <libxslt/extensions.h>
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
extern int xmlLoadExtDtdDefaultValue;
|
|
||||||
|
|
||||||
void init_extensions();
|
|
||||||
|
|
||||||
/* TODO: check for parse errors */
|
|
||||||
static int error = 0;
|
|
||||||
|
|
||||||
/* output usage message. progname is the name of the executable. */
|
|
||||||
static void usage(const char* progname)
|
|
||||||
{
|
|
||||||
printf("Usage: %s [options] stylesheet input output\n", progname);
|
|
||||||
printf(" --param name value : pass a parameter to the stylesheet\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
int argNum;
|
|
||||||
const char **params = 0;
|
|
||||||
int maxparams = 0;
|
|
||||||
int nbparams = 0;
|
|
||||||
xsltStylesheetPtr cur = NULL;
|
|
||||||
xmlDocPtr doc, res;
|
|
||||||
FILE *out;
|
|
||||||
|
|
||||||
maxparams = 16;
|
|
||||||
params = (const char**)malloc(sizeof(char*) * maxparams * 2);
|
|
||||||
|
|
||||||
if (argc <= 1) {
|
|
||||||
usage(argv[0]);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (argNum = 1; argNum < argc; argNum++) {
|
|
||||||
if (argv[argNum][0] != '-')
|
|
||||||
break;
|
|
||||||
if ((!strcmp(argv[argNum], "-param")) ||
|
|
||||||
(!strcmp(argv[argNum], "--param"))) {
|
|
||||||
argNum++;
|
|
||||||
params[nbparams++] = argv[argNum++];
|
|
||||||
params[nbparams++] = argv[argNum];
|
|
||||||
if (nbparams >= maxparams * 2) {
|
|
||||||
maxparams *= 2;
|
|
||||||
params = realloc(params, sizeof(char*) * maxparams * 2);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
fprintf(stderr, "Unknown option %s\n", argv[argNum]);
|
|
||||||
usage(argv[0]);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ((argc - argNum) != 3) {
|
|
||||||
usage(argv[0]);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
params[nbparams] = NULL;
|
|
||||||
xmlSubstituteEntitiesDefault(1);
|
|
||||||
xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
|
|
||||||
|
|
||||||
init_extensions();
|
|
||||||
|
|
||||||
cur = xsltParseStylesheetFile((const xmlChar *)argv[argNum]);
|
|
||||||
argNum++;
|
|
||||||
doc = xmlParseFile(argv[argNum]);
|
|
||||||
argNum++;
|
|
||||||
if(!doc)
|
|
||||||
return 1;
|
|
||||||
res = xsltApplyStylesheet(cur, doc, params);
|
|
||||||
if(!res || error)
|
|
||||||
return 1;
|
|
||||||
out = fopen(argv[argNum], "w");
|
|
||||||
if(!out)
|
|
||||||
return 1;
|
|
||||||
xsltSaveResultToFile(out, res, cur);
|
|
||||||
|
|
||||||
fclose(out);
|
|
||||||
xsltFreeStylesheet(cur);
|
|
||||||
xmlFreeDoc(res);
|
|
||||||
xmlFreeDoc(doc);
|
|
||||||
|
|
||||||
xsltCleanupGlobals();
|
|
||||||
xmlCleanupParser();
|
|
||||||
return 0;
|
|
||||||
}
|
|
13
cscweb.xsl
13
cscweb.xsl
|
@ -1,8 +1,14 @@
|
||||||
<?xml version='1.0'?>
|
<?xml version='1.0'?>
|
||||||
|
|
||||||
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
<xsl:stylesheet version="2.0"
|
||||||
xmlns:csc="http://www.csclub.uwaterloo.ca/cow"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
extension-element-prefixes="csc">
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:csc="http://www.csclub.uwaterloo.ca/xslt">
|
||||||
|
|
||||||
|
<xsl:param name="g_date" required="yes" />
|
||||||
|
<xsl:param name="g_time" required="yes" />
|
||||||
|
<xsl:param name="g_pwd" required="yes" />
|
||||||
|
<xsl:param name="g_root" required="yes" />
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
|
@ -25,6 +31,7 @@
|
||||||
<xsl:output method="xml" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
|
<xsl:output method="xml" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
|
||||||
|
|
||||||
<!-- include additional style sheets -->
|
<!-- include additional style sheets -->
|
||||||
|
<xsl:include href="./xsl/functions.xsl" />
|
||||||
<xsl:include href="./xsl/common.xsl" />
|
<xsl:include href="./xsl/common.xsl" />
|
||||||
<xsl:include href="./xsl/directory.xsl" />
|
<xsl:include href="./xsl/directory.xsl" />
|
||||||
<xsl:include href="./xsl/menu.xsl" />
|
<xsl:include href="./xsl/menu.xsl" />
|
||||||
|
|
|
@ -1,12 +1,8 @@
|
||||||
|
|
||||||
#DEBUG = 1
|
|
||||||
OUTPUTS=$(INPUTS:.xml=.html)
|
OUTPUTS=$(INPUTS:.xml=.html)
|
||||||
XSLTARGS=--param date "'`date -I`'" --param time "'`date +%H:%M:%S`'" \
|
XSLTARGS=g_date=`date -I` g_time=`date +%H:%M:%S` \
|
||||||
--param pwd "'`pwd`'" --param root "'$(ROOT)'"
|
g_pwd="$$(pwd)" g_root="$(ROOT)"
|
||||||
|
CLASSPATH=/users/www/saxon8/saxon8.jar
|
||||||
ifdef DEBUG
|
|
||||||
XSLTARGS += -v
|
|
||||||
endif
|
|
||||||
|
|
||||||
all: $(OUTPUTS)
|
all: $(OUTPUTS)
|
||||||
@for i in $(SUBDIRS) ; do (cd $$i && ($(MAKE) || exit 1) && cd ..) ; done
|
@for i in $(SUBDIRS) ; do (cd $$i && ($(MAKE) || exit 1) && cd ..) ; done
|
||||||
|
@ -16,5 +12,5 @@ clean-recurse: clean
|
||||||
clean:
|
clean:
|
||||||
rm -f *.html events.ics
|
rm -f *.html events.ics
|
||||||
|
|
||||||
%.html: %.xml $(ROOT)/csc.dtd $(ROOT)/cscweb.xsl $(ROOT)/xsl/*.xsl $(ROOT)/events.xml $(ROOT)/news.xml $(ROOT)/menu.xml $(ROOT)/default.mk directory.xml $(ROOT)/cow/cow
|
%.html: %.xml $(ROOT)/csc.dtd $(ROOT)/cscweb.xsl $(ROOT)/xsl/*.xsl $(ROOT)/events.xml $(ROOT)/news.xml $(ROOT)/menu.xml $(ROOT)/default.mk directory.xml
|
||||||
$(ROOT)/cow/cow $(XSLTARGS) $(ROOT)/cscweb.xsl $< $@ || exit 1;
|
java -classpath $(CLASSPATH) net.sf.saxon.Transform $< $(ROOT)/cscweb.xsl $(XSLTARGS) > $@ || exit 1;
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<?xml version='1.0'?>
|
<?xml version='1.0'?>
|
||||||
|
|
||||||
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
<xsl:stylesheet version="2.0"
|
||||||
xmlns:csc="http://www.csclub.uwaterloo.ca/cow"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
extension-element-prefixes="csc">
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:csc="http://www.csclub.uwaterloo.ca/xslt">
|
||||||
|
|
||||||
<xsl:template match="all-books">
|
<xsl:template match="all-books">
|
||||||
<p>The books we currently own include:</p>
|
<p>The books we currently own include:</p>
|
||||||
|
@ -11,7 +12,7 @@
|
||||||
<th>Title</th>
|
<th>Title</th>
|
||||||
<th>Author</th>
|
<th>Author</th>
|
||||||
</tr>
|
</tr>
|
||||||
<xsl:for-each select="document('../books.xml')/booklist/book">
|
<xsl:for-each select="document(concat($g_root, '/books.xml'))/booklist/book">
|
||||||
<xsl:variable name="class">
|
<xsl:variable name="class">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="position() mod 2 = 0">books1</xsl:when>
|
<xsl:when test="position() mod 2 = 0">books1</xsl:when>
|
||||||
|
@ -31,21 +32,17 @@
|
||||||
<xsl:value-of select="@author" />
|
<xsl:value-of select="@author" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<xsl:document method="xml" encoding="ISO-8859-1"
|
<xsl:result-document method="xml" encoding="ISO-8859-1"
|
||||||
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
|
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
|
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
|
||||||
href="{translate(concat($root, '/office/books/', @isbn, '.html'), ' ', '_')}">
|
href="{translate(concat($g_root, '/office/books/', @isbn, '.html'), ' ', '_')}">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Book: <xsl:value-of select="@title" /></title>
|
<title>Book: <xsl:value-of select="@title" /></title>
|
||||||
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
|
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
|
||||||
</head>
|
</head>
|
||||||
<body><div>
|
<body><div>
|
||||||
<xsl:call-template name="header">
|
<xsl:call-template name="header" />
|
||||||
<xsl:with-param name="title" select="@title" />
|
|
||||||
<!-- TODO -->
|
|
||||||
<xsl:with-param name="pwd" select="concat($pwd, '/books')" />
|
|
||||||
</xsl:call-template>
|
|
||||||
<p>
|
<p>
|
||||||
<b>Title: </b> <xsl:value-of select="@title" /><br />
|
<b>Title: </b> <xsl:value-of select="@title" /><br />
|
||||||
<b>Edition: </b> <xsl:value-of select="@edition" /><br />
|
<b>Edition: </b> <xsl:value-of select="@edition" /><br />
|
||||||
|
@ -56,7 +53,7 @@
|
||||||
<xsl:call-template name="footer" />
|
<xsl:call-template name="footer" />
|
||||||
</div></body>
|
</div></body>
|
||||||
</html>
|
</html>
|
||||||
</xsl:document>
|
</xsl:result-document>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</table>
|
</table>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<?xml version='1.0'?>
|
<?xml version='1.0'?>
|
||||||
|
|
||||||
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
<xsl:stylesheet version="2.0"
|
||||||
xmlns:csc="http://www.csclub.uwaterloo.ca/cow"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
extension-element-prefixes="csc">
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:csc="http://www.csclub.uwaterloo.ca/xslt">
|
||||||
|
|
||||||
<xsl:template match="cscpage">
|
<xsl:template match="cscpage">
|
||||||
<html>
|
<html>
|
||||||
|
@ -57,7 +58,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="template-header">
|
<div class="template-header">
|
||||||
<xsl:apply-templates
|
<xsl:apply-templates
|
||||||
select="document(concat($pwd, '/directory.xml'))/directory"/>
|
select="document(concat($g_pwd, '/directory.xml'))/directory"/>
|
||||||
</div>
|
</div>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
@ -65,8 +66,8 @@
|
||||||
<a href="#pagetop" class="pagetop">Go to top</a>
|
<a href="#pagetop" class="pagetop">Go to top</a>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<xsl:call-template name="menu" />
|
<xsl:call-template name="menu" />
|
||||||
<p>This page was generated on <xsl:value-of select="$date" /> at
|
<p>This page was generated on <xsl:value-of select="$g_date" /> at
|
||||||
<xsl:value-of select="$time" />.</p>
|
<xsl:value-of select="$g_time" />.</p>
|
||||||
<p class="infobox">
|
<p class="infobox">
|
||||||
The overall layout is designed specially for modern browsers. If you
|
The overall layout is designed specially for modern browsers. If you
|
||||||
experience any problems, please report them, along with the version of
|
experience any problems, please report them, along with the version of
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<?xml version='1.0'?>
|
<?xml version='1.0'?>
|
||||||
|
|
||||||
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
<xsl:stylesheet version="2.0"
|
||||||
xmlns:csc="http://www.csclub.uwaterloo.ca/cow"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
extension-element-prefixes="csc">
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:csc="http://www.csclub.uwaterloo.ca/xslt">
|
||||||
|
|
||||||
<xsl:template match="directory">
|
<xsl:template match="directory">
|
||||||
<xsl:variable name="href">
|
<xsl:variable name="href">
|
||||||
|
@ -14,7 +15,7 @@
|
||||||
<a class="diritem headdir" href="{$href}">
|
<a class="diritem headdir" href="{$href}">
|
||||||
<xsl:value-of select="@title" />
|
<xsl:value-of select="@title" />
|
||||||
</a>
|
</a>
|
||||||
<xsl:apply-templates match="diritem" />
|
<xsl:apply-templates select="diritem" />
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="diritem">
|
<xsl:template match="diritem">
|
||||||
|
|
|
@ -1,17 +1,18 @@
|
||||||
<?xml version='1.0'?>
|
<?xml version='1.0'?>
|
||||||
|
|
||||||
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
<xsl:stylesheet version="2.0"
|
||||||
xmlns:csc="http://www.csclub.uwaterloo.ca/cow"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
extension-element-prefixes="csc">
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:csc="http://www.csclub.uwaterloo.ca/xslt">
|
||||||
|
|
||||||
<xsl:template match="events" name="events">
|
<xsl:template match="events" name="events">
|
||||||
<tr>
|
<tr>
|
||||||
<th colspan="2" class="news">Upcoming Events</th>
|
<th colspan="2" class="news">Upcoming Events</th>
|
||||||
</tr>
|
</tr>
|
||||||
<xsl:for-each select="document(concat($pwd, '/events.xml'))/eventdefs/eventitem">
|
<xsl:for-each select="document(concat($g_root, '/events.xml'))/eventdefs/eventitem">
|
||||||
<xsl:sort select="translate(@date, '-', '')"
|
<xsl:sort select="translate(@date, '-', '')"
|
||||||
order="ascending" data-type="number" />
|
order="ascending" data-type="number" />
|
||||||
<xsl:if test="translate(@date, '-', '') >= translate($date, '-', '')">
|
<xsl:if test="translate(@date, '-', '') >= translate($g_date, '-', '')">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="eventdate"><xsl:value-of select="@date" /></td>
|
<td class="eventdate"><xsl:value-of select="@date" /></td>
|
||||||
<td rowspan="2" valign="top" class="eventitem">
|
<td rowspan="2" valign="top" class="eventitem">
|
||||||
|
@ -36,20 +37,13 @@
|
||||||
</tr>
|
</tr>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="events-this-term">
|
|
||||||
<xsl:call-template name="events-by-term">
|
|
||||||
<xsl:with-param name="date" select="$date" />
|
|
||||||
</xsl:call-template>
|
|
||||||
</xsl:template>
|
|
||||||
|
|
||||||
<xsl:template name="events-by-term">
|
<xsl:template name="events-by-term">
|
||||||
<xsl:param name="date" />
|
<p>The events for <xsl:value-of select="csc:term($g_date)" /> are listed here.
|
||||||
<p>The events for <xsl:value-of select="csc:term($date)" /> are listed here.
|
|
||||||
You can also <a href="{$pre}events.ics">download an ICS</a> of them.</p>
|
You can also <a href="{$pre}events.ics">download an ICS</a> of them.</p>
|
||||||
<xsl:for-each select="document(concat($pwd, '/../events.xml'))/eventdefs/eventitem">
|
<xsl:for-each select="document(concat($g_root, '/events.xml'))/eventdefs/eventitem">
|
||||||
<xsl:sort select="translate(@date, '-', '')"
|
<xsl:sort select="translate(@date, '-', '')"
|
||||||
order="ascending" data-type="number" />
|
order="ascending" data-type="number" />
|
||||||
<xsl:if test="csc:term(@date) = csc:term($date)">
|
<xsl:if test="csc:term(@date) = csc:term($g_date)">
|
||||||
<h3><a href="{translate(concat($pre, 'events/', @room, '-', @date, '-', @time, '.html'), ' ', '_')}"><xsl:value-of select="@title" /></a></h3>
|
<h3><a href="{translate(concat($pre, 'events/', @room, '-', @date, '-', @time, '.html'), ' ', '_')}"><xsl:value-of select="@title" /></a></h3>
|
||||||
<p>
|
<p>
|
||||||
<strong>
|
<strong>
|
||||||
|
@ -68,19 +62,17 @@
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="eventitem">
|
<xsl:template match="eventitem">
|
||||||
<xsl:document method="xml" encoding="ISO-8859-1"
|
<xsl:result-document method="xml" encoding="ISO-8859-1"
|
||||||
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
|
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
|
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
|
||||||
href="{translate(concat($root, '/events/', @room, '-', @date, '-', @time, '.html'), ' ', '_')}">
|
href="{translate(concat($g_root, '/events/', @room, '-', @date, '-', @time, '.html'), ' ', '_')}">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title><xsl:value-of select="@title" /></title>
|
<title><xsl:value-of select="@title" /></title>
|
||||||
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
|
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
|
||||||
</head>
|
</head>
|
||||||
<body><div>
|
<body><div>
|
||||||
<xsl:call-template name="header">
|
<xsl:call-template name="header" />
|
||||||
<xsl:with-param name="title" select="@title" />
|
|
||||||
</xsl:call-template>
|
|
||||||
<h2>Information</h2>
|
<h2>Information</h2>
|
||||||
<div>
|
<div>
|
||||||
Held in <xsl:value-of select="@room" />, on
|
Held in <xsl:value-of select="@room" />, on
|
||||||
|
@ -91,44 +83,39 @@
|
||||||
<xsl:call-template name="footer" />
|
<xsl:call-template name="footer" />
|
||||||
</div></body>
|
</div></body>
|
||||||
</html>
|
</html>
|
||||||
</xsl:document>
|
</xsl:result-document>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="generate-event-files">
|
<xsl:template match="generate-event-files">
|
||||||
<xsl:apply-templates select="document(concat($pwd, '/../events.xml'))/eventdefs" />
|
<xsl:apply-templates select="document(concat($g_root, '/events.xml'))/eventdefs" />
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:key name="eventterm" match="/eventdefs/eventitem" use="csc:term(@date)" />
|
<xsl:key name="eventterm" match="/eventdefs/eventitem" use="csc:term(@date)" />
|
||||||
|
|
||||||
<xsl:template match="old-events">
|
<xsl:template match="old-events">
|
||||||
<xsl:for-each select="document(concat($pwd, '/../events.xml'))/eventdefs/eventitem">
|
<xsl:for-each select="document(concat($g_root, '/events.xml'))/eventdefs/eventitem">
|
||||||
<xsl:sort select="translate(@date, '-', '')"
|
<xsl:sort select="translate(@date, '-', '')"
|
||||||
order="descending" data-type="number" />
|
order="descending" data-type="number" />
|
||||||
<xsl:if test="not(preceding-sibling::*[csc:term(@date)=csc:term(current()/@date)]) and not(csc:term(@date) = csc:term($date))">
|
<xsl:if test="not(preceding-sibling::*[csc:term(@date)=csc:term(current()/@date)]) and not(csc:term(@date) = csc:term($g_date))">
|
||||||
<p><a href="{translate(concat('old-',csc:term(@date), '.html'), ' ', '_')}">
|
<p><a href="{translate(concat('old-',csc:term(@date), '.html'), ' ', '_')}">
|
||||||
<xsl:value-of select="csc:term(@date)" />
|
<xsl:value-of select="csc:term(@date)" />
|
||||||
</a></p>
|
</a></p>
|
||||||
<xsl:document method="xml" encoding="ISO-8859-1"
|
<xsl:result-document method="xml" encoding="ISO-8859-1"
|
||||||
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
|
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
|
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
|
||||||
href="{translate(concat($root, '/events/old-', csc:term(@date), '.html'), ' ', '_')}">
|
href="{translate(concat($g_root, '/events/old-', csc:term(@date), '.html'), ' ', '_')}">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Events for <xsl:value-of select="csc:term(@date)" /></title>
|
<title>Events for <xsl:value-of select="csc:term(@date)" /></title>
|
||||||
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
|
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
|
||||||
</head>
|
</head>
|
||||||
<body><div>
|
<body><div>
|
||||||
<xsl:call-template name="header">
|
<xsl:call-template name="header" />
|
||||||
<xsl:with-param name="title"
|
<xsl:call-template name="events-by-term" />
|
||||||
select="concat('Events for ', csc:term(@date))" />
|
|
||||||
</xsl:call-template>
|
|
||||||
<xsl:call-template name="events-by-term">
|
|
||||||
<xsl:with-param name="date" select="@date" />
|
|
||||||
</xsl:call-template>
|
|
||||||
<xsl:call-template name="footer" />
|
<xsl:call-template name="footer" />
|
||||||
</div></body>
|
</div></body>
|
||||||
</html>
|
</html>
|
||||||
</xsl:document>
|
</xsl:result-document>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<?xml version='1.0'?>
|
<?xml version='1.0'?>
|
||||||
|
|
||||||
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
<xsl:stylesheet version="2.0"
|
||||||
xmlns:csc="http://www.csclub.uwaterloo.ca/cow"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
extension-element-prefixes="csc">
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:csc="http://www.csclub.uwaterloo.ca/xslt">
|
||||||
|
|
||||||
<xsl:template match="execlist">
|
<xsl:template match="execlist">
|
||||||
<h3>Elected positions</h3>
|
<h3>Elected positions</h3>
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version='1.0'?>
|
||||||
|
|
||||||
|
<xsl:stylesheet version="2.0"
|
||||||
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:csc="http://www.csclub.uwaterloo.ca/xslt">
|
||||||
|
|
||||||
|
<xsl:function name="csc:term" as="xs:string">
|
||||||
|
<xsl:param name="date" />
|
||||||
|
<xsl:variable name="date_year" as="xs:integer">
|
||||||
|
<xsl:analyze-string select="$date" regex="([0-9]+)-[0-9]+-[0-9]+">
|
||||||
|
<xsl:matching-substring>
|
||||||
|
<xsl:value-of select="regex-group(1)" />
|
||||||
|
</xsl:matching-substring>
|
||||||
|
</xsl:analyze-string>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="date_month" as="xs:integer">
|
||||||
|
<xsl:analyze-string select="$date" regex="[0-9]+-([0-9]+)-[0-9]+">
|
||||||
|
<xsl:matching-substring>
|
||||||
|
<xsl:value-of select="regex-group(1)" />
|
||||||
|
</xsl:matching-substring>
|
||||||
|
</xsl:analyze-string>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="term_text">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$date_month ge 1 and $date_month le 4">Winter </xsl:when>
|
||||||
|
<xsl:when test="$date_month ge 5 and $date_month le 8">Spring </xsl:when>
|
||||||
|
<xsl:when test="$date_month ge 9 and $date_month le 12">Fall </xsl:when>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:value-of select="concat($term_text, $date_year)" />
|
||||||
|
</xsl:function>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
|
@ -1,8 +1,9 @@
|
||||||
<?xml version='1.0'?>
|
<?xml version='1.0'?>
|
||||||
|
|
||||||
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
<xsl:stylesheet version="2.0"
|
||||||
xmlns:csc="http://www.csclub.uwaterloo.ca/cow"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
extension-element-prefixes="csc">
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:csc="http://www.csclub.uwaterloo.ca/xslt">
|
||||||
|
|
||||||
<xsl:template match="mediafile">
|
<xsl:template match="mediafile">
|
||||||
<xsl:param name="ext" />
|
<xsl:param name="ext" />
|
||||||
|
@ -12,7 +13,7 @@
|
||||||
|
|
||||||
<xsl:template match="flvfile">
|
<xsl:template match="flvfile">
|
||||||
<xsl:param name="mirror" />
|
<xsl:param name="mirror" />
|
||||||
<script type="text/javascript" src="flash/swfobject.js"></script>
|
<script type="text/javascript" src="flash/swfobject.js"><xsl:text> </xsl:text></script>
|
||||||
<p id="player1"><a href="http://www.macromedia.com/go/getflashplayer">
|
<p id="player1"><a href="http://www.macromedia.com/go/getflashplayer">
|
||||||
Get the Flash Player</a> to see this video using Flash Player.</p>
|
Get the Flash Player</a> to see this video using Flash Player.</p>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
@ -27,19 +28,17 @@
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="mediaitem">
|
<xsl:template match="mediaitem">
|
||||||
<xsl:document method="xml" encoding="ISO-8859-1"
|
<xsl:result-document method="xml" encoding="ISO-8859-1"
|
||||||
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
|
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
|
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
|
||||||
href="{translate(concat($root, '/media/', @title , '.html'), ' ', ' ')}">
|
href="{translate(concat($g_root, '/media/', @title , '.html'), ' ', ' ')}">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title><xsl:value-of select="@title" /></title>
|
<title><xsl:value-of select="@title" /></title>
|
||||||
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
|
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
|
||||||
</head>
|
</head>
|
||||||
<body><div>
|
<body><div>
|
||||||
<xsl:call-template name="header">
|
<xsl:call-template name="header" />
|
||||||
<xsl:with-param name="title" select="@title" />
|
|
||||||
</xsl:call-template>
|
|
||||||
<xsl:if test="abstract">
|
<xsl:if test="abstract">
|
||||||
<h2>Abstract</h2>
|
<h2>Abstract</h2>
|
||||||
<div>
|
<div>
|
||||||
|
@ -91,11 +90,11 @@
|
||||||
<xsl:if test="@buttons">
|
<xsl:if test="@buttons">
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
<!-- digg button -->
|
<!-- digg button -->
|
||||||
<script src="http://digg.com/tools/diggthis.js"
|
<script src="http://digg.com/tools/diggthis.js"
|
||||||
type="text/javascript" />
|
type="text/javascript"><xsl:text> </xsl:text></script>
|
||||||
<!-- reddit button -->
|
<!-- reddit button -->
|
||||||
<script type="text/javascript"
|
<script type="text/javascript"
|
||||||
src="http://reddit.com/button.js?t=3" />
|
src="http://reddit.com/button.js?t=3"><xsl:text> </xsl:text></script>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="other">
|
<xsl:if test="other">
|
||||||
<div>
|
<div>
|
||||||
|
@ -110,7 +109,7 @@
|
||||||
addthis_pub = 'calumt';
|
addthis_pub = 'calumt';
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript"
|
<script type="text/javascript"
|
||||||
src="http://s7.addthis.com/js/addthis_widget.php?v=12" />
|
src="http://s7.addthis.com/js/addthis_widget.php?v=12"><xsl:text> </xsl:text></script>
|
||||||
<!-- google ads -->
|
<!-- google ads -->
|
||||||
<!--
|
<!--
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
@ -123,12 +122,12 @@
|
||||||
google_ad_channel = "1106187834";
|
google_ad_channel = "1106187834";
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript"
|
<script type="text/javascript"
|
||||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js" />
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"><xsl:text> </xsl:text></script>
|
||||||
-->
|
-->
|
||||||
<xsl:call-template name="footer" />
|
<xsl:call-template name="footer" />
|
||||||
</div></body>
|
</div></body>
|
||||||
</html>
|
</html>
|
||||||
</xsl:document>
|
</xsl:result-document>
|
||||||
<li><a href= "{@title}.html"><xsl:value-of select="@title" /></a></li>
|
<li><a href= "{@title}.html"><xsl:value-of select="@title" /></a></li>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
<?xml version='1.0'?>
|
<?xml version='1.0'?>
|
||||||
|
|
||||||
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
<xsl:stylesheet version="2.0"
|
||||||
xmlns:csc="http://www.csclub.uwaterloo.ca/cow"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
extension-element-prefixes="csc">
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:csc="http://www.csclub.uwaterloo.ca/xslt">
|
||||||
|
|
||||||
<xsl:template match="members-this-term">
|
<xsl:template match="members-this-term">
|
||||||
<p>The members for <xsl:value-of select="csc:term($date)" /> are
|
<p>The members for <xsl:value-of select="csc:term($g_date)" /> are
|
||||||
listed here. We currently have
|
listed here. We currently have
|
||||||
<xsl:value-of select="count(document('../members.xml')/memberlist/member)" />
|
<xsl:value-of select="count(document(concat($g_root, '/members.xml'))/memberlist/member)" />
|
||||||
members.</p>
|
members.</p>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -15,7 +16,7 @@
|
||||||
<th>Program</th>
|
<th>Program</th>
|
||||||
<th>Userid</th>
|
<th>Userid</th>
|
||||||
</tr>
|
</tr>
|
||||||
<xsl:for-each select="document('../members.xml')/memberlist/member">
|
<xsl:for-each select="document(concat($g_root, '/members.xml'))/memberlist/member">
|
||||||
<xsl:variable name="class">
|
<xsl:variable name="class">
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="position() mod 2 = 0">members1</xsl:when>
|
<xsl:when test="position() mod 2 = 0">members1</xsl:when>
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<?xml version='1.0'?>
|
<?xml version='1.0'?>
|
||||||
|
|
||||||
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
<xsl:stylesheet version="2.0"
|
||||||
xmlns:csc="http://www.csclub.uwaterloo.ca/cow"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
extension-element-prefixes="csc">
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:csc="http://www.csclub.uwaterloo.ca/xslt">
|
||||||
|
|
||||||
<xsl:template match="menuitem">
|
<xsl:template match="menuitem">
|
||||||
<xsl:variable name="pre2">
|
<xsl:variable name="pre2">
|
||||||
|
@ -26,7 +27,7 @@
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="menu" name="menu">
|
<xsl:template match="menu" name="menu">
|
||||||
<xsl:apply-templates select="document('../menu.xml')/menudefs" />
|
<xsl:apply-templates select="document(concat($g_root, '/menu.xml'))/menudefs" />
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
</xsl:stylesheet>
|
</xsl:stylesheet>
|
||||||
|
|
35
xsl/news.xsl
35
xsl/news.xsl
|
@ -1,13 +1,14 @@
|
||||||
<?xml version='1.0'?>
|
<?xml version='1.0'?>
|
||||||
|
|
||||||
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
<xsl:stylesheet version="2.0"
|
||||||
xmlns:csc="http://www.csclub.uwaterloo.ca/cow"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
extension-element-prefixes="csc">
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:csc="http://www.csclub.uwaterloo.ca/xslt">
|
||||||
|
|
||||||
<xsl:template match="newsdefs">
|
<xsl:template match="newsdefs">
|
||||||
<xsl:apply-templates select="newsitem[csc:term(@date) = csc:term($date)]">
|
<xsl:apply-templates select="newsitem[csc:term(@date) = csc:term($g_date)]">
|
||||||
<xsl:sort select="translate(@date, '-', '')"
|
<xsl:sort select="translate(@date, '-', '')"
|
||||||
order="descending" data-type="number" />
|
order="descending" data-type="number" />
|
||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
@ -25,7 +26,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th colspan="2" class="news">News</th>
|
<th colspan="2" class="news">News</th>
|
||||||
</tr>
|
</tr>
|
||||||
<xsl:apply-templates select="document('../news.xml')/newsdefs" />
|
<xsl:apply-templates select="document(concat($g_root, '/news.xml'))/newsdefs" />
|
||||||
<tr>
|
<tr>
|
||||||
<td class="newsitem" colspan="2">
|
<td class="newsitem" colspan="2">
|
||||||
<a href="news/">Older news items</a> are available. Make sure you check
|
<a href="news/">Older news items</a> are available. Make sure you check
|
||||||
|
@ -37,9 +38,10 @@
|
||||||
</tr>
|
</tr>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="news-this-term" name="news-by-term">
|
<xsl:template name="news-by-term">
|
||||||
|
<xsl:param name="date" />
|
||||||
<p>The news for <xsl:value-of select="csc:term($date)" /> is listed here.</p>
|
<p>The news for <xsl:value-of select="csc:term($date)" /> is listed here.</p>
|
||||||
<xsl:for-each select="document('../news.xml')/newsdefs/newsitem">
|
<xsl:for-each select="document(concat($g_root, '/news.xml'))/newsdefs/newsitem">
|
||||||
<xsl:sort select="translate(@date, '-', '')"
|
<xsl:sort select="translate(@date, '-', '')"
|
||||||
order="descending" data-type="number" />
|
order="descending" data-type="number" />
|
||||||
<xsl:if test="csc:term(@date) = csc:term($date)">
|
<xsl:if test="csc:term(@date) = csc:term($date)">
|
||||||
|
@ -57,34 +59,31 @@
|
||||||
<xsl:key name="newsterm" match="/newsdefs/newsitem" use="csc:term(@date)" />
|
<xsl:key name="newsterm" match="/newsdefs/newsitem" use="csc:term(@date)" />
|
||||||
|
|
||||||
<xsl:template match="old-news">
|
<xsl:template match="old-news">
|
||||||
<xsl:for-each select="document('../news.xml')/newsdefs/newsitem">
|
<xsl:for-each select="document(concat($g_root, '/news.xml'))/newsdefs/newsitem">
|
||||||
<xsl:sort select="translate(@date, '-', '')"
|
<xsl:sort select="translate(@date, '-', '')"
|
||||||
order="descending" data-type="number" />
|
order="descending" data-type="number" />
|
||||||
<xsl:if test="not(preceding-sibling::*[csc:term(@date)=csc:term(current()/@date)]) and not(csc:term(@date) = csc:term($date))">
|
<xsl:if test="not(preceding-sibling::*[csc:term(@date)=csc:term(current()/@date)]) and not(csc:term(@date) = csc:term($g_date))">
|
||||||
<p><a href="{translate(concat('old-', csc:term(@date), '.html'), ' ', '_')}">
|
<p><a href="{translate(concat('old-', csc:term(@date), '.html'), ' ', '_')}">
|
||||||
<xsl:value-of select="csc:term(@date)" />
|
<xsl:value-of select="csc:term(@date)" />
|
||||||
</a></p>
|
</a></p>
|
||||||
<xsl:document method="xml" encoding="ISO-8859-1"
|
<xsl:result-document method="xml" encoding="ISO-8859-1"
|
||||||
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
|
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
|
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
|
||||||
href="{translate(concat($root, '/news/old-', csc:term(@date), '.html'), ' ', '_')}">
|
href="{translate(concat($g_root, '/news/old-', csc:term(@date), '.html'), ' ', '_')}">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>News for <xsl:value-of select="csc:term(@date)" /></title>
|
<title>News for <xsl:value-of select="csc:term(@date)" /></title>
|
||||||
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
|
<link rel="stylesheet" href="{$pre}default.css" type="text/css" />
|
||||||
</head>
|
</head>
|
||||||
<body><div>
|
<body><div>
|
||||||
<xsl:call-template name="header">
|
<xsl:call-template name="header" />
|
||||||
<xsl:with-param name="title"
|
|
||||||
select="concat('News for ', csc:term(@date))" />
|
|
||||||
</xsl:call-template>
|
|
||||||
<xsl:call-template name="news-by-term">
|
<xsl:call-template name="news-by-term">
|
||||||
<xsl:with-param name="date" select="@date" />
|
<xsl:with-param name="date" select="@date" />
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
<xsl:call-template name="footer" />
|
<xsl:call-template name="footer" />
|
||||||
</div></body>
|
</div></body>
|
||||||
</html>
|
</html>
|
||||||
</xsl:document>
|
</xsl:result-document>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
Loading…
Reference in New Issue