Simply compare dates in the XSLT (umbraco 4.5).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" xmlns:CWS.Twitter="urn:CWS.Twitter" xmlns:umbraco.contour="urn:umbraco.contour"
exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets CWS.Twitter umbraco.contour ">
<xsl:output method="xml" omit-xml-declaration="yes" />
<xsl:param name="currentPage"/>
<!-- Don't change this, but add a 'contentPicker' element to -->
<!-- your macro with an alias named 'source' -->
<xsl:variable name="source" select="/macro/source"/>
<xsl:variable name="numberOfItems" select="/macro/numberOfItems"/>
<xsl:variable name="datenow" select="umbraco.library:CurrentDate()" />
<xsl:template match="/">
<!-- The fun starts here -->
<ul id="whatsOnButtons">
<xsl:for-each select="umbraco.library:GetXmlNodeById($source)/* [@isDoc][((eventFrom!='') and umbraco.library:DateGreaterThanOrEqual(eventFrom,$datenow))]">
<!--<xsl:sort select="@updateDate" order="ascending"/>-->
<xsl:sort select="eventFrom" order="descending"/>
<xsl:if test="position() <= $numberOfItems">
<li>
<a href="{umbraco.library:NiceUrl(@id)}"><xsl:value-of select="eventHeading"/></a>
</li>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" xmlns:CWS.Twitter="urn:CWS.Twitter" xmlns:umbraco.contour="urn:umbraco.contour"
exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets CWS.Twitter umbraco.contour ">
<xsl:output method="xml" omit-xml-declaration="yes" />
<xsl:param name="currentPage"/>
<!-- Don't change this, but add a 'contentPicker' element to -->
<!-- your macro with an alias named 'source' -->
<xsl:variable name="source" select="/macro/source"/>
<xsl:variable name="numberOfItems" select="/macro/numberOfItems"/>
<xsl:variable name="datenow" select="umbraco.library:CurrentDate()" />
<xsl:template match="/">
<!-- The fun starts here -->
<ul id="whatsOnButtons">
<xsl:for-each select="umbraco.library:GetXmlNodeById($source)/* [@isDoc][((eventFrom!='') and umbraco.library:DateGreaterThanOrEqual(eventFrom,$datenow))]">
<!--<xsl:sort select="@updateDate" order="ascending"/>-->
<xsl:sort select="eventFrom" order="descending"/>
<xsl:if test="position() <= $numberOfItems">
<li>
<a href="{umbraco.library:NiceUrl(@id)}"><xsl:value-of select="eventHeading"/></a>
</li>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
Comments