<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>A CMS and .NET Development Blog by Tomas Breen</title>
	<atom:link href="http://www.tomasbreen.com/wp/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tomasbreen.com/wp</link>
	<description>Blogging about SharePoint, CRM, .NET &#38; AJAX</description>
	<lastBuildDate>Wed, 27 Jan 2010 14:23:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Seesmic Web &#8211; A quick review</title>
		<link>http://www.tomasbreen.com/wp/index.php/2010/01/seesmic-web-a-quick-review/</link>
		<comments>http://www.tomasbreen.com/wp/index.php/2010/01/seesmic-web-a-quick-review/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 14:23:18 +0000</pubDate>
		<dc:creator>Tomas Breen</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://www.tomasbreen.com/wp/?p=55</guid>
		<description><![CDATA[Really loving the seesmic web application. The user interface is clean, can grow and so easy to use. It seems so original yet all the elememts fit with current patterns.

The top and left navigation work really well together. They are uniquely different but compliment each others roles in the app. The top has been left [...]]]></description>
			<content:encoded><![CDATA[<p>Really loving the seesmic web application. The user interface is clean, can grow and so easy to use. It seems so original yet all the elememts fit with current patterns.</p>
<p><a href="http://www.tomasbreen.com/wp/wp-content/uploads/2010/01/seesmic_ss_1.jpg"><img class="alignnone size-medium wp-image-56" title="seesmic_ss_1" src="http://www.tomasbreen.com/wp/wp-content/uploads/2010/01/seesmic_ss_1-300x111.jpg" alt="seesmic_ss_1" width="300" height="111" /></a></p>
<p>The top and left navigation work really well together. They are uniquely different but compliment each others roles in the app. The top has been left very simple, with only 3 buttons, 1 of which is a really intuitive refresh (ajaxy) button. The buttons are connected, and make you feel like they are tabs, which is what you achieve when clicking as they switch between 2 interfaces.</p>
<p><a href="http://www.tomasbreen.com/wp/wp-content/uploads/2010/01/seesmic_ss_2.jpg"><img class="alignnone size-medium wp-image-57" title="seesmic_ss_2" src="http://www.tomasbreen.com/wp/wp-content/uploads/2010/01/seesmic_ss_2-300x152.jpg" alt="seesmic_ss_2" width="300" height="152" /></a></p>
<p>The epicentre is made up of &#8220;windows&#8221;, which can contain any kind of content, timeline, searches, #tags etc. Although I would have liked to be able to see a single users tweets, but can&#8217;t seem to do it (just found a tab called updates under the user profile area, but would like to see it in the epicenter, as then I can watch multiple users without officially following them).</p>
<p><a href="http://www.tomasbreen.com/wp/wp-content/uploads/2010/01/seesmic_ss_3.jpg"><img class="alignnone size-medium wp-image-58" title="seesmic_ss_3" src="http://www.tomasbreen.com/wp/wp-content/uploads/2010/01/seesmic_ss_3-300x156.jpg" alt="seesmic_ss_3" width="300" height="156" /></a></p>
<p>The search area is great. You can have multiple search results &#8220;windows&#8221; in the epicentre. Handy for watching topics of interest.</p>
<p>I have found client apps are good, but become out of sync when using across work and home machines (mac at home, windows at work). I really love this interface, as it give me everything the twitter web app gives me and more.</p>
<p><a href="http://seesmic.com/web/">Visit Seesmic</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomasbreen.com/wp/index.php/2010/01/seesmic-web-a-quick-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple URLs for a single node in Umbraco</title>
		<link>http://www.tomasbreen.com/wp/index.php/2010/01/multiple-urls-for-a-single-node-in-umbraco/</link>
		<comments>http://www.tomasbreen.com/wp/index.php/2010/01/multiple-urls-for-a-single-node-in-umbraco/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 15:55:34 +0000</pubDate>
		<dc:creator>Tomas Breen</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Umbraco]]></category>

		<guid isPermaLink="false">http://www.tomasbreen.com/wp/?p=30</guid>
		<description><![CDATA[I am developing a public website for a client at the moment, and this is my first project with Umbraco as the CMS. On the outset, the community around umbraco is fantastic, and coming from a .NET backgound, I am getting used to it quickly. The fact that I&#8217;ve had a lot of interest in [...]]]></description>
			<content:encoded><![CDATA[<p>I am developing a public website for a client at the moment, and this is my first project with Umbraco as the CMS. On the outset, the community around umbraco is fantastic, and coming from a .NET backgound, I am getting used to it quickly. The fact that I&#8217;ve had a lot of interest in SEO and url rewriting helps too, because umbraco uses these concepts alot.</p>
<p>The admin interface is easy to use, and end users should have no trouble getting to grips with content editing and publishing. But like any system, the developer must keep it simple.</p>
<p>The challenge: To create a product line with multiple pages for each product (overview, details &amp; contact form).</p>
<p>The solution: I could have easily create a node for the overview, then created 2 nodes below that for the details and contact form. But this would have required additional training for end users and left gaps for human error to occur, leading to additional product support. So I decided to keep it to a single node, and figure out how to create 3 pages from that node without confusing the user.</p>
<p>I posted a question on our.umbraco to see if anyone had any suggestions, and <a href="http://our.umbraco.org/forum/getting-started/questions-about-runway-and-modules/6279-Single-Node-with-Mutiple-URLs">one answer</a> got me on the right path, and after a little trial and error, I found a great solutions to (possibly) a common CMS problem.</p>
<p>The key to solving this problem is all in the XSLT for your navigation. Here is the full XSLT file for navigation:</p>
<div id="wpshdo_1" class="wp-synhighlighter-outer"><div id="wpshdt_1" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_1"></a><a id="wpshat_1" class="wp-synhighlighter-title" href="#codesyntax_1"  onClick="javascript:wpsh_toggleBlock(1)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_1" onClick="javascript:wpsh_code(1)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.tomasbreen.com/wp/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_1" onClick="javascript:wpsh_print(1)" title="Print code"><img border="0" style="border: 0 none" src="http://www.tomasbreen.com/wp/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="#codesyntax_1" onClick="javascript:wpsh_about(1)" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.tomasbreen.com/wp/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_1" class="wp-synhighlighter-inner" style="display: block;"><pre class="xml" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;UTF-8&quot;</span><span class="re2">?&gt;</span></span>
<span class="sc0">&lt;!DOCTYPE xsl:stylesheet [ &lt;!ENTITY nbsp &quot;&amp;#x00A0;&quot;&gt;</span> ]&gt;
<span class="sc3"><span class="re1">&lt;xsl:stylesheet</span></span>
<span class="sc3">	<span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span></span>
<span class="sc3">	<span class="re0">xmlns:xsl</span>=<span class="st0">&quot;http://www.w3.org/1999/XSL/Transform&quot;</span></span>
<span class="sc3">	<span class="re0">xmlns:msxml</span>=<span class="st0">&quot;urn:schemas-microsoft-com:xslt&quot;</span></span>
<span class="sc3">	<span class="re0">xmlns:umbraco.library</span>=<span class="st0">&quot;urn:umbraco.library&quot;</span> <span class="re0">xmlns:Exslt.ExsltCommon</span>=<span class="st0">&quot;urn:Exslt.ExsltCommon&quot;</span> <span class="re0">xmlns:Exslt.ExsltDatesAndTimes</span>=<span class="st0">&quot;urn:Exslt.ExsltDatesAndTimes&quot;</span> <span class="re0">xmlns:Exslt.ExsltMath</span>=<span class="st0">&quot;urn:Exslt.ExsltMath&quot;</span> <span class="re0">xmlns:Exslt.ExsltRegularExpressions</span>=<span class="st0">&quot;urn:Exslt.ExsltRegularExpressions&quot;</span> <span class="re0">xmlns:Exslt.ExsltStrings</span>=<span class="st0">&quot;urn:Exslt.ExsltStrings&quot;</span> <span class="re0">xmlns:Exslt.ExsltSets</span>=<span class="st0">&quot;urn:Exslt.ExsltSets&quot;</span> <span class="re0">xmlns:tagsLib</span>=<span class="st0">&quot;urn:tagsLib&quot;</span> <span class="re0">xmlns:BlogLibrary</span>=<span class="st0">&quot;urn:BlogLibrary&quot;</span></span>
<span class="sc3">	<span class="re0">exclude-result-prefixes</span>=<span class="st0">&quot;msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets tagsLib BlogLibrary &quot;</span><span class="re2">&gt;</span></span>
&nbsp;
<span class="sc3"><span class="re1">&lt;xsl:output</span> <span class="re0">method</span>=<span class="st0">&quot;xml&quot;</span> <span class="re0">omit-xml-declaration</span>=<span class="st0">&quot;yes&quot;</span> <span class="re2">/&gt;</span></span>
&nbsp;
<span class="sc3"><span class="re1">&lt;xsl:param</span> <span class="re0">name</span>=<span class="st0">&quot;currentPage&quot;</span><span class="re2">/&gt;</span></span>
&nbsp;
<span class="sc-1">&lt;!-- Input the documenttype you want here --&gt;</span>
<span class="sc3"><span class="re1">&lt;xsl:variable</span> <span class="re0">name</span>=<span class="st0">&quot;documentTypeAlias&quot;</span> <span class="re0">select</span>=<span class="st0">&quot;string('Product')&quot;</span><span class="re2">/&gt;</span></span>
&nbsp;
<span class="sc3"><span class="re1">&lt;xsl:template</span> <span class="re0">match</span>=<span class="st0">&quot;/&quot;</span><span class="re2">&gt;</span></span>
&nbsp;
<span class="sc-1">&lt;!-- The fun starts here --&gt;</span>
<span class="sc3"><span class="re1">&lt;ul<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;xsl:for-each</span> <span class="re0">select</span>=<span class="st0">&quot;$currentPage/ancestor-or-self::node [@level=2]/node [@nodeTypeAlias = $documentTypeAlias and string(data [@alias='umbracoNaviHide']) != '1']&quot;</span><span class="re2">&gt;</span></span>
	<span class="sc3"><span class="re1">&lt;li<span class="re2">&gt;</span></span></span>
		<span class="sc3"><span class="re1">&lt;a</span> <span class="re0">href</span>=<span class="st0">&quot;{umbraco.library:NiceUrl(@id)}&quot;</span><span class="re2">&gt;</span></span>
			<span class="sc3"><span class="re1">&lt;xsl:value-of</span> <span class="re0">select</span>=<span class="st0">&quot;@nodeName&quot;</span><span class="re2">/&gt;</span></span>
		<span class="sc3"><span class="re1">&lt;/a<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;ul<span class="re2">&gt;</span></span></span>
      <span class="sc3"><span class="re1">&lt;li<span class="re2">&gt;</span></span></span>
        <span class="sc3"><span class="re1">&lt;a</span> <span class="re0">href</span>=<span class="st0">&quot;{umbraco.library:Replace(umbraco.library:NiceUrl(@id), '.aspx', '/details.aspx')}&quot;</span><span class="re2">&gt;</span></span>
          Details
        <span class="sc3"><span class="re1">&lt;/a<span class="re2">&gt;</span></span></span>
      <span class="sc3"><span class="re1">&lt;/li<span class="re2">&gt;</span></span></span>
      <span class="sc3"><span class="re1">&lt;li<span class="re2">&gt;</span></span></span>
        <span class="sc3"><span class="re1">&lt;a</span> <span class="re0">href</span>=<span class="st0">&quot;{umbraco.library:Replace(umbraco.library:NiceUrl(@id), '.aspx', '/enquiry.aspx')}&quot;</span><span class="re2">&gt;</span></span>
          Enquire<span class="sc3"><span class="re1">&lt;/a<span class="re2">&gt;</span></span></span>
      <span class="sc3"><span class="re1">&lt;/li<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;/ul<span class="re2">&gt;</span></span></span>
	<span class="sc3"><span class="re1">&lt;/li<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/xsl:for-each<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/ul<span class="re2">&gt;</span></span></span>
&nbsp;
<span class="sc3"><span class="re1">&lt;/xsl:template<span class="re2">&gt;</span></span></span>
&nbsp;
<span class="sc3"><span class="re1">&lt;/xsl:stylesheet<span class="re2">&gt;</span></span></span></pre></div></div></p>
<p>This stylesheets find all products at the second  level (2 below homepage), then displays the product name with a link, and then displays 3 links below that to the same node, but explicitly defining which template to use. A simple example would look like:</p>
<div id="wpshdo_2" class="wp-synhighlighter-outer"><div id="wpshdt_2" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_2"></a><a id="wpshat_2" class="wp-synhighlighter-title" href="#codesyntax_2"  onClick="javascript:wpsh_toggleBlock(2)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_2" onClick="javascript:wpsh_code(2)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.tomasbreen.com/wp/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_2" onClick="javascript:wpsh_print(2)" title="Print code"><img border="0" style="border: 0 none" src="http://www.tomasbreen.com/wp/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="#codesyntax_2" onClick="javascript:wpsh_about(2)" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.tomasbreen.com/wp/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_2" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="sy0">/</span><span class="br0">&#123;</span>parentNode<span class="br0">&#125;</span><span class="sy0">/</span><span class="br0">&#123;</span>nodeName<span class="br0">&#125;</span><span class="sy0">/</span><span class="br0">&#123;</span>templateAlias<span class="br0">&#125;</span><span class="sy0">.</span>aspx</pre></div></div></p>
<p>To acheive this, you need 3 templates for your Document type, the default template (overview), and 2 other templates. The alias of this template is important as it relates directly to the url used above, so make it search engine friendly and pretty short.</p>
<p><a href="http://www.tomasbreen.com/wp/wp-content/uploads/2010/01/product_ss_2.jpg"><img class="alignnone size-medium wp-image-49" title="product_ss_2" src="http://www.tomasbreen.com/wp/wp-content/uploads/2010/01/product_ss_2-300x161.jpg" alt="product_ss_2" width="300" height="161" /></a></p>
<p>The document type itself can then contain an array of fields used across the different templates.</p>
<p><a href="http://www.tomasbreen.com/wp/wp-content/uploads/2010/01/product_ss_1.jpg"><img class="alignnone size-medium wp-image-48" title="product_ss_1" src="http://www.tomasbreen.com/wp/wp-content/uploads/2010/01/product_ss_1-300x174.jpg" alt="product_ss_1" width="300" height="174" /></a></p>
<p>And each template can then use the specific subset of content from the node.</p>
<p><a href="http://www.tomasbreen.com/wp/wp-content/uploads/2010/01/product_ss_3.jpg"><img class="alignnone size-medium wp-image-50" title="product_ss_3" src="http://www.tomasbreen.com/wp/wp-content/uploads/2010/01/product_ss_3-300x123.jpg" alt="product_ss_3" width="300" height="123" /></a></p>
<p>This is a great way to improve the user experience for your content editors while keeping long reams of content pages out of your site.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomasbreen.com/wp/index.php/2010/01/multiple-urls-for-a-single-node-in-umbraco/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Recursive Navigation in Umbraco</title>
		<link>http://www.tomasbreen.com/wp/index.php/2010/01/recursive-navigation-in-umbraco/</link>
		<comments>http://www.tomasbreen.com/wp/index.php/2010/01/recursive-navigation-in-umbraco/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 14:40:06 +0000</pubDate>
		<dc:creator>Tomas Breen</dc:creator>
				<category><![CDATA[Umbraco]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://www.tomasbreen.com/wp/?p=41</guid>
		<description><![CDATA[A recursive call in XSLT can be a bit confusing. It was for me. Here is a simple stylesheet that gets all nodes in this section (Usually a section in Umbraco sits underneath the Hompage, e.g. Content -&#62; Homepage -&#62; Section 1).
This code also adds a class to the node you are currently visiting.
]]></description>
			<content:encoded><![CDATA[<p>A recursive call in XSLT can be a bit confusing. It was for me. Here is a simple stylesheet that gets all nodes in this section (Usually a section in Umbraco sits underneath the Hompage, e.g. Content -&gt; Homepage -&gt; Section 1).</p>
<div id="wpshdo_3" class="wp-synhighlighter-outer"><div id="wpshdt_3" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_3"></a><a id="wpshat_3" class="wp-synhighlighter-title" href="#codesyntax_3"  onClick="javascript:wpsh_toggleBlock(3)" title="Click to show/hide code block">Code block</a></td><td align="right"><a href="#codesyntax_3" onClick="javascript:wpsh_code(3)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.tomasbreen.com/wp/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_3" onClick="javascript:wpsh_print(3)" title="Print code"><img border="0" style="border: 0 none" src="http://www.tomasbreen.com/wp/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="#codesyntax_3" onClick="javascript:wpsh_about(3)" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.tomasbreen.com/wp/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_3" class="wp-synhighlighter-inner" style="display: block;"><pre class="xml" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;UTF-8&quot;</span><span class="re2">?&gt;</span></span>
<span class="sc0">&lt;!DOCTYPE xsl:stylesheet [</span>
<span class="sc0">  &lt;!ENTITY nbsp &quot;&amp;#x00A0;&quot;&gt;</span>
]&gt;
<span class="sc3"><span class="re1">&lt;xsl:stylesheet</span></span>
<span class="sc3">	<span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span></span>
<span class="sc3">	<span class="re0">xmlns:xsl</span>=<span class="st0">&quot;http://www.w3.org/1999/XSL/Transform&quot;</span></span>
<span class="sc3">	<span class="re0">xmlns:msxml</span>=<span class="st0">&quot;urn:schemas-microsoft-com:xslt&quot;</span></span>
<span class="sc3">	<span class="re0">xmlns:umbraco.library</span>=<span class="st0">&quot;urn:umbraco.library&quot;</span></span>
<span class="sc3">	<span class="re0">exclude-result-prefixes</span>=<span class="st0">&quot;msxml umbraco.library&quot;</span><span class="re2">&gt;</span></span>
&nbsp;
  <span class="sc3"><span class="re1">&lt;xsl:output</span> <span class="re0">method</span>=<span class="st0">&quot;xml&quot;</span> <span class="re0">omit-xml-declaration</span>=<span class="st0">&quot;yes&quot;</span> <span class="re2">/&gt;</span></span>
&nbsp;
  <span class="sc3"><span class="re1">&lt;xsl:param</span> <span class="re0">name</span>=<span class="st0">&quot;currentPage&quot;</span><span class="re2">/&gt;</span></span>
&nbsp;
  <span class="sc3"><span class="re1">&lt;xsl:param</span> <span class="re0">name</span>=<span class="st0">&quot;level&quot;</span> <span class="re0">select</span>=<span class="st0">&quot;2&quot;</span><span class="re2">/&gt;</span></span>
&nbsp;
  <span class="sc3"><span class="re1">&lt;xsl:template</span> <span class="re0">match</span>=<span class="st0">&quot;/&quot;</span><span class="re2">&gt;</span></span>
    <span class="sc3"><span class="re1">&lt;xsl:call-template</span> <span class="re0">name</span>=<span class="st0">&quot;menu&quot;</span><span class="re2">&gt;</span></span>
      <span class="sc3"><span class="re1">&lt;xsl:with-param</span> <span class="re0">name</span>=<span class="st0">&quot;level&quot;</span> <span class="re0">select</span>=<span class="st0">&quot;$level&quot;</span><span class="re2">/&gt;</span></span>
    <span class="sc3"><span class="re1">&lt;/xsl:call-template<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;/xsl:template<span class="re2">&gt;</span></span></span>
&nbsp;
  <span class="sc3"><span class="re1">&lt;xsl:template</span> <span class="re0">name</span>=<span class="st0">&quot;menu&quot;</span><span class="re2">&gt;</span></span>
    <span class="sc3"><span class="re1">&lt;xsl:param</span> <span class="re0">name</span>=<span class="st0">&quot;level&quot;</span><span class="re2">/&gt;</span></span>
&nbsp;
    <span class="sc3"><span class="re1">&lt;ul</span> <span class="re0">class</span>=<span class="st0">&quot;level_{@level}&quot;</span><span class="re2">&gt;</span></span>
      <span class="sc3"><span class="re1">&lt;xsl:if</span> <span class="re0">test</span>=<span class="st0">&quot;count($currentPage/ancestor-or-self::node [@level=$level]/node [string(data [@alias='umbracoNaviHide']) != '1']) &amp;gt; '0'&quot;</span><span class="re2">&gt;</span></span>
        <span class="sc3"><span class="re1">&lt;xsl:for-each</span> <span class="re0">select</span>=<span class="st0">&quot;$currentPage/ancestor-or-self::node [@level=$level]/node [string(data [@alias='umbracoNaviHide']) != '1']&quot;</span><span class="re2">&gt;</span></span>
          <span class="sc3"><span class="re1">&lt;li<span class="re2">&gt;</span></span></span>
              <span class="sc3"><span class="re1">&lt;a</span> <span class="re0">href</span>=<span class="st0">&quot;{umbraco.library:NiceUrl(@id)}&quot;</span><span class="re2">&gt;</span></span>
                <span class="sc3"><span class="re1">&lt;xsl:if</span> <span class="re0">test</span>=<span class="st0">&quot;$currentPage/@id = current()/@id&quot;</span><span class="re2">&gt;</span></span>
                  <span class="sc3"><span class="re1">&lt;xsl:attribute</span> <span class="re0">name</span>=<span class="st0">&quot;class&quot;</span><span class="re2">&gt;</span></span>Selected<span class="sc3"><span class="re1">&lt;/xsl:attribute<span class="re2">&gt;</span></span></span>
                <span class="sc3"><span class="re1">&lt;/xsl:if<span class="re2">&gt;</span></span></span>
                <span class="sc3"><span class="re1">&lt;xsl:value-of</span> <span class="re0">select</span>=<span class="st0">&quot;@nodeName&quot;</span><span class="re2">/&gt;</span></span>
              <span class="sc3"><span class="re1">&lt;/a<span class="re2">&gt;</span></span></span>
            <span class="sc3"><span class="re1">&lt;xsl:if</span> <span class="re0">test</span>=<span class="st0">&quot;count(current()/node [string(data [@alias='umbracoNaviHide']) != '1']) &amp;gt; '0'&quot;</span><span class="re2">&gt;</span></span>
              <span class="sc3"><span class="re1">&lt;xsl:call-template</span> <span class="re0">name</span>=<span class="st0">&quot;submenu&quot;</span><span class="re2">&gt;</span></span>
                <span class="sc3"><span class="re1">&lt;xsl:with-param</span> <span class="re0">name</span>=<span class="st0">&quot;level&quot;</span> <span class="re0">select</span>=<span class="st0">&quot;$level+1&quot;</span><span class="re2">/&gt;</span></span>
              <span class="sc3"><span class="re1">&lt;/xsl:call-template<span class="re2">&gt;</span></span></span>
            <span class="sc3"><span class="re1">&lt;/xsl:if<span class="re2">&gt;</span></span></span>
          <span class="sc3"><span class="re1">&lt;/li<span class="re2">&gt;</span></span></span>
        <span class="sc3"><span class="re1">&lt;/xsl:for-each<span class="re2">&gt;</span></span></span>
      <span class="sc3"><span class="re1">&lt;/xsl:if<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;/ul<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;/xsl:template<span class="re2">&gt;</span></span></span>
&nbsp;
  <span class="sc3"><span class="re1">&lt;xsl:template</span> <span class="re0">name</span>=<span class="st0">&quot;submenu&quot;</span><span class="re2">&gt;</span></span>
    <span class="sc3"><span class="re1">&lt;xsl:param</span> <span class="re0">name</span>=<span class="st0">&quot;level&quot;</span><span class="re2">/&gt;</span></span>
&nbsp;
    <span class="sc3"><span class="re1">&lt;ul</span> <span class="re0">class</span>=<span class="st0">&quot;level_{@level}&quot;</span><span class="re2">&gt;</span></span>
      <span class="sc3"><span class="re1">&lt;xsl:for-each</span> <span class="re0">select</span>=<span class="st0">&quot;current()/node [string(data [@alias='umbracoNaviHide']) != '1']&quot;</span><span class="re2">&gt;</span></span>
        <span class="sc3"><span class="re1">&lt;li<span class="re2">&gt;</span></span></span>
            <span class="sc3"><span class="re1">&lt;a</span> <span class="re0">href</span>=<span class="st0">&quot;{umbraco.library:NiceUrl(@id)}&quot;</span><span class="re2">&gt;</span></span>
              <span class="sc3"><span class="re1">&lt;xsl:if</span> <span class="re0">test</span>=<span class="st0">&quot;$currentPage/@id = current()/@id&quot;</span><span class="re2">&gt;</span></span>
                <span class="sc3"><span class="re1">&lt;xsl:attribute</span> <span class="re0">name</span>=<span class="st0">&quot;class&quot;</span><span class="re2">&gt;</span></span>Selected<span class="sc3"><span class="re1">&lt;/xsl:attribute<span class="re2">&gt;</span></span></span>
              <span class="sc3"><span class="re1">&lt;/xsl:if<span class="re2">&gt;</span></span></span>
              <span class="sc3"><span class="re1">&lt;xsl:value-of</span> <span class="re0">select</span>=<span class="st0">&quot;@nodeName&quot;</span><span class="re2">/&gt;</span></span>
            <span class="sc3"><span class="re1">&lt;/a<span class="re2">&gt;</span></span></span>
          <span class="sc3"><span class="re1">&lt;xsl:if</span> <span class="re0">test</span>=<span class="st0">&quot;count(current()/node [string(data [@alias='umbracoNaviHide']) != '1']) &amp;gt; '0'&quot;</span><span class="re2">&gt;</span></span>
            <span class="sc3"><span class="re1">&lt;xsl:call-template</span> <span class="re0">name</span>=<span class="st0">&quot;submenu&quot;</span><span class="re2">&gt;</span></span>
              <span class="sc3"><span class="re1">&lt;xsl:with-param</span> <span class="re0">name</span>=<span class="st0">&quot;level&quot;</span> <span class="re0">select</span>=<span class="st0">&quot;$level+1&quot;</span><span class="re2">/&gt;</span></span>
            <span class="sc3"><span class="re1">&lt;/xsl:call-template<span class="re2">&gt;</span></span></span>
          <span class="sc3"><span class="re1">&lt;/xsl:if<span class="re2">&gt;</span></span></span>
        <span class="sc3"><span class="re1">&lt;/li<span class="re2">&gt;</span></span></span>
      <span class="sc3"><span class="re1">&lt;/xsl:for-each<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;/ul<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;/xsl:template<span class="re2">&gt;</span></span></span>
&nbsp;
<span class="sc3"><span class="re1">&lt;/xsl:stylesheet<span class="re2">&gt;</span></span></span></pre></div></div></p>
<p>This code also adds a class to the node you are currently visiting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomasbreen.com/wp/index.php/2010/01/recursive-navigation-in-umbraco/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gmail Tip: Advanced Email Address</title>
		<link>http://www.tomasbreen.com/wp/index.php/2010/01/gmail-tip-advanced-email-address/</link>
		<comments>http://www.tomasbreen.com/wp/index.php/2010/01/gmail-tip-advanced-email-address/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 09:54:38 +0000</pubDate>
		<dc:creator>Tomas Breen</dc:creator>
				<category><![CDATA[Email]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.tomasbreen.com/wp/?p=38</guid>
		<description><![CDATA[Here&#8217;s something I&#8217;ve just learned from the Gmail Tips page:
You actually get more address variations than just &#8220;yourusername@gmail.com,&#8221; all of which get delivered to you. You can put a plus (&#8221;+&#8221;) sign and any combination of words or numbers after your name, like changing hikingfan@gmail.com to hikingfan+mailinglists@gmail.com or hikingfan+junk@gmail.com. Then you can easily add a [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s something I&#8217;ve just learned from the <a href="http://mail.google.com/mail/help/intl/en/tips.html#black">Gmail Tips</a> page:</p>
<blockquote><p>You actually get more address variations than just &#8220;yourusername@gmail.com,&#8221; all of which get delivered to you. You can put a plus (&#8221;+&#8221;) sign and any combination of words or numbers after your name, like changing hikingfan@gmail.com to hikingfan+mailinglists@gmail.com or hikingfan+junk@gmail.com. Then you can easily add a filter to label and/or archive messages sent to the variations.</p></blockquote>
<p>This is brilliant for finding the source of your spam. If you sign up for an account with a website, and you&#8217;re unsure about their spam policy, then use something like yourusername+sourcewebsite@gmail.com. All the mail will still come to you, but if you start getting spammed to that address, then you know who gave it out. And it&#8217;s easy to filter mails from facebook, youtube etc (yourusername+facebook@gmail.com).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomasbreen.com/wp/index.php/2010/01/gmail-tip-advanced-email-address/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Without the 98% shit, the other 2% wouldn&#8217;t be gold</title>
		<link>http://www.tomasbreen.com/wp/index.php/2009/06/without-the-98-shit-the-other-2-wouldnt-be-gold/</link>
		<comments>http://www.tomasbreen.com/wp/index.php/2009/06/without-the-98-shit-the-other-2-wouldnt-be-gold/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 18:37:24 +0000</pubDate>
		<dc:creator>Tomas Breen</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.tomasbreen.com/wp/?p=23</guid>
		<description><![CDATA[An interesting tweet from Deane @gadgetopia (Gadgetopia Blog) earlier this week.

It got me thinking about the nature of the web, as a publishing media. It&#8217;s common knowledge that the internet is free, accessible and un-censored (to a level), meaning more voices, less coverups and what seems like a never ending stream of opinion and content.
The [...]]]></description>
			<content:encoded><![CDATA[<p>An interesting tweet from Deane <a href="http://twitter.com/gadgetopia">@gadgetopia</a> (<a href="http://gadgetopia.com/">Gadgetopia Blog</a>) earlier this week.</p>
<p><a href="http://twitter.com/gadgetopia/status/2121640786"><img src="http://tweetshots.com/tweetstock/wt4a33e0337f94e.png" border="0" alt="" width="75%" /></a></p>
<p>It got me thinking about the nature of the web, as a publishing media. It&#8217;s common knowledge that the internet is free, accessible and un-censored (to a level), meaning more voices, less coverups and what seems like a never ending stream of opinion and content.</p>
<p>The downside, of course, being the fact that a large amount of these voices and opinions are coming from complete &#8216;tards who really have nothing to say, but will try anyway. Yes, a gross stereotype and over-simplification of the situation.</p>
<p>Out of all the content on the web, there will always be the hater, troll inducing no sense &#8230;. shit.</p>
<p>But luckily the rest is gold, and the more shit there is the more value there is in the gold. Hmm, I have a feeling this post is part of the 98%. God bless the free web.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomasbreen.com/wp/index.php/2009/06/without-the-98-shit-the-other-2-wouldnt-be-gold/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The business of blogging</title>
		<link>http://www.tomasbreen.com/wp/index.php/2008/12/hello-world/</link>
		<comments>http://www.tomasbreen.com/wp/index.php/2008/12/hello-world/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 06:25:39 +0000</pubDate>
		<dc:creator>Tomas Breen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[spd]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://tomasbreen.com/wp/?p=1</guid>
		<description><![CDATA[Bit of a pipe dream really. Money can be made from Blogging, some make a lot of money. But most don&#8217;t.
On that day more than 500,000 people hit my site—by far the biggest day I&#8217;d ever had—and through Google&#8217;s AdSense program I earned about a hundred bucks.
That&#8217;s not very inspiring. I seriously figured more people [...]]]></description>
			<content:encoded><![CDATA[<p>Bit of a pipe dream really. Money can be made from Blogging, some make a lot of money. But most <a href="http://www.newsweek.com/id/183666">don&#8217;t</a>.</p>
<blockquote><p>On that day more than 500,000 people hit my site—by far the biggest day I&#8217;d ever had—and through Google&#8217;s AdSense program I earned about a hundred bucks.</p></blockquote>
<p>That&#8217;s not very inspiring. I seriously figured more people clicked on ads. I don&#8217;t click on ads, in fact I&#8217;ve managed to stick them in my blind spot on most sites I visit, so I guess I can&#8217;t assume everyone else does.</p>
<p>It would be great to be able to make money directly from blogging, but realistically, the only main value that can come from a blog is to be able to sell yourself as a writer/designer/developer or someone competent in your professional field. When it boils down to it, this value should be worth more to you than ad revenue. Building relationship with your readers, and converting them into paying clients should be the goal of a professional blogger. In fact a personal (?) bloggers goal should be to build relationships too.</p>
<p>One month I made €4.36 in google ads, and I was stoked. Still haven&#8217;t reached the €100 mark after almost 5 years writing <a title="BahFlafBurb - Tomas Breen" href="http://www.bahflafburb.com">BahFlafBurb</a>, so have yet to actually get money (Major party when that cheque comes!!). I guess I&#8217;ll just have to put up with the enjoyment of having an outlet and some reliable readers and commenters.</p>
<p>My tip? Like <a href="http://www.bahflafburb.com/2009/02/who-is-twitter-for.html">other networking platforms</a>, focus on quality content that sells you as a person/professional.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomasbreen.com/wp/index.php/2008/12/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
