Random Messages with XSLT

So you want to display random messages on your Umbraco site but are not sure how to do it?

The following XSLT code will take in a node (in this case 1305) and look at the content randomly choosing one to display. You can easily pass in the node to search by using a Content Picker assigned to an alias of source in the macro parameters. Then simply add the following lines to the xslt below before the <xsl:template match="/"> line.

<xsl:variable name="feed" select="/macro/source"/>

Then change the node id 1305 to $source. Now when you add the macro to a page, you will be prompted to select the parent node to search from.

<xsl:param name="currentPage"/>
<xsl:template match="/">
<xsl:variable name="numberOfArticleNodes" select="count(umbraco.library:GetXmlNodeById(1305)/* [@isDoc])"/>
<xsl:variable name="randomArticlePosition" select="floor(Exslt.ExsltMath:random() * $numberOfArticleNodes) + 1"/>
<xsl:variable name="randomArticleNode" select="umbraco.library:GetXmlNodeById(1305)/* [@isDoc] [position() = $randomArticlePosition]"/>

<!-- start writing XSLT -->
<div class="cta-text">
<h3><xsl:value-of select="$randomArticleNode/straplineMessage" /></h3>
<p><xsl:value-of select="$randomArticleNode/straplineSubMessage" />.</p>



Need an Umbraco Master?

Here at Simon Antony, we have an in house certified Umbraco Grand Master available for hire. Got a problem with your site, need architecture advice, give us a call to speak to Simon directly and see how we can help

Contact Simon Today!