|
From: <rga...@us...> - 2002-11-10 17:56:41
|
Update of /cvsroot/csms/csms-core/src/resources/conf
In directory usw-pr-cvs1:/tmp/cvs-serv12143
Modified Files:
Scores2HTML.xsl
Log Message:
Changed to accomodate scoring events being keyed by ID rather than player (cahnge in scores.xml DTD).
Also made the output show both the ID and playerName
Index: Scores2HTML.xsl
===================================================================
RCS file: /cvsroot/csms/csms-core/src/resources/conf/Scores2HTML.xsl,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Scores2HTML.xsl 10 Nov 2002 14:51:25 -0000 1.2
--- Scores2HTML.xsl 10 Nov 2002 17:56:38 -0000 1.3
***************
*** 15,21 ****
<xsl:output method="text/html"/>
<!-- Create the keys for the players -->
! <xsl:key name="players" match = "/scores/player" use="@name"/>
<!-- template rule matching source root element -->
--- 15,24 ----
<xsl:output method="text/html"/>
+ <!-- url of the players database -->
+ <xsl:variable name="playersDataSource">
+ http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/csms/csms-core/src/resources/conf/players.xml?rev=HEAD&content-type=text/xml</xsl:variable>
<!-- Create the keys for the players -->
! <xsl:key name="players" match = "/scores/player" use="@playerID"/>
<!-- template rule matching source root element -->
***************
*** 25,30 ****
<body>
<h1>Fanfoot Scores</h1>
! <table>
! <xsl:apply-templates select="scores/player[generate-id()=generate-id(key('players',@name))]/@name"
mode="summary"/>
</table>
--- 28,38 ----
<body>
<h1>Fanfoot Scores</h1>
! <table border="1">
! <tr>
! <th>ID</th>
! <th>Name</th>
! <th>Total Points</th>
! </tr>
! <xsl:apply-templates select="scores/player[generate-id()=generate-id(key('players',@playerID))]/@playerID"
mode="summary"/>
</table>
***************
*** 35,39 ****
</table>
<br/>
! <xsl:apply-templates select="scores/player[generate-id()=generate-id(key('players',@name))]/@name"
mode="detail"/>
</body>
--- 43,47 ----
</table>
<br/>
! <xsl:apply-templates select="scores/player[generate-id()=generate-id(key('players',@playerID))]/@playerID"
mode="detail"/>
</body>
***************
*** 41,57 ****
</xsl:template>
! <xsl:template match="@name" mode="summary">
! <xsl:variable name="name"><xsl:value-of select="."/></xsl:variable>
<tr>
<td><xsl:value-of select="."/></td>
! <td><xsl:value-of select="sum(/scores/player[@name=$name]/event/points)"/></td>
</tr>
</xsl:template>
! <xsl:template match="@name" mode="detail">
! <xsl:variable name="name"><xsl:value-of select="."/></xsl:variable>
<table>
<tr>
! <th colspan='2'><xsl:value-of select="."/></th>
</tr>
<xsl:apply-templates select="key('players',.)" mode="detail"/>
--- 49,77 ----
</xsl:template>
! <xsl:template match="@playerID" mode="summary">
! <xsl:variable name="playerID"><xsl:value-of select="."/></xsl:variable>
! <xsl:variable name="playerFullName">
! <xsl:call-template name="getPlayerFullName">
! <xsl:with-param name="playerID"><xsl:value-of select="$playerID"/></xsl:with-param>
! </xsl:call-template>
! </xsl:variable>
<tr>
<td><xsl:value-of select="."/></td>
! <td><xsl:value-of select="$playerFullName"/></td>
! <td><xsl:value-of select="sum(/scores/player[@playerID=$playerID]/event/points)"/></td>
</tr>
</xsl:template>
! <xsl:template match="@playerID" mode="detail">
! <xsl:variable name="playerID"><xsl:value-of select="."/></xsl:variable>
! <xsl:variable name="playerFullName">
! <xsl:call-template name="getPlayerFullName">
! <xsl:with-param name="playerID"><xsl:value-of select="$playerID"/></xsl:with-param>
! </xsl:call-template>
! </xsl:variable>
<table>
<tr>
! <th><xsl:value-of select="."/></th>
! <th><xsl:value-of select="$playerFullName"/></th>
</tr>
<xsl:apply-templates select="key('players',.)" mode="detail"/>
***************
*** 59,63 ****
<th>Total</th>
<th>
! <xsl:value-of select="sum(/scores/player[@name=$name]/event/points)"/>
</th>
</tr>
--- 79,83 ----
<th>Total</th>
<th>
! <xsl:value-of select="sum(/scores/player[@playerID=$playerID]/event/points)"/>
</th>
</tr>
***************
*** 77,80 ****
--- 97,120 ----
</tr>
</xsl:template>
+
+ <!-- Return the player full name given the ID -->
+ <xsl:template name="getPlayerFullName">
+ <xsl:param name="playerID"/>
+ <xsl:variable name="firstName">
+ <xsl:value-of select="document($playersDataSource)/players/player[@id=$playerID]/firstName"/>
+ </xsl:variable>
+ <xsl:variable name="surname">
+ <xsl:value-of select="document($playersDataSource)/players/player[@id=$playerID]/surname"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="string-length($surname) > 0">
+ <xsl:value-of select="concat($firstName, ' ', $surname)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('ERROR: Unknown player with ID ', $playerID)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
</xsl:stylesheet>
|