<?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>IntraNoggin</title>
	<atom:link href="http://www.IntraNoggin.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.IntraNoggin.com</link>
	<description>Blither, Blather, and SharePoint</description>
	<lastBuildDate>Fri, 09 Mar 2012 15:14:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Heartland Region SharePoint Conference&#8211;Slides</title>
		<link>http://www.IntraNoggin.com/2012/03/1068/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=heartland-region-sharepoint-conference</link>
		<comments>http://www.IntraNoggin.com/2012/03/1068/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 20:41:50 +0000</pubDate>
		<dc:creator>Ryan Miller</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[CQWP]]></category>

		<guid isPermaLink="false">http://www.IntraNoggin.com/?p=1068</guid>
		<description><![CDATA[We had a huge turnout for the conference today. thanks to everyone that came out. My CQWP presentation was standing room only, which was awesome. Update: Slides are now posted.&#160; PS. I know we went through this material fast, which &#8230; <a href="http://www.IntraNoggin.com/2012/03/1068/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We had a huge turnout for the conference today. thanks to everyone that came out. My CQWP presentation was standing room only, which was awesome. </p>
<p>Update: Slides are now posted.&nbsp; PS. I know we went through this material fast, which is why I intentionally left my slides verbose. They should hopefully be of some use to look back through.</p>
<p align="center"><a title="2012 Heartland SharePoint Conference Slides" href="https://skydrive.live.com/redir.aspx?cid=5aa1645eb4bfe755&amp;resid=5AA1645EB4BFE755!309&amp;parid=5AA1645EB4BFE755!308" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.intranoggin.com/wp-content/uploads/2012/03/image5.png" width="242" height="183"></a></p>
<p align="center"><a href="https://skydrive.live.com/redir.aspx?cid=5aa1645eb4bfe755&amp;resid=5AA1645EB4BFE755!309&amp;parid=5AA1645EB4BFE755!308" target="_blank">Click for slides</a></p>
<p><a href="http://www.IntraNoggin.com/wp-content/uploads/2012/03/WP_000696.jpg">
<p><img style="width: 500px; height: 375px" src="http://www.IntraNoggin.com/wp-content/uploads/2012/03/WP_000696.jpg"></p>
<p></a>
<p class="post-sig">Next year I&#8217;m going to try to get crowd to do the wave. (assuming they&#8217;ll come back)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.IntraNoggin.com/2012/03/1068/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CQWP: The Most Powerful Tool You&#8217;re Underutilizing</title>
		<link>http://www.IntraNoggin.com/2012/03/1066/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqwp-the-most-powerful-tool-youre-underutilizing</link>
		<comments>http://www.IntraNoggin.com/2012/03/1066/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 14:33:19 +0000</pubDate>
		<dc:creator>Ryan Miller</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Content Query]]></category>
		<category><![CDATA[CQWP]]></category>
		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">http://www.IntraNoggin.com/2012/03/1066/</guid>
		<description><![CDATA[Heartland Region SharePoint Conference is tomorrow, 3-8-2012. Here&#8217;s a sneak peak of my CQWP talk. Hope to see you there: http://iccsharepoint.com]]></description>
			<content:encoded><![CDATA[<p>Heartland Region SharePoint Conference is tomorrow, 3-8-2012. </p>
<p>Here&#8217;s a sneak peak of my CQWP talk. Hope to see you there: <a href="http://iccsharepoint.com">http://iccsharepoint.com</a></p>
<p><a href="http://www.intranoggin.com/wp-content/uploads/2012/03/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.intranoggin.com/wp-content/uploads/2012/03/image_thumb.png" width="244" height="184"></a><a href="http://www.intranoggin.com/wp-content/uploads/2012/03/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.intranoggin.com/wp-content/uploads/2012/03/image_thumb1.png" width="244" height="183"></a><a href="http://www.intranoggin.com/wp-content/uploads/2012/03/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.intranoggin.com/wp-content/uploads/2012/03/image_thumb2.png" width="244" height="202"></a><a href="http://www.intranoggin.com/wp-content/uploads/2012/03/image3.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.intranoggin.com/wp-content/uploads/2012/03/image_thumb3.png" width="244" height="201"></a><a href="http://www.intranoggin.com/wp-content/uploads/2012/03/image4.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.intranoggin.com/wp-content/uploads/2012/03/image_thumb4.png" width="491" height="142"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.IntraNoggin.com/2012/03/1066/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CQWP: 30 Tips #10 Passing Current Position</title>
		<link>http://www.IntraNoggin.com/2012/02/1055/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqwp-30-tips-10-passing-current-position</link>
		<comments>http://www.IntraNoggin.com/2012/02/1055/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 22:00:08 +0000</pubDate>
		<dc:creator>Ryan Miller</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Content Query]]></category>
		<category><![CDATA[CQWP]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://www.IntraNoggin.com/2012/02/1055/</guid>
		<description><![CDATA[It can often be handy within your item style template to know what row you&#8217;re processing.&#160; For example, if you are displaying items in a table format and you want to spit out a row of column headers before the &#8230; <a href="http://www.IntraNoggin.com/2012/02/1055/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It can often be handy within your item style template to know what row you&#8217;re processing.&nbsp; For example, if you are displaying items in a table format and you want to spit out a row of column headers before the item data if you&#8217;re processing the first row.</p>
<p>Making this information available to your item style template is just a couple quick updates.&nbsp; First, inside ContentQueryMain.xsl, update OuterTemplate.CallItemTemplate to send along the current position as a parameter.</p>
<p>&lt;xsl:template name=&#8221;OuterTemplate.CallItemTemplate&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:param name=&#8221;CurPosition&#8221; /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:value-of disable-output-escaping=&#8221;yes&#8221; select=&#8221;$BeginListItem&#8221; /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:choose&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:when test=&#8221;@Style=&#8217;NewsRollUpItem&#8217;&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:apply-templates select=&#8221;.&#8221; mode=&#8221;itemstyle&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:with-param name=&#8221;EditMode&#8221; select=&#8221;$cbq_iseditmode&#8221; /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xsl:apply-templates&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xsl:when&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:when test=&#8221;@Style=&#8217;NewsBigItem&#8217;&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:apply-templates select=&#8221;.&#8221; mode=&#8221;itemstyle&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:with-param name=&#8221;CurPos&#8221; select=&#8221;$CurPosition&#8221; /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xsl:apply-templates&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xsl:when&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:when test=&#8221;@Style=&#8217;NewsCategoryItem&#8217;&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:apply-templates select=&#8221;.&#8221; mode=&#8221;itemstyle&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:with-param name=&#8221;CurPos&#8221; select=&#8221;$CurPosition&#8221; /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xsl:apply-templates&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xsl:when&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:otherwise&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:apply-templates select=&#8221;.&#8221; mode=&#8221;itemstyle&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="background-color: #ffff00">&lt;xsl:with-param name=&#8221;CurPos&#8221; select=&#8221;$CurPosition&#8221; /&gt;</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xsl:apply-templates&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xsl:otherwise&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xsl:choose&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:value-of disable-output-escaping=&#8221;yes&#8221; select=&#8221;$EndListItem&#8221; /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/xsl:template&gt;</p>
<p>Note that by adding that update, you&#8217;ll always send across the current position even if the receiving item style template doesn&#8217;t use or declare a CurPos parameter.</p>
<p>Now, whenever you want to use the current position in your item style template, just declare the CurPos parameter and use it.</p>
<p>&lt;/xsl:template&gt;&lt;xsl:template name=&#8221;TableLayout&#8221; match=&#8221;Row[@Style='TableLayout']&#8221; mode=&#8221;itemstyle&#8221;&gt;<br />&nbsp;&nbsp;&nbsp; <font style="background-color: #ffff00">&lt;xsl:param name=&#8221;CurPos&#8221;/&gt;</font><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:variable name=&#8221;SafeImageUrl&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:call-template name=&#8221;OuterTemplate.GetSafeStaticUrl&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;xsl:with-param name=&#8221;UrlColumnName&#8221; select=&#8221;&#8216;ImageUrl&#8217;&#8221;/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xsl:call-template&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xsl:variable&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="background-color: #ffff00">&lt;xsl:if test=&#8221;$CurPos = &#8217;1&#8242;&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;Column Header 1&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;Column Header 2&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;Column Header 3&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;Column Header 4&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/xsl:if&gt;<br /></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;xsl:value-of select=&#8221;@Column1&#8243;/&gt;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;xsl:value-of select=&#8221;@Column2&#8243;/&gt;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;xsl:value-of select=&#8221;@Column3&#8243;/&gt;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;xsl:value-of select=&#8221;@Column4&#8243;/&gt;&lt;/td&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />&nbsp; &lt;/xsl:template&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.IntraNoggin.com/2012/02/1055/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CQWP: 30 Tips #9 Date Formatting with the Power of SP Designer</title>
		<link>http://www.IntraNoggin.com/2012/02/1054/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqwp-30-tips-9-date-formatting-with-the-power-of-sp-designer</link>
		<comments>http://www.IntraNoggin.com/2012/02/1054/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 20:35:22 +0000</pubDate>
		<dc:creator>Ryan Miller</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Content Query]]></category>
		<category><![CDATA[CQWP]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://www.IntraNoggin.com/2012/02/1054/</guid>
		<description><![CDATA[If you&#8217;re using SharePoint Designer in a DataView web part, you&#8217;ve got great guid formatting options for dates.&#160; But those formatting options won&#8217;t cross over to CQWP without a little help. I first posted about this in October of 2008: &#8230; <a href="http://www.IntraNoggin.com/2012/02/1054/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re using SharePoint Designer in a DataView web part, you&#8217;ve got great guid formatting options for dates.&nbsp; But those formatting options won&#8217;t cross over to CQWP without a little help.</p>
<p>I first posted about this in October of 2008: <a title="http://www.intranoggin.com/2008/10/765/" href="http://www.intranoggin.com/2008/10/765/">http://www.intranoggin.com/2008/10/765/</a></p>
<p>Josh Gaffey also wrote a nice post about it in 2009: <a title="http://blogs.msdn.com/b/joshuag/archive/2009/03/25/custom-date-formats-in-sharepoint-xsl.aspx" href="http://blogs.msdn.com/b/joshuag/archive/2009/03/25/custom-date-formats-in-sharepoint-xsl.aspx">http://blogs.msdn.com/b/joshuag/archive/2009/03/25/custom-date-formats-in-sharepoint-xsl.aspx</a></p>
<p>The quick tip is that first you add this SharePoint Designer namespace to your CQWP&#8217;s .xsl xmlns:ddwrt=<a href="http://schemas.microsoft.com/WebParts/v2/DataView/runtime">http://schemas.microsoft.com/WebParts/v2/DataView/runtime</a></p>
<p>Then you can use the ddwrt:FormatDate function to format dates almost any way you&#8217;d like: &lt;xsl:value-of select=&#8221;ddwrt:FormatDate(@date, local, formatoption)&#8221;/&gt;</p>
<blockquote><p>&lt;xsl:value-of select=&#8221;ddwrt:FormatDate(@Modified, 1033, 1)&#8221;/&gt;</p>
</blockquote>
<p>Josh included a great table of local and format options in his post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.IntraNoggin.com/2012/02/1054/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CQWP: 30 Tips #8 Updates and Comments</title>
		<link>http://www.IntraNoggin.com/2012/02/1053/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cqwp-30-tips-8-updates-and-comments</link>
		<comments>http://www.IntraNoggin.com/2012/02/1053/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 19:00:25 +0000</pubDate>
		<dc:creator>Ryan Miller</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Content Query]]></category>
		<category><![CDATA[CQWP]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://www.IntraNoggin.com/2012/02/1053/</guid>
		<description><![CDATA[I don’t shy away from injecting my custom logic into the OOTB templates.&#160; See Tip #7 where I updated the template that generates the group header display text (http://www.intranoggin.com/2012/02/1052/). However, there almost always comes a time later on where you’ll &#8230; <a href="http://www.IntraNoggin.com/2012/02/1053/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I don’t shy away from injecting my custom logic into the OOTB templates.&nbsp; See Tip #7 where I updated the template that generates the group header display text <a title="http://www.intranoggin.com/2012/02/1052/" href="http://www.intranoggin.com/2012/02/1052/">(http://www.intranoggin.com/2012/02/1052/</a>).</p>
<p>However, there almost always comes a time later on where you’ll want to see just what the heck the original code did, or you’ll find yourself looking back at an OOTB template and wondering if it came that way or if it was customized at some point.&nbsp; To make my life easier, I’ve adopted this workflow.</p>
<p>First off, never make changes to the OOTB .xsl sheets.&nbsp; Always make a copy and point your CQWP’s .dwp at your copies.&nbsp; I covered this in Tip #1 (<a title="http://www.intranoggin.com/2012/02/1042/" href="http://www.intranoggin.com/2012/02/1042/">http://www.intranoggin.com/2012/02/1042/</a>).&nbsp; </p>
<p>Second, in those .xsl copies, if you want to update the logic of an OOTB template, comment out the original template version, then make a copy that contains the original with your changes.&nbsp; I usually leave the commented version right in its original location and put my modified version at the end of the file.</p>
<p>If you didn’t know, comments in .xsl are anything that begins with &lt;!&#8211; and ends with –&gt; </p>
<p>As an example, the modified section of .xsl from Tip #7 resides in a file called Custom_ContentQueryMain.xsl and looks like this:</p>
<p>&nbsp;</p>
<pre class="csharpcode">&lt;!--xsl:template name=<span class="str">"OuterTemplate.GetGroupName"</span>&gt;
        &lt;xsl:param name=<span class="str">"GroupName"</span>/&gt;
        &lt;xsl:param name=<span class="str">"GroupType"</span>/&gt;
        &lt;xsl:choose&gt;
            &lt;xsl:when test=<span class="str">"string-length(normalize-space($GroupName)) = 0"</span>&gt;
                &lt;xsl:<span class="kwrd">value</span>-of select=<span class="str">"$BlankGroup"</span>/&gt;
            &lt;/xsl:when&gt;
            &lt;xsl:otherwise&gt;
                &lt;xsl:choose&gt;
                    &lt;xsl:when test=<span class="str">"$GroupType='URL'"</span>&gt;
                        &lt;xsl:variable name=<span class="str">"Url"</span>&gt;
                            &lt;xsl:call-template name=<span class="str">"OuterTemplate.FormatValueIntoUrl"</span>&gt;
                                &lt;xsl:with-param name=<span class="str">"Value"</span> select=<span class="str">"$GroupName"</span>/&gt;
                            &lt;/xsl:call-template&gt;
                        &lt;/xsl:variable&gt;
                        &lt;xsl:call-template name=<span class="str">"OuterTemplate.GetPageNameFromUrlRecursive"</span>&gt;
                            &lt;xsl:with-param name=<span class="str">"Url"</span> select=<span class="str">"$Url"</span>/&gt;
                        &lt;/xsl:call-template&gt;
                    &lt;/xsl:when&gt;
                    &lt;xsl:otherwise&gt;
                        &lt;xsl:<span class="kwrd">value</span>-of select=<span class="str">"$GroupName"</span> /&gt;
                    &lt;/xsl:otherwise&gt;
                &lt;/xsl:choose&gt;
            &lt;/xsl:otherwise&gt;
        &lt;/xsl:choose&gt;
    &lt;/xsl:template--&gt;
    &lt;xsl:template name=<span class="str">"OuterTemplate.CallPresenceStatusIconTemplate"</span>&gt;
        &lt;xsl:<span class="kwrd">if</span> test=<span class="str">"string-length(@SipAddress) != 0"</span>&gt;
            &lt;span <span class="kwrd">class</span>=<span class="str">"presence-status-icon"</span>&gt;
                &lt;img src=<span class="str">"/_layouts/images/imnhdr.gif"</span> onload=<span class="str">"IMNRC('{@SipAddress}')"</span> ShowOfflinePawn=<span class="str">"1"</span> alt=<span class="str">""</span> id=<span class="str">"{concat('MWP_pawn_',$ClientId,'_',@ID,'type=sip')}"</span>/&gt;
            &lt;/span&gt;
        &lt;/xsl:<span class="kwrd">if</span>&gt;
    &lt;/xsl:template&gt;
    &lt;xsl:template name=<span class="str">"OuterTemplate.GetFileNameWithoutExtension"</span>&gt;
        &lt;xsl:param name=<span class="str">"input"</span>/&gt;
        &lt;xsl:variable name=<span class="str">"extension"</span>&gt;
          &lt;xsl:<span class="kwrd">value</span>-of select=<span class="str">"substring-after($input, '.')"</span>/&gt;
        &lt;/xsl:variable&gt;
        &lt;xsl:choose&gt;
            &lt;xsl:when test=<span class="str">"contains($extension, '.')"</span>&gt;
                &lt;xsl:variable name=<span class="str">"afterextension"</span>&gt;
              &lt;xsl:call-template name=<span class="str">"OuterTemplate.GetFileNameWithoutExtension"</span>&gt;
                &lt;xsl:with-param name=<span class="str">"input"</span> select=<span class="str">"$extension"</span>/&gt;
              &lt;/xsl:call-template&gt;
            &lt;/xsl:variable&gt;
                &lt;xsl:<span class="kwrd">value</span>-of select=<span class="str">"concat(substring-before($input, '.'), $afterextension)"</span>/&gt;
            &lt;/xsl:when&gt;
            &lt;xsl:otherwise&gt;
                &lt;xsl:choose&gt;
                    &lt;xsl:when test=<span class="str">"contains($input, '.')"</span>&gt;
                        &lt;xsl:<span class="kwrd">value</span>-of select=<span class="str">"substring-before($input, '.')"</span>/&gt;
                    &lt;/xsl:when&gt;
                    &lt;xsl:otherwise&gt;
                        &lt;xsl:<span class="kwrd">value</span>-of select=<span class="str">"$input"</span>/&gt;
                    &lt;/xsl:otherwise&gt;
                &lt;/xsl:choose&gt;
            &lt;/xsl:otherwise&gt;
        &lt;/xsl:choose&gt;
    &lt;/xsl:template&gt;
    &lt;!--Begin Overrides and Custom Templates--&gt;
    &lt;xsl:template name=<span class="str">"OuterTemplate.GetGroupName"</span>&gt;
        &lt;xsl:param name=<span class="str">"GroupName"</span>/&gt;
        &lt;xsl:param name=<span class="str">"GroupType"</span>/&gt;
        &lt;xsl:choose&gt;
            &lt;xsl:when test=<span class="str">"string-length(normalize-space($GroupName)) = 0"</span>&gt;
                &lt;xsl:<span class="kwrd">value</span>-of select=<span class="str">"$BlankGroup"</span>/&gt;
            &lt;/xsl:when&gt;
            &lt;xsl:otherwise&gt;
                &lt;xsl:choose&gt;
                    &lt;xsl:when test=<span class="str">"$GroupType='URL'"</span>&gt;
                        &lt;xsl:variable name=<span class="str">"Url"</span>&gt;
                            &lt;xsl:call-template name=<span class="str">"OuterTemplate.FormatValueIntoUrl"</span>&gt;
                                &lt;xsl:with-param name=<span class="str">"Value"</span> select=<span class="str">"$GroupName"</span>/&gt;
                            &lt;/xsl:call-template&gt;
                        &lt;/xsl:variable&gt;
                        &lt;xsl:call-template name=<span class="str">"OuterTemplate.GetPageNameFromUrlRecursive"</span>&gt;
                            &lt;xsl:with-param name=<span class="str">"Url"</span> select=<span class="str">"$Url"</span>/&gt;
                        &lt;/xsl:call-template&gt;
                    &lt;/xsl:when&gt;
                    &lt;xsl:otherwise&gt;
                        &lt;xsl:call-template name=<span class="str">"OuterTemplate.RemovePrependedOrderDigits"</span>&gt;
                            &lt;xsl:with-param name=<span class="str">"GroupName"</span> select=<span class="str">"$GroupName"</span>/&gt;
                        &lt;/xsl:call-template&gt;
                    &lt;/xsl:otherwise&gt;
                &lt;/xsl:choose&gt;
            &lt;/xsl:otherwise&gt;
        &lt;/xsl:choose&gt;
    &lt;/xsl:template&gt;
    &lt;xsl:template name=<span class="str">"OuterTemplate.RemovePrependedOrderDigits"</span>&gt;
        &lt;xsl:param name=<span class="str">"GroupName"</span>/&gt;
        &lt;xsl:choose&gt;
            &lt;xsl:when test=<span class="str">"contains($GroupName,'_')"</span>&gt;
                &lt;xsl:variable name=<span class="str">"OrderBits"</span>&gt;
                    &lt;xsl:<span class="kwrd">value</span>-of select=<span class="str">"substring-before($GroupName,'_')"</span>/&gt;
                &lt;/xsl:variable&gt;
                &lt;xsl:choose&gt;
                    &lt;xsl:when test=<span class="str">"translate($OrderBits,'0123456789','') = ''"</span>&gt;
                        &lt;xsl:<span class="kwrd">value</span>-of select=<span class="str">"substring-after($GroupName,'_')"</span>/&gt;
                    &lt;/xsl:when&gt;
                    &lt;xsl:otherwise&gt;
                        &lt;xsl:<span class="kwrd">value</span>-of select=<span class="str">"$GroupName"</span>/&gt;
                    &lt;/xsl:otherwise&gt;
                &lt;/xsl:choose&gt;
            &lt;/xsl:when&gt;
            &lt;xsl:otherwise&gt;
                &lt;xsl:<span class="kwrd">value</span>-of select=<span class="str">"$GroupName"</span>/&gt;
            &lt;/xsl:otherwise&gt;
        &lt;/xsl:choose&gt;
    &lt;/xsl:template&gt;
</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
]]></content:encoded>
			<wfw:commentRss>http://www.IntraNoggin.com/2012/02/1053/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

