Subject: Re: [xsl] Generating table cells and rows From: Aaron Johnson <artpunx@xxxxxxxxx> Date: Mon, 1 Aug 2005 15:05:25 +0100 |
Hello David... I had a go at implimenting your solution but could'nt "bolt it in". I had worked out my style sheet to grab a set of nodes and test the amount of images so as to display links that would determine the next or previous set of images. I understand the logic behind your solution regarding the following siblings etc. Here is my style sheet if you'd like a glance: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:atg="http://atg.uwe.ac.uk/portal/photosPortlet" version="1.0"> <xsl:param name="user_name">****</xsl:param> <xsl:param name="faculty">****</xsl:param> <xsl:param name="action_url">action not set</xsl:param> <xsl:param name="photo_server">not found</xsl:param> <xsl:param name="page_number">0</xsl:param> <xsl:param name="group_name">Not been set yet...</xsl:param> <xsl:param name="startingPhoto">1</xsl:param> <xsl:param name="howMany">10</xsl:param> <xsl:template match="/"> <head> <link type="text/css" rel="stylesheet" href="css/myuwe.css"/> </head> <table> <tr> <td colspan="2"><h1>Photos Portlet</h1></td> </tr> <tr> <td>Name: <xsl:value-of select="$user_name"/><br/>Your Faculty: <xsl:value-of select="$faculty"/></td> <td valign="top" align="right"><xsl:apply-templates select="/atg:PhotosData/groups"/></td> </tr> <tr> <td colspan="2"><xsl:call-template name="photos"> <xsl:with-param name="recordsInGroup" select="//atg:record[../@groupName=$group_name]" /> </xsl:call-template></td> </tr> </table> </xsl:template> <xsl:template match="atg:groups"> <form method="post" action="{$action_url}"> <select name="selected-group"> <xsl:apply-templates select="atg:group"/> </select> <input type="submit" value="select group"/> </form> </xsl:template> <xsl:template match="atg:group"> <xsl:variable name="groupName"> <xsl:value-of select="."/> </xsl:variable> <option value="{$groupName}"> <xsl:value-of select="$groupName"/> </option> </xsl:template> <xsl:template name="photos"> <xsl:param name="recordsInGroup"/> <xsl:variable name="count" select="count(record)"/> <xsl:variable name="previous" select="number($startingPhoto - $howMany)"/> <xsl:variable name="next" select="number($startingPhoto + $howMany)"/> <table cellpadding="5" border="1" align="left"> <!-- group_name should be set only if photos are available --> <tr> <td> <h3>Photos for <em><xsl:value-of select="$group_name"/></em></h3> </td> </tr> <!-- page number code removed and stored at the bottom of this stylesheet --> <tr> <td> <xsl:call-template name="displayPhotos"> <xsl:with-param name="currentNodes" select="$recordsInGroup[position() >= $startingPhoto and position() <($startingPhoto + $howMany)]"/> </xsl:call-template> </td> </tr> <tr> <td> <xsl:choose> <xsl:when test="$startingPhoto = 1"> <xsl:text> None </xsl:text> </xsl:when> <xsl:otherwise> <a href="{$action_url}?startingPhoto={$previous}"> Previous <xsl:value-of select="$howMany"/></a> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="($startingPhoto + $howMany) >= $count"> <xsl:text> None </xsl:text> </xsl:when> <xsl:otherwise> <a href="{$action_url}?startingPhoto={$next}">Next <xsl:value-of select="$howMany"/></a> </xsl:otherwise> </xsl:choose> </td> </tr> </table> </xsl:template> <xsl:template name="displayPhotos"> <xsl:param name="currentNodes"/> <xsl:for-each select="$currentNodes"> <img src="{$photo_server}/?studentId={id}"/><br /> Name: <xsl:value-of select="atg:name"/> <xsl:if test="position() mod 5 =0"><br/></xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Generating table cells an, David Carlisle | Thread | Re: [xsl] Generating table cells an, Joris Gillis |
Re: [xsl] problem with namespaces i, David Carlisle | Date | [xsl] XSL-List Guidelines, Mulberry Technologie |
Month |