Want to mess around with the college calendar and feeds?
Here are some sample files to get you started.
The Feed
http://apps.cehd.umn.edu/events/admin/RSSFeed.aspx?&x=20&r=3&q=6&t=170
The XSLT
<xsl:stylesheet version="1.0"> <xsl:output method="html" omit-xml-declaration="yes"/> <xsl:template match="/rss/channel"> <table id="CalGrid"><!-- Starting the table --> <xsl:for-each select="item"><xsl:choose><!-- Making a choice if there are events or not --> <xsl:when test="string(title)='There are no events listed for this month'"> <!-- This is the default text of there are no events, so it exists write the next line --> <tr><td><strong>Sorry, there are no events listed this week!</strong></td></tr></xsl:when> <!-- Exit this when --> <xsl:otherwise><!-- Plain English, so if it didn't match do this! --> <xsl:if test="@sequenceByDate='1'"><!-- Testing to see if it is the first item in a set of items for the same day --> <!-- This allows me to write a date once, then stack events under it --> <tr><th colspan="3"><xsl:value-of select="dateFull" disable-output-escaping="yes"/></th></tr><tr><th>Time</th><th>Description</th><th>Location</th></tr></xsl:if><!-- Exit the if test --><tr><td><xsl:value-of select="startTime" disable-output-escaping="yes"/> - <xsl:value-of select="endTime" disable-output-escaping="yes"/></td><td> <p><xsl:attribute name="id"><xsl:value-of select="concat('E',occurrenceId)"/> <!-- Assigning a value the attribute id incase I want to link right to the event --> </xsl:attribute><strong><xsl:value-of select="title" disable-output-escaping="yes"/></strong></p> <xsl:value-of select="description" disable-output-escaping="yes"/></td><td> <xsl:choose> <xsl:when test="string(locationURL)"> <!-- Checking for a location URL before I try to make a hyperlink from it --><a><xsl:attribute name="href"> <xsl:value-of select="locationURL"/></xsl:attribute><xsl:value-of select="location" disable-output-escaping="yes"/></a> </xsl:when> <xsl:otherwise><!-- If no URL exists, don't hyperlink the text --> <xsl:value-of select="location" disable-output-escaping="yes"/> </xsl:otherwise> </xsl:choose></td></tr> </xsl:otherwise> </xsl:choose> </xsl:for-each> </table> </xsl:template></xsl:stylesheet>
The CSS
/* College of Education and Human Development CSS for XSLT Examples Authors: Jeff Abuzzahab Created: 2009-10-06 Updated: 2009-10-06 */ body { background-color: #fff; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:.8em; } h1 {font:bold 175%/100% Calibri, Arial, sans-serif;color:#3d873b;margin-top:20px;} h2 {font:bold 145%/100% Calibri, Arial, sans-serif;color:#434087;margin-top:20px;} h3 {font:bold 110%/100% Calibri, Arial, sans-serif;color:#434087;margin-top:20px;} h4 {font:bold 105%/100% Calibri, Arial, sans-serif;color:#434087;margin-top:20px;} h5 {font:bold 100%/100% Calibri, Arial, sans-serif;color:#434087;} h6 {font:bold 100%/100% Calibri, Arial, sans-serif;color:#434087;} a {color:#434087;} table#CalGrid { border:none; border-collapse: collapse; empty-cells: show; width: 725px; padding:0; margin:10px 25px; } table#CalGrid caption { text-align:left; color:#336666;; font-weight:bold; padding:0; margin:15px 0 10px 0; } table#CalGrid th { padding:4px; border-spacing: 4px; vertical-align:top; text-align:left; border:1px solid #ccc; background-color:#e2e2e2; } table#CalGrid td { padding:4px; border-spacing: 4px; vertical-align:top; text-align:left; border:1px solid #ccc; } table#CalGrid td.item { font-weight:bold; background-color:#e2e2e2; width:20%; } table#CalGrid td.time { width:22%; } table#CalGrid td.description { width:58%; } table#CalGrid td.location { width:20%; } table#CalGrid th.HdrDate { color:#fff; background-color:#366; } table#CalGrid td p { padding:0 0 5px 5px; margin:0; } table#CalGrid td ul { margin:0px; padding:0px; } table#CalGrid td ul li { list-style-type:none; margin:0 0 5px 5px; padding:0px; } table#CalGrid td ul li ul li {margin:0 0 0 15px;} @media print { table#CalGrid {width:98%;margin:10px;font-size:14pt;color:black;} table#CalGrid th.HdrDate {font-size:16pt;font-weight:bold;color:#000;background-color:#fff;} div#maincontent { width:100%;margin:0;} div#cal-future h2, h2 {font-size:18pt;} div#cal-future h2 {font-size:16pt;} p, li {font-size:14pt;} }