Umbraco - XSLT - Create a link using a Node Number.
In Umbraco XSLT you can create a link using a node number, instead of the actual node name / page url. This can help when you may be creating static code to link to a page. Using the node number means, if a user changes the name of the page, the link will not break!
1) So, instead of having something like this on your XSLT:
<li><a href="news.aspx" title="News">View All News</a></li>
2) You would have this: (Using the Node Number in a Link)
<li><a href="1569.aspx" title="News">View All News</a></li>
However, this will show 1596.aspx in the address bar.
3) So, use the following to show the proper url, such as news.aspx you would use the Local Link property in Umbraco:
<li><a href="/{locallink:1569.aspx}" title="News">View All News</a></li>
(You can get the node number of a page by hovering over it in Umbraco).
<xsl:value-of select="umbraco.library:NiceUrl(./parent::node/@id)"/>
<xsl:value-of select="umbraco.library:NiceUrl(@id)"/>
<xsl:for-each select="$currentPage/* [@isDoc]">
<xsl:variable name="getimg" select="yourImage"/>
<!-- Check to see wheater the user has chosen a an IMAGE and if so, write it out -->
<xsl:if test="$getimg != ''">
<li>
<a rel="gallery" class="image">
<xsl:attribute name="href">
<xsl:value-of select="umbraco.library:GetMedia(yourImage,'false')/umbracoFile"/>
</xsl:attribute>
<xsl:attribute name="title">
<xsl:value-of select="pageTitle"/> - <a href="<xsl:value-of select="umbraco.library:NiceUrl(@id)"/>">Find out More about this Pic and Comment on it...</>
</xsl:attribute>
<img alt="">
<xsl:attribute name="src">
<xsl:value-of select="umbraco.library:GetMedia(yourImage,'false')/crops//crop [@name = 'Thumbnail']/@url"/>
</xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="pageTitle"/></xsl:attribute>
</img>
</a>
</li>
</xsl:if>
1) So, instead of having something like this on your XSLT:
<li><a href="news.aspx" title="News">View All News</a></li>
2) You would have this: (Using the Node Number in a Link)
<li><a href="1569.aspx" title="News">View All News</a></li>
However, this will show 1596.aspx in the address bar.
3) So, use the following to show the proper url, such as news.aspx you would use the Local Link property in Umbraco:
<li><a href="/{locallink:1569.aspx}" title="News">View All News</a></li>
(You can get the node number of a page by hovering over it in Umbraco).
Other examples:
<xsl:value-of select="umbraco.library:NiceUrl(./parent::node/@id)"/>
<xsl:value-of select="umbraco.library:NiceUrl(@id)"/>
The follwoing code adds an Anchor to JQuery Colorbox title attribute to create a link:
<xsl:for-each select="$currentPage/* [@isDoc]">
<xsl:variable name="getimg" select="yourImage"/>
<!-- Check to see wheater the user has chosen a an IMAGE and if so, write it out -->
<xsl:if test="$getimg != ''">
<li>
<a rel="gallery" class="image">
<xsl:attribute name="href">
<xsl:value-of select="umbraco.library:GetMedia(yourImage,'false')/umbracoFile"/>
</xsl:attribute>
<xsl:attribute name="title">
<xsl:value-of select="pageTitle"/> - <a href="<xsl:value-of select="umbraco.library:NiceUrl(@id)"/>">Find out More about this Pic and Comment on it...</>
</xsl:attribute>
<img alt="">
<xsl:attribute name="src">
<xsl:value-of select="umbraco.library:GetMedia(yourImage,'false')/crops//crop [@name = 'Thumbnail']/@url"/>
</xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="pageTitle"/></xsl:attribute>
</img>
</a>
</li>
</xsl:if>
Comments
Post a Comment