Skip to main content

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).


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"/> - &lt;a href="<xsl:value-of select="umbraco.library:NiceUrl(@id)"/>"&gt;Find out More about this Pic and Comment on it...&lt;/&gt; 
</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

Popular posts from this blog

Create a .NET Contact Form that Gets the Last Url Visited in C# Can also be Used in Umbraco

This is a Simple Contact From done in C# .Net and also can be used in Umbraco.  Paste the code in to Visual Web Developer for a better view. The important bits are coment in the second file.  One of the Commented out lines highlights how to get the mailto address from an Umbraco field. The code Below includes the myContactForm.ascx.cs codebehind file and the myContactForm.ascx file. 1) The myContactForm.ascx file:  <%@ Control Language="C#" AutoEventWireup="true" CodeFile="ContactFormforPublications.ascx.cs" Inherits="usercontrols_ContactFormPublications" %> <div class="contact-form" id="contactForm" runat="server">     <h3>Request a Publication</h3>     <div class='int'>         <form runat="server">         <asp:Panel DefaultButton="contactFormSubmit" runat="server">         <fieldset>             <div class='

Umbraco 7 - C# Razor - Passing a parameter variable from a Template to a Partial View.

Passing a parameter variable from a Template to a Partial View Example - Passing a Page Id to a Partial View. In the example below we are passing 3 page Ids (1090. 1091, 1092) to a partial view.  The Partial View will display the details for each of these nodes on a home page.  See final output below. 1) In your Template: @Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1090}}) @Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1091}}) @Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1092}}) 2) The Partial View: @inherits Umbraco.Web.Mvc.UmbracoTemplatePage @{ var thisPageId = 1090; var stringPage = @ViewData["pageId"]; thisPageId = Convert.ToInt32(stringPage); } <div class="col-md-4"> <arti