<?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"
	>

<channel>
	<title>novolocus.com</title>
	<atom:link href="http://www.novolocus.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.novolocus.com</link>
	<description>Whatever Andy Burns is working on...</description>
	<pubDate>Tue, 18 Nov 2008 12:00:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Navigation from a &#8216;My Site&#8217; back to a Site Collection</title>
		<link>http://www.novolocus.com/2008/11/18/navigation-from-a-my-site-back-to-a-site-collection/</link>
		<comments>http://www.novolocus.com/2008/11/18/navigation-from-a-my-site-back-to-a-site-collection/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 12:00:31 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Admin]]></category>

		<category><![CDATA[My Sites]]></category>

		<category><![CDATA[Navigation]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=948</guid>
		<description><![CDATA[I don&#8217;t normally do much with My Sites to be honest - usually I&#8217;m building applications, and they&#8217;re not usually in My Sites. One of our customers asked me &#8216;How do users navigate back to the Intranet?&#8217; and I&#8217;ve got to admit, I was baffled.
Well, SharePoint&#8217;s My Sites have a site-collection setting for &#8216;Portal Site [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t normally do much with My Sites to be honest - usually I&#8217;m building applications, and they&#8217;re not usually in My Sites. One of our customers asked me &#8216;How do users navigate back to the Intranet?&#8217; and I&#8217;ve got to admit, I was baffled.</p>
<p>Well, SharePoint&#8217;s My Sites have a site-collection setting for &#8216;Portal Site Collection&#8217;. This setting modifies the Global Breadcrumb, and inserts another link there - so you can have a link back to your site-collection.</p>
<p>There a number of issues with that, though&#8230;<span id="more-948"></span></p>
<ul>
<li>Each user&#8217;s My Site is an individual site collection, so this value has to be set for each site, rather than just once. That&#8217;s not a problem, though - this can be done&#8230;</li>
<li>&#8230;by feature stapling, which will allow you to set the &#8216;Portal Site Collection for any new sites. If you have My Sites in existance, that&#8217;s not going to work.</li>
<li>And anyway, what if you&#8217;ve got more than one site-collection to link a user back to?</li>
</ul>
<p>Thus, I found myself asking my colleagues, and they&#8217;d an interesting suggestion - adding new tabs to the My Site as if for a Personalization site. Thus, I went to my Shared Service Provider:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/11/1.png"><img class="alignnone size-medium wp-image-949" title="SSP Administration" src="http://www.novolocus.com/wp-content/uploads/2008/11/1-156x300.png" alt="" width="156" height="300" /></a></p>
<p>And I configured Personalization Site Links:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/11/2.png"><img class="alignnone size-medium wp-image-950" title="Personalization Links" src="http://www.novolocus.com/wp-content/uploads/2008/11/2-300x180.png" alt="" width="300" height="180" /></a></p>
<p>I set up the link:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/11/3.png"><img class="alignnone size-medium wp-image-951" title="Create a new link" src="http://www.novolocus.com/wp-content/uploads/2008/11/3-300x162.png" alt="" width="300" height="162" /></a></p>
<p>And to my surprise, although it wasn&#8217;t a link to Personalization site, it still gave me a tab - which worked!</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/11/4.png"><img class="alignnone size-medium wp-image-952" title="New Tab link" src="http://www.novolocus.com/wp-content/uploads/2008/11/4-300x205.png" alt="" width="300" height="205" /></a></p>
<p>This is particularly useful as I could have tabs to serveral different Site collections.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/18/navigation-from-a-my-site-back-to-a-site-collection/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Merged Data Sources for the DataView web part</title>
		<link>http://www.novolocus.com/2008/11/17/merged-data-sources-for-the-dataview-web-part/</link>
		<comments>http://www.novolocus.com/2008/11/17/merged-data-sources-for-the-dataview-web-part/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 12:00:29 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Content Rollup]]></category>

		<category><![CDATA[Dataview]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=939</guid>
		<description><![CDATA[I&#8217;d a question from a reader (gee, I have readers!) about doing content rollup using the DataView web part. He was asking if he could use the DataView web part even though the things he was pulling into his Data Source didn&#8217;t all have the same columns. Would this work? Well, one way to find [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d a <a href="http://www.novolocus.com/2008/07/24/content-roll-up-options-conclusions/#comment-4627">question from a reader</a> (gee, I have readers!) about doing content rollup using the <strong>DataView </strong>web part. He was asking if he could use the <strong>DataView </strong>web part even though the things he was pulling into his Data Source didn&#8217;t all have the same columns. Would this work? Well, one way to find out&#8230; <span id="more-939"></span>For this experiment, I had two children of the <em>Document</em> Site Content Type - an <em>Item Document</em> type, which has an extra &#8216;Lookup&#8217; column referencing another list&#8230;</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/11/item-documents.png"><img class="alignnone size-medium wp-image-940" title="item-documents" src="http://www.novolocus.com/wp-content/uploads/2008/11/item-documents-300x83.png" alt="" width="300" height="83" /></a></p>
<p>&#8230; and a <em>Document </em><span style="text-decoration: underline;">List </span>content type, which had a couple of extra columns - <em>% Complete</em>, and <em>Callback Number</em>&#8230;</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/11/documents.png"><img class="alignnone size-medium wp-image-941" title="documents" src="http://www.novolocus.com/wp-content/uploads/2008/11/documents-300x69.png" alt="" width="300" height="69" /></a></p>
<p>Next, I opened my site in SharePoint Designer, and went to the Data Source Library&#8230;</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/11/data-source-library.png"><img class="alignnone size-medium wp-image-942" title="data-source-library" src="http://www.novolocus.com/wp-content/uploads/2008/11/data-source-library-169x300.png" alt="" width="169" height="300" /></a></p>
<p>I clicked to <strong>create a new Linked Data Source </strong>and was presented with this dialog:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/11/data-source-properties.png"><img class="alignnone size-medium wp-image-943" title="data-source-properties" src="http://www.novolocus.com/wp-content/uploads/2008/11/data-source-properties-300x265.png" alt="" width="300" height="265" /></a></p>
<p>I clicked to <strong>Configure Linked Data Source&#8230; </strong>and I could now add my data sources&#8230;</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/11/link-data-sources.png"><img class="alignnone size-medium wp-image-944" title="link-data-sources" src="http://www.novolocus.com/wp-content/uploads/2008/11/link-data-sources-300x238.png" alt="" width="300" height="238" /></a></p>
<p>&#8230; which I did&#8230;</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/11/link-data-sources-complete.png"><img class="alignnone size-medium wp-image-945" title="link-data-sources-complete" src="http://www.novolocus.com/wp-content/uploads/2008/11/link-data-sources-complete-300x238.png" alt="" width="300" height="238" /></a></p>
<p>And clicked next, where I was given a choice of type of linking to do&#8230;</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/11/type-of-linking.png"><img class="alignnone size-medium wp-image-946" title="type-of-linking" src="http://www.novolocus.com/wp-content/uploads/2008/11/type-of-linking-300x240.png" alt="" width="300" height="240" /></a></p>
<p>I could merge the sources into one big list, or join them into wider records. I&#8217;ve never really done the latter, but I imagine that there are lots of uses for that - linking <em>Order </em>items with <em>Customer </em>items, and so on. Think of it as just like joining database tables in a SQL query. For this, though, I just merged my sources into one list.</p>
<p>This gave me a Data Source which I then used for my <strong>DataView </strong>&#8230;</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/11/merged.png"><img class="alignnone size-medium wp-image-947" title="merged DataView" src="http://www.novolocus.com/wp-content/uploads/2008/11/merged-300x69.png" alt="" width="300" height="69" /></a></p>
<p>Presto! Items merged, despite their having different columns. Ones that an item doesn&#8217;t have are just shown as blank.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/17/merged-data-sources-for-the-dataview-web-part/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to get an SPWeb object from a URL</title>
		<link>http://www.novolocus.com/2008/11/14/how-to-get-an-spweb-object-from-a-url/</link>
		<comments>http://www.novolocus.com/2008/11/14/how-to-get-an-spweb-object-from-a-url/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 12:00:08 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Sites]]></category>

		<category><![CDATA[SPSite]]></category>

		<category><![CDATA[SPWeb]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=933</guid>
		<description><![CDATA[One of the problems with SharePoint is that it&#8217;s very difficult to figure out what site is specified by a URL. After all, the URL to a particular page contains:

the Server
possibly (but not necessarily) a managed path and site collection
possibly (but not necessarily) a site
possibly (but not necessarily) a folder (such as &#8216;/lists/&#8217;)
possibly (but not [...]]]></description>
			<content:encoded><![CDATA[<p>One of the problems with SharePoint is that it&#8217;s very difficult to figure out what site is specified by a URL. After all, the URL to a particular page contains:</p>
<ul>
<li>the Server</li>
<li>possibly (but not necessarily) a managed path and site collection</li>
<li>possibly (but not necessarily) a site</li>
<li>possibly (but not necessarily) a folder (such as &#8216;/lists/&#8217;)</li>
<li>possibly (but not necessarily) a list/library name</li>
<li>possibly (but not necessarily) a folder in a Library</li>
<li>the item itself.</li>
</ul>
<p>Suffice to say, with all those optional bits, decomposing a URL to find the site is really hard. There is, however, a slightly obscure way of find this. You can create a site collection (<strong>SPSite</strong>) with a full URL, and then simply call <strong>OpenWeb()</strong> without any parameters to return you the site (<strong>SPWeb</strong>):</p>
<p><code>string path = "http://example/examplesite/_layouts/settings.aspx";<br />
try<br />
{<br />
using (SPSite siteCollection = new SPSite(path))<br />
{<br />
using (SPWeb site = siteCollection.OpenWeb())<br />
//Do something with the site<br />
}<br />
}<br />
} </code></p>
<p>I found this when looking at the <a href="http://msdn.microsoft.com/en-us/library/ms474633.aspx">MSDN docs for SPSite.OpenWeb()</a>. Check out the examples in there.</p>
<p>It&#8217;s a little weird that the SPSite object remembers information about how it was opened like that. But it is useful to know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/14/how-to-get-an-spweb-object-from-a-url/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WinSxS folder - WTF?</title>
		<link>http://www.novolocus.com/2008/11/14/winsxs-folder-wtf/</link>
		<comments>http://www.novolocus.com/2008/11/14/winsxs-folder-wtf/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 09:47:57 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[General Tech]]></category>

		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=937</guid>
		<description><![CDATA[So, I&#8217;ve been using Vista quite happily for a fair while now. All the doomsayers complaining about how it would use so much more resources were wrong - provided your turn off the transparent borders on windows it still runs just the same (it seems to me) as XP. I guess I&#8217;ve always said to friends [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve been using Vista quite happily for a fair while now. All the doomsayers complaining about how it would use so much more resources were wrong - provided your turn off the transparent borders on windows it still runs just the same (it seems to me) as XP. I guess I&#8217;ve always said to friends that it&#8217;s alright - I wouldn&#8217;t pay to upgrade to it (it doesn&#8217;t seem to offer much), but if I was buying a new PC, I&#8217;d be okay with it. The only problem I had doing just that was with blackhole detection in the new TCP/IP stack, and that was&#8230; exotic.</p>
<p>However, I think I&#8217;ve just found my first big gripe. Performing standard system maintenance on my desktop, which is used pretty much exclusively as a VM host, I noticed that my primary drive was using 40Gb. That seemed rather high for Vista, Office &#8216;07, SharePoint Designer and Adobe Reader. Naturally, I broke out <a href="http://www.jam-software.com/freeware/index.shtml">Treesize</a>:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/11/treesize.png"><img class="alignnone size-medium wp-image-938" title="treesize" src="http://www.novolocus.com/wp-content/uploads/2008/11/treesize-300x82.png" alt="" width="300" height="82" /></a></p>
<p>So, 28% of my drive is being taken up by the <em>winsxs</em> folder. What the hell is that?  <span id="more-937"></span>Well, I Googled - and <a href="http://www.winvistaclub.com/f16.html">Vista Club has a good description</a> &#8230; </p>
<blockquote><p>In Vista, there isn&#8217;t a &#8216;dllcache&#8217; folder and nor can you find the &#8216;i386&#8242; folder, where the system caches (like in XP) all it&#8217;s source modules. It is this WinSxS folder which stores the shared components of side-by-side applications. These files can be multiple versions of the same assembly or application. Every side-by-side assembly has a unique identity. One of the attributes of the assembly identity is its version.</p></blockquote>
<p>Okay, but why so big? Well, it carries on&#8230;</p>
<blockquote><p>As mentioned, Windows stores the old dll&#8217;s and library components in the WinSxS folder. Now if a newer version of this file is a part of the OS, but a particular application requires a particular older version for running, then the older version from the winsxs folder will be used, leaving the newer version in its present place, for other applications which may require it.<br />
 <br />
So obviously you cannot delete this directory or move it elsewhere. Nor is it advisable to delete anything here, as such a step could probably make your applications un-workable or even break your system! If you have many applications installed, you can expect to have a jumbo sized winsxs folder.<br />
 <br />
If you delete components from the WinSxS folder like the manifets or the assemblies, etc, you could be in trouble.</p>
<p>&#8230;.</p>
<p><em>Compressing the folder is also a no-no, as it could cause problems during WindowsUpdates or while installing a Hotfix. </em></p></blockquote>
<p>Holy crap! It&#8217;s a 13Gb directory that I can&#8217;t tidy up, delete, move or compress! Who designed that, and were their brains on holiday? I get why they did it - to maintain backward compatibility - but sometimes, maybe it&#8217;s just best not to. I mean, VB.NET isn&#8217;t backwardly compatible with VB6. Office 2003 and 2007 files are only somewhat compatible. Win 95 wasn&#8217;t backwardly compatible with 3.1. The .NET framework 2 wasn&#8217;t backwardly compatible with 1.1. And in all those cases, it&#8217;s worked out for the better. Please Microsoft, break with backwardly compatibility and get rid of this folder.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/14/winsxs-folder-wtf/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Another day, another master page</title>
		<link>http://www.novolocus.com/2008/11/13/another-day-another-master-page/</link>
		<comments>http://www.novolocus.com/2008/11/13/another-day-another-master-page/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 12:00:53 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Branding]]></category>

		<category><![CDATA[Master Pages]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=931</guid>
		<description><![CDATA[Well, I&#8217;ve just built a lovely little HTTP Module that lets us redirect the application pages for a site or site collection to a new master page. I&#8217;m quite pleased, to be honest. Anyway, I noticed that the error pages in the site I was testing on were not using my new master page, so [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I&#8217;ve just built a lovely little HTTP Module that lets us redirect the application pages for a site or site collection to a new master page. I&#8217;m quite pleased, to be honest. Anyway, I noticed that the error pages in the site I was testing on were not using my new master page, so I started to examine this. I found that the error page (<em>_layouts/error.aspx</em>) is busy using <em>simple.master</em>. WTF?</p>
<p>It makes sense, I guess. You do need a master page which doesn&#8217;t run in an authenticated context, and a brief check shows that this is the master pages for the out-of-box Forms authentication page.</p>
<p>I decided to check out if there were other master pages in Layouts - and there were. My list of master pages is now:</p>
<ol>
<li><strong><em>Default.master</em></strong> - used in normal sites. Often replaced for publishing sites.</li>
<li><strong><em>MwsDefault.master</em></strong> - use in Meeting Workspaces. Awkward to replace, but can be done through code or SharePoint designer.</li>
<li><strong>Application.master</strong> - used in &#8216;administration&#8217; pages, and sometimes pages such as &#8216;View all site contents&#8217;, Recycle bin, and uploading a file.</li>
<li><strong>Simple.master</strong> - used in pages that need to run in an unauthenticated context - such as error pages, or forms authentication pages.</li>
<li><strong>sspadmin.master</strong> - seems to be used editing audiences, in excel services configuration, in profile administration, and handful of other places.</li>
<li><strong>layouts.master</strong> - no idea what this is for. Can&#8217;t find where it is used!</li>
<li><strong>dialog.master</strong> - used in the little pop-up dialogs, such as when you&#8217;re adding or editing a Hyperlink.</li>
<li><strong>pickerdialog.master</strong> - used in pop-up dialogs such as the web part gallery, or selecting users.</li>
</ol>
<p>The master pages in italics are comparatively easy to replace; the rest are much more difficult. And try as I might, I couldn&#8217;t change the master page for Errors in my HTTP Module. I guess what I&#8217;ll do is write another one to redirect errors to my own custom-branded error page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/13/another-day-another-master-page/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Error: CQWP - RSS feed of non-documents doesn&#8217;t work</title>
		<link>http://www.novolocus.com/2008/11/12/error-cqwp-rss-feed-of-non-documents-doesnt-work/</link>
		<comments>http://www.novolocus.com/2008/11/12/error-cqwp-rss-feed-of-non-documents-doesnt-work/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 12:00:21 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[SharePoint]]></category>

		<category><![CDATA[Content Rollup]]></category>

		<category><![CDATA[CQWP]]></category>

		<category><![CDATA[Error]]></category>

		<category><![CDATA[RSS]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=929</guid>
		<description><![CDATA[This is a pretty weird error. I was doing content roll-up of Announcements lists, to give a unified news channel for our intranet. Naturally, I decided to do this using the Content Query Web Part. I added one, and selected that I wanted to query for the contents of Announcements lists. As I like RSS [...]]]></description>
			<content:encoded><![CDATA[<p>This is a pretty weird error. I was doing content roll-up of Announcements lists, to give a unified news channel for our intranet. Naturally, I decided to do this using the Content Query Web Part. I added one, and selected that I wanted to query for the contents of Announcements lists. As I like RSS feeds, I enabled one, and I added it to my favorite feed-reader.</p>
<p>It worked - but the links to the announcements themselves didn&#8217;t work. The short summary is that is that it appears RSS feeds from Content Query Web Parts don&#8217;t work when you query for certain types of list.<span id="more-929"></span></p>
<p>What I realised was that there was no server in the URL, so my feed reader&#8217;s link to the item was going to a URL starting:</p>
<p><code>http://_layouts/CopyUtil.aspx?Use=id&amp;amp;Action=dispform ...</code></p>
<p>I&#8217;m now tempted to register the _layouts domain ;p</p>
<p>Anyway, checking in the RSS source showed links to incomplete URLs:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/feedxml.png"><img class="alignnone size-medium wp-image-930" title="feedxml" src="http://www.novolocus.com/wp-content/uploads/2008/10/feedxml-300x102.png" alt="" width="300" height="102" /></a></p>
<p>Hmm. So how to fix it? I did some Googling and found references to <a href="http://blogs.msdn.com/ecm/archive/2006/10/25/configuring-and-customizing-the-content-query-web-part.aspx#1914199">similar URLs</a>, and the solution seemed to be to <a href="http://msmvps.com/blogs/obts/archive/2007/03/27/716595.aspx">modify the ContentQueryMain.xslt </a>file (found in the<em> Style Library</em> &gt;<em> XSL Style Sheets</em>). I couldn&#8217;t see why this should make a difference - it&#8217;s not to do with the RSS feed - but I thought I&#8217;d try just incase I&#8217;d misunderstood.</p>
<p>I hadn&#8217;t. It didn&#8217;t work.</p>
<p>I then wondered if the RSS feed worked for a new Content Query Web Part that had just been added to a page. I added one, and enabled the RSS feed. It did work - the URLs in the links contained the server.</p>
<p>Curious.</p>
<p>I exported both web parts as XML and differenced them. One thing I noticed was that the <strong>UseCopyUtil</strong> setting was <em>false</em> in the working web part, and <em>true</em> in the one that wasn&#8217;t. I changed this to true, imported the web part, and now the URLs had a server at the start. They weren&#8217;t valid URLs still, so I swapped back.</p>
<p>Next, I wondered what would happen if I took the web part with the working RSS feed, and slowly changed it over to the query I wanted to run. Presumably, at some point it would break.</p>
<p>It did. When I selected that I wanted to query for Items in an <em>Announcement</em> list rather than a <em>Pages </em>library. I changed my query back to <em>Pages</em> - and the RSS feed worked. I tried changing to query for <em>Document</em> libraries - and the RSS feed worked. Then I tried changing the query to get items from <em>Discussions</em> lists - and the RSS feed failed again.</p>
<p>I then took a look at the page being used for the RSS feed (<em>feed.aspx</em>). All it was really doing was inheriting from the <strong>Microsoft.SharePoint.Publishing.Internal.CodeBehind.FeedPage</strong> page class. I broke out Reflector, and tried following what was going on inside, but to be honest, it was too complicated, and I couldn&#8217;t be bothered.</p>
<p>Either way, it looks like the Content Query Web Part&#8217;s RSS feed doesn&#8217;t work if you&#8217;re querying for <em>Announcement</em> lists.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/12/error-cqwp-rss-feed-of-non-documents-doesnt-work/feed/</wfw:commentRss>
		</item>
		<item>
		<title>People Picker shows Disabled user accounts</title>
		<link>http://www.novolocus.com/2008/11/12/people-picker-shows-disabled-user-accounts/</link>
		<comments>http://www.novolocus.com/2008/11/12/people-picker-shows-disabled-user-accounts/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 09:31:49 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[LDAP]]></category>

		<category><![CDATA[People Picker]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=936</guid>
		<description><![CDATA[Something I didn&#8217;t know about - the people picker shows disabled user accounts - and &#8216;Tales from the field&#8217; has a solution (on a per web app basis). Just in case the blog ever goes down:
This default behavior can be changed on a per web application basis to return only enabled user accounts. In the [...]]]></description>
			<content:encoded><![CDATA[<p>Something I didn&#8217;t know about - the people picker shows disabled user accounts - and &#8216;Tales from the field&#8217; has <a href="http://sharepoint.microsoft.com/blogs/fromthefield/Lists/Posts/Post.aspx?List=0ce77946%2D1e45%2D4b43%2D8c74%2D21963e64d4e1&amp;ID=66">a solution (on a per web app basis)</a>. Just in case the blog ever goes down:</p>
<blockquote><p>This default behavior can be changed on a per web application basis to return only enabled user accounts. In the example below I have configured this for the web application http://moss using stsadm. This command configures MOSS 2007 to use a custom LDAP query.<br />
<strong><br />
stsadm -o setproperty -pn peoplepicker-searchadcustomfilter -url http://moss -pv (!userAccountControl=514)</strong></p>
<p>If you are interested in putting together more granular filters I strongly recommend the following guide on LDAP, LDAP Query Basics - <a href="http://technet.microsoft.com/en-us/library/aa996205(EXCHG.65).aspx">http://technet.microsoft.com/en-us/library/aa996205(EXCHG.65).aspx</a></p></blockquote>
<p>Nice one Brendan</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/12/people-picker-shows-disabled-user-accounts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CQWP: XSL to show you the fields on an item</title>
		<link>http://www.novolocus.com/2008/11/11/cqwp-xsl-to-show-you-the-fields-on-an-item/</link>
		<comments>http://www.novolocus.com/2008/11/11/cqwp-xsl-to-show-you-the-fields-on-an-item/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 11:24:50 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Content Rollup]]></category>

		<category><![CDATA[CQWP]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=928</guid>
		<description><![CDATA[A modification on the XSL I&#8217;d used previously - this gives a more readable presentation, and displays the values:

&#60;xsl:template name="ShowFields" match="Row[@Style='ShowFields']&#8221; mode=&#8221;itemstyle&#8221;&#62;
&#60;div style=&#8221;border:1px #aaa solid;background-color:#eee;margin:5px;padding:5px&#8221;&#62;
&#60;xsl:for-each select=&#8221;@*&#8221;&#62;
&#60;xsl:value-of select=&#8221;name()&#8221; /&#62; = &#60;xsl:value-of select=&#8221;.&#8221; /&#62;&#60;br /&#62;
&#60;/xsl:for-each&#62;
&#60;/div&#62;
&#60;/xsl:template&#62; 
 
]]></description>
			<content:encoded><![CDATA[<p>A modification on the XSL <a href="http://www.novolocus.com/2008/07/15/column-names-when-setting-up-the-content-query-web-part/">I&#8217;d used previously</a> - this gives a more readable presentation, and displays the values:<br />
<code><br />
&lt;xsl:template name="ShowFields" match="Row[@Style='ShowFields']&#8221; mode=&#8221;itemstyle&#8221;&gt;<br />
&lt;div style=&#8221;border:1px #aaa solid;background-color:#eee;margin:5px;padding:5px&#8221;&gt;<br />
&lt;xsl:for-each select=&#8221;@*&#8221;&gt;<br />
&lt;xsl:value-of select=&#8221;name()&#8221; /&gt; = &lt;xsl:value-of select=&#8221;.&#8221; /&gt;&lt;br /&gt;<br />
&lt;/xsl:for-each&gt;<br />
&lt;/div&gt;<br />
&lt;/xsl:template&gt; </code><br />
 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/11/cqwp-xsl-to-show-you-the-fields-on-an-item/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Where to put CSS when branding?</title>
		<link>http://www.novolocus.com/2008/11/10/where-to-put-css-when-branding/</link>
		<comments>http://www.novolocus.com/2008/11/10/where-to-put-css-when-branding/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 12:00:07 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Branding]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[Features]]></category>

		<category><![CDATA[Master Pages]]></category>

		<category><![CDATA[STSADM]]></category>

		<category><![CDATA[Themes]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=661</guid>
		<description><![CDATA[I&#8217;ve recently come to the conclusion that I&#8217;m unlikely to use Themes in SharePoint again in a hurry. Why?

Themes allow you to provide a bunch of CSS styles. So does the AlternateCssURL.
Themes have to be applied site-by-site (unless you do some programming, or extend STSADM). Alternate CSS or Master Pages can be changed for a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently come to the conclusion that I&#8217;m unlikely to use Themes in SharePoint again in a hurry. Why?</p>
<ul>
<li>Themes allow you to provide a bunch of CSS styles. So does the <strong>AlternateCssURL</strong>.</li>
<li>Themes have to be applied site-by-site (unless you <a href="http://www.novolocus.com/2008/10/17/programmatically-apply-a-default-theme-in-sharepoint/">do some programming</a>, or extend STSADM). Alternate CSS or Master Pages can be changed for a site and subsites, for a Publishing site anyway (although with <a href="http://www.novolocus.com/2008/10/22/setting-a-site-master-on-a-publishing-site-breaks-meeting-workspaces/">some limitations</a>).</li>
<li>Alternate CSS can be provisioned from a single URL - so benefiting from browser caching <a href="http://www.novolocus.com/2008/10/29/where-should-i-store-the-images-for-my-theme/">just like images</a>.</li>
<li>The Alternate CSS can <a href="http://www.novolocus.com/2008/10/20/style-the-datepicker-using-an-alternate-css/">style the DatePicker</a>. Themes can&#8217;t.</li>
<li>The Alternate CSS can style <a href="http://www.novolocus.com/2008/08/18/pages-in-sharepoint-v-application-pages/">Application Pages</a>, just like Themes (but unlike Master Pages).</li>
<li>No problems with <a href="http://www.novolocus.com/2008/11/03/what-happens-when-a-theme-is-applied/">&#8216;Style Merging&#8217; when  the Theme is provisioned</a>.</li>
<li>Style can be updated in one location.</li>
<li>Themes can be changed through the UI for any site. Only Publishing sites have a user interface for changing the Alternate CSS.</li>
</ul>
<p>Yes, many of the same distinctions between <a href="http://www.novolocus.com/2007/10/10/sharepoint-branding-or-pimp-my-sharepoint/">Master Pages and Themes</a> still exist, and the same sort of <a href="http://heathersolomon.com/blog/archive/2007/05/13/Master-Pages-vs.-Themes-Which-Do-You-Choose.aspx">analysis and choice of approach</a> should be done. However, it means that we can kind of ignore Master Pages, and just focus on Alternate CSS vs Themes - and it seems to me that apart from the last point above, the Alternate CSS approach seems to equal or better than Themes.</p>
<p>Regarding the last point, well, to apply my theme I&#8217;d set the Alternate CSS in a Feature Receiver. This is okay, though, as I&#8217;d probably be writing one anyway to <a href="http://www.novolocus.com/2008/10/30/feature-receiver-to-apply-master-pages/">apply the correct master page to different types of site</a>.</p>
<p>So, the answer I&#8217;ve come to now - I&#8217;d use the _<em>layouts </em>directory - create a sub-directory for your brand, and put your CSS and images in there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/10/where-to-put-css-when-branding/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What is MSOLayouts_MakeInvisibleIfEmpty()</title>
		<link>http://www.novolocus.com/2008/11/07/what-is-msolayouts_makeinvisibleifempty/</link>
		<comments>http://www.novolocus.com/2008/11/07/what-is-msolayouts_makeinvisibleifempty/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 09:21:31 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Branding]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Page Layouts]]></category>

		<category><![CDATA[Web Part Zones]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=484</guid>
		<description><![CDATA[I was looking through the code of SharePoint&#8217;s Blank Web Part page layout, and I kept finding elements called _invisibleIfEmpty. Now, I&#8217;d noticed that some page layouts, such as the Splash page layout  had borders on their web part zones which were only shown if the zone contained a web part. I was interested [...]]]></description>
			<content:encoded><![CDATA[<p>I was looking through the code of SharePoint&#8217;s <em>Blank Web Part</em> page layout, and I kept finding elements called _<em>invisibleIfEmpty</em>. Now, I&#8217;d noticed that some page layouts, such as the <em>Splash </em>page layout  had borders on their web part zones which were only shown if the zone contained a web part. I was interested in how this might work. People keep asking for web parts with borders, preferrably ones with rounded corners.<span id="more-484"></span></p>
<p>The code on the page looked like:</p>
<p><code>&lt;td id="_invisibleIfEmpty" name="_invisibleIfEmpty" valign="top" height="100%"&gt;</code><code> &lt;WebPartPages:WebPartZone runat="server" Title="Left" ID="CenterLeftColumn"&gt;&lt;ZoneTemplate&gt;&lt;/ZoneTemplate&gt;&lt;/WebPartPages:WebPartZone&gt; &lt;/td&gt;</code></p>
<p>&#8230;and there were a lot of table cells looking like that, and with that id. Lower in the page I then noticed:<br />
<code><br />
&lt;script language="javascript"&gt;if(typeof(MSOLayout_MakeInvisibleIfEmpty) == "function") {MSOLayout_MakeInvisibleIfEmpty();}&lt;/script&gt;</code></p>
<p>Hmm. So if this function exists, it&#8217;s run. For it&#8217;s name, it sounds related. After some digging, I found it in defined in:</p>
<ul>
<li>IE50UP.js</li>
<li>IE55UP.js</li>
<li>NON_IE.js</li>
</ul>
<p>Interesting&#8230; IE5 is, well, pretty ancient now, so I&#8217;m guessing that this stuff is a bit, well, WSS2 legacy. What does the code do? Well, looking in one of those files:</p>
<p>f<code>unction MSOLayout_MakeInvisibleIfEmpty()<br />
{<br />
var allElements=document.getElementsByName("_invisibleIfEmpty");<br />
var agt=navigator.userAgent.toLowerCase();<br />
var isNav=((agt.indexOf('mozilla')!=-1)&amp;&amp;((agt.indexOf('spoofer')==-1) &amp;&amp; (agt.indexOf('compatible')==-1)));<br />
var isIE=(agt.indexOf("msie")!=-1);<br />
for (var curElement=0; curElement &lt; allElements.length; curElement++)<br />
{<br />
if ((isIE &amp;&amp; allElements[curElement].childNodes.length==0)<br />
|| (isNav &amp;&amp; allElements[curElement].childNodes.length &lt;=1))<br />
{<br />
allElements[curElement].style.display=&#8221;none&#8221;;<br />
}<br />
}<br />
}</code></p>
<p>Yup, so it makes table cells called <em>_invisibleIfEmpty</em> not display if they have no child nodes. That&#8217;s a little strange though - table cells do collapse anyway if there are no contents, and doing this in Javascript just seems a bit old school.</p>
<p>I went and looked inside the Splash page layout and found that that is exactly how it works - the table cell&#8217;s borders don&#8217;t appear if the cell is empty:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/splash.png"><img class="alignnone size-medium wp-image-920" title="splash" src="http://www.novolocus.com/wp-content/uploads/2008/10/splash-300x243.png" alt="" width="300" height="243" /></a></p>
<p>However, the table cells do still appear to take up space - &#8216;cos each table cell has a width set:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/splash-code.png"><img class="alignnone size-medium wp-image-921" title="splash-code" src="http://www.novolocus.com/wp-content/uploads/2008/10/splash-code-300x72.png" alt="" width="300" height="72" /></a></p>
<p>If we took that <em>width=&#8221;50%&#8221;</em> away, though, the cells would just collapse as normal for empty table cells in HTML.</p>
<p>Still, the who thing did make me wonder - could I do my &#8217;round cornered borders on web part zones&#8217; with Javascript?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/07/what-is-msolayouts_makeinvisibleifempty/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My Sites links HoverCellActive doesn&#8217;t show the top border</title>
		<link>http://www.novolocus.com/2008/11/06/my-sites-links-hovercellactive-doesnt-show-the-top-border/</link>
		<comments>http://www.novolocus.com/2008/11/06/my-sites-links-hovercellactive-doesnt-show-the-top-border/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 15:52:19 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Branding]]></category>

		<category><![CDATA[Navigation]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=891</guid>
		<description><![CDATA[This has caught me out three times now - I build style, but the top border for the global links &#8216;My Links&#8217; link didn&#8217;t show:

I checked my style, and there it was. So I tried adding a margin, or padding in the cell that contained it.
Wrong. It needs it&#8217;s height to be set to 100%.
.ms-globalbreadcrumb [...]]]></description>
			<content:encoded><![CDATA[<p>This has caught me out three times now - I build style, but the top border for the global links &#8216;My Links&#8217; link didn&#8217;t show:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/hover-1.png"><img class="alignnone size-medium wp-image-918" title="hover with no top border" src="http://www.novolocus.com/wp-content/uploads/2008/10/hover-1.png" alt="" width="128" height="37" /></a></p>
<p>I checked my style, and there it was. So I tried adding a margin, or padding in the cell that contained it.</p>
<p>Wrong. It needs it&#8217;s height to be set to 100%.</p>
<p><code>.ms-globalbreadcrumb .ms-HoverCellActive,<br />
.ms-globalbreadcrumb .ms-HoverCellInctive,<br />
.ms-globalbreadcrumb .ms-HoverCellActiveDark{<br />
height:100%;<br />
padding-top:1px;<br />
}<br />
</code><br />
<a href="http://www.novolocus.com/wp-content/uploads/2008/10/hover-2.png"><img class="alignnone size-medium wp-image-919" title="hover working" src="http://www.novolocus.com/wp-content/uploads/2008/10/hover-2.png" alt="" width="128" height="41" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/06/my-sites-links-hovercellactive-doesnt-show-the-top-border/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Calendar and Gantt views have nothing to do with Calendar or Project Lists</title>
		<link>http://www.novolocus.com/2008/11/05/calendar-and-gannt-views-have-nothing-to-do-with-calendar-or-project-lists/</link>
		<comments>http://www.novolocus.com/2008/11/05/calendar-and-gannt-views-have-nothing-to-do-with-calendar-or-project-lists/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 09:00:23 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Admin]]></category>

		<category><![CDATA[Calendar]]></category>

		<category><![CDATA[Gantt]]></category>

		<category><![CDATA[Views]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=890</guid>
		<description><![CDATA[I know this sounds obvious, but I had a moment of understanding the other day - Calendar views and Gantt views have nothing to do with Calendar lists and Project lists!
 
They&#8217;re just views that happen to use date columns&#8230;

So you can configure the relationship between your list columns and the views&#8230;

That&#8217;s an interesting concept. [...]]]></description>
			<content:encoded><![CDATA[<p>I know this sounds obvious, but I had a moment of understanding the other day - Calendar views and Gantt views have nothing to do with Calendar lists and Project lists!</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/calendar.png"><img class="alignnone size-medium wp-image-909" title="calendar" src="http://www.novolocus.com/wp-content/uploads/2008/10/calendar-300x231.png" alt="" width="300" height="231" /></a> <a href="http://www.novolocus.com/wp-content/uploads/2008/10/project-tasks.png"><img class="alignnone size-medium wp-image-910" title="project-tasks" src="http://www.novolocus.com/wp-content/uploads/2008/10/project-tasks-300x230.png" alt="" width="300" height="230" /></a></p>
<p>They&#8217;re just views that happen to use date columns&#8230;</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/view-creation.png"><img class="alignnone size-medium wp-image-911" title="view-creation" src="http://www.novolocus.com/wp-content/uploads/2008/10/view-creation-300x163.png" alt="" width="300" height="163" /></a></p>
<p>So you can configure the relationship between your list columns and the views&#8230;</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/view-creation-calendar-options.png"><img class="alignnone size-medium wp-image-912" title="view-creation-calendar-options" src="http://www.novolocus.com/wp-content/uploads/2008/10/view-creation-calendar-options-300x212.png" alt="" width="300" height="212" /></a><a href="http://www.novolocus.com/wp-content/uploads/2008/10/view-creation-gantt-options.png"><img class="alignnone size-medium wp-image-913" title="view-creation-gantt-options" src="http://www.novolocus.com/wp-content/uploads/2008/10/view-creation-gantt-options-300x97.png" alt="" width="300" height="97" /></a></p>
<p>That&#8217;s an interesting concept. We can use this with any list! For example, the start and end dates for help desk calls, or for displaying when things happened. Neat! I can&#8217;t think why I didn&#8217;t realise this before!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/05/calendar-and-gannt-views-have-nothing-to-do-with-calendar-or-project-lists/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Get Recent Comments</title>
		<link>http://www.novolocus.com/2008/11/05/get-recent-comments/</link>
		<comments>http://www.novolocus.com/2008/11/05/get-recent-comments/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 09:00:18 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[General Tech]]></category>

		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=935</guid>
		<description><![CDATA[The &#8220;Get Recent Comments&#8221; widget on my Wordpress blog gets screwed up sometimes - to fix it:
Go to Settings &#62; Recent Comments and hit Update Recent Comment Options. &#8216;Nuff said.
]]></description>
			<content:encoded><![CDATA[<p>The &#8220;Get Recent Comments&#8221; widget on my Wordpress blog gets screwed up sometimes - to fix it:</p>
<p>Go to <em>Settings &gt; Recent Comments</em> and hit <strong>Update Recent Comment Options</strong>. &#8216;Nuff said.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/05/get-recent-comments/feed/</wfw:commentRss>
		</item>
		<item>
		<title>When to Dispose of SPWeb and SPSite objects</title>
		<link>http://www.novolocus.com/2008/11/04/when-to-dispose-of-spweb-and-spsite-objects/</link>
		<comments>http://www.novolocus.com/2008/11/04/when-to-dispose-of-spweb-and-spsite-objects/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 13:56:05 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[SharePoint Development]]></category>

		<category><![CDATA[SPSite]]></category>

		<category><![CDATA[SPWeb]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=934</guid>
		<description><![CDATA[Knowing when to dispose of SPWeb or SPSite objects is confusing as hell. Well, Roger Lamb has an excellent page showing patterns that can leak memory, and how to avoid them. This should be mandatory reading for SharePoint devs. (Previously mentioned here - but this is a better link)
]]></description>
			<content:encoded><![CDATA[<p>Knowing when to dispose of <strong>SPWeb </strong>or <strong>SPSite </strong>objects is confusing as hell. Well, Roger Lamb has an excellent page showing <a href="http://blogs.msdn.com/rogerla/archive/2008/02/12/sharepoint-2007-and-wss-3-0-dispose-patterns-by-example.aspx">patterns that can leak memory, and how to avoid them</a>. This should be mandatory reading for SharePoint devs. (Previously <a href="http://www.novolocus.com/2006/10/27/disposing-of-sharepoint-objects/">mentioned here</a> - but this is a better link)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/04/when-to-dispose-of-spweb-and-spsite-objects/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Stuff I forgot to style</title>
		<link>http://www.novolocus.com/2008/11/04/stuff-i-forgot-to-style/</link>
		<comments>http://www.novolocus.com/2008/11/04/stuff-i-forgot-to-style/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 12:00:31 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Branding]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[Error]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=887</guid>
		<description><![CDATA[SharePoint has a lot of page elements, and it&#8217;s hard to brand it all without missing things. Lists of Page elements like Heather Solomon&#8217;s CSS Reference Chart and her &#8220;Oh crap, I missed that&#8221; list help, but I still found a few that weren&#8217;t mentioned. So, I guess this is my &#8220;Thank God my testing [...]]]></description>
			<content:encoded><![CDATA[<p>SharePoint has a lot of page elements, and it&#8217;s hard to brand it all without missing things. Lists of Page elements like Heather Solomon&#8217;s <a href="http://www.heathersolomon.com/blog/articles/SharepointDesignGotchas.aspx">CSS Reference Chart </a>and her <a href="http://www.heathersolomon.com/blog/articles/SharepointDesignGotchas.aspx">&#8220;Oh crap, I missed that&#8221; list </a>help, but I still found a few that weren&#8217;t mentioned. So, I guess this is my &#8220;Thank God my testing found I&#8217;d missed that&#8221; list:</p>
<table class="displayTable" border="0">
<tbody>
<tr>
<td><a href="http://www.novolocus.com/wp-content/uploads/2008/10/advanced-search.png"><img class="alignnone size-thumbnail wp-image-888" title="advanced-search-dialog" src="http://www.novolocus.com/wp-content/uploads/2008/10/advanced-search-137x150.png" alt="" width="137" height="150" /></a></td>
<td><strong>Advanced Search Page</strong> - nice grey.</td>
</tr>
<tr>
<td><a href="http://www.novolocus.com/wp-content/uploads/2008/10/create-page.png"><img class="alignnone size-thumbnail wp-image-893" title="create-page-hover" src="http://www.novolocus.com/wp-content/uploads/2008/10/create-page-150x64.png" alt="" width="150" height="64" /></a></td>
<td><strong>Creation Information Panel</strong> - when you hover over an item on the &#8216;Create&#8217; page, you&#8217;ll see this.</td>
</tr>
<tr>
<td><a href="http://www.novolocus.com/wp-content/uploads/2008/10/people-search-options.png"><img class="alignnone size-thumbnail wp-image-894" title="people-search-options" src="http://www.novolocus.com/wp-content/uploads/2008/10/people-search-options-150x79.png" alt="" width="150" height="79" /></a></td>
<td><strong>People Search Options</strong> - shown dynamically when you click the link.</td>
</tr>
<tr>
<td><a href="http://www.novolocus.com/wp-content/uploads/2008/10/project-tasks-list-with-gannt-view.png"><img class="alignnone size-thumbnail wp-image-895" title="project-tasks-list-with-gannt-view" src="http://www.novolocus.com/wp-content/uploads/2008/10/project-tasks-list-with-gannt-view-150x122.png" alt="" width="150" height="122" /></a></td>
<td><strong>Gantt views </strong>- as used in projects</td>
</tr>
<tr>
<td><a href="http://www.novolocus.com/wp-content/uploads/2008/10/repeating-meeting.png"><img class="alignnone size-thumbnail wp-image-896" title="repeating-meeting" src="http://www.novolocus.com/wp-content/uploads/2008/10/repeating-meeting-96x150.png" alt="" width="96" height="150" /></a></td>
<td><strong>Repeating Meeting Left Nav</strong></td>
</tr>
<tr>
<td><a href="http://www.novolocus.com/wp-content/uploads/2008/10/wss-seach.png"><img class="alignnone size-thumbnail wp-image-897" title="wss-search" src="http://www.novolocus.com/wp-content/uploads/2008/10/wss-seach-150x64.png" alt="" width="150" height="64" /></a></td>
<td><strong>WSS Search results page</strong> - just &#8216;cos you&#8217;re using it doesn&#8217;t mean it isn&#8217;t there - or that it won&#8217;t be seen&#8230;</td>
</tr>
<tr>
<td><a href="http://www.novolocus.com/wp-content/uploads/2008/10/popup-calendar.png"><img class="alignnone size-thumbnail wp-image-898" title="popup-calendar" src="http://www.novolocus.com/wp-content/uploads/2008/10/popup-calendar-150x122.png" alt="" width="150" height="122" /></a></td>
<td><strong>The Date Picker</strong> - and <a href="http://www.novolocus.com/2008/10/20/style-the-datepicker-using-an-alternate-css/">all the problems inherent in that&#8230;</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/04/stuff-i-forgot-to-style/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What happens when a Theme is applied?</title>
		<link>http://www.novolocus.com/2008/11/03/what-happens-when-a-theme-is-applied/</link>
		<comments>http://www.novolocus.com/2008/11/03/what-happens-when-a-theme-is-applied/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 13:40:58 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Branding]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[Themes]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=923</guid>
		<description><![CDATA[You can apply themes to sites in SharePoint - but what actually happens when you do? Firstly, as a quick reminder, on the Site Administration pages, you can go to see the installed themes:

And select one:

Your site will then have a different theme. Great! But how does this work? Well, lets open our site in [...]]]></description>
			<content:encoded><![CDATA[<p>You can apply themes to sites in SharePoint - but what actually happens when you do? <span id="more-923"></span>Firstly, as a quick reminder, on the Site Administration pages, you can go to see the installed themes:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/set-theme-link.png"><img class="alignnone size-medium wp-image-924" title="set-theme-link" src="http://www.novolocus.com/wp-content/uploads/2008/10/set-theme-link-300x212.png" alt="" width="300" height="212" /></a></p>
<p>And select one:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/set-theme-page.png"><img class="alignnone size-medium wp-image-925" title="set-theme-page" src="http://www.novolocus.com/wp-content/uploads/2008/10/set-theme-page-300x207.png" alt="" width="300" height="207" /></a></p>
<p>Your site will then have a different theme. Great! But how does this work? Well, lets open our site in SharePoint Designer:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/themes-folder-in-sharepoint-designer.png"><img class="alignnone size-medium wp-image-926" title="themes-folder-in-sharepoint-designer" src="http://www.novolocus.com/wp-content/uploads/2008/10/themes-folder-in-sharepoint-designer-149x300.png" alt="" width="149" height="300" /></a></p>
<p>That&#8217;s right, a folder <em>_themes</em>, containing the theme we just applied in a folder. That theme is the CSS and all the images. Because of SharePoint&#8217;s virtual file system, that isn&#8217;t as inefficient as it sounds, but &#8216;cos our theme is being provided from our site, each CSS file and each image will be at a different URL for every site. This might be fine if you wanted to be able to  customize the theme on a per-site basis (and you can!) - but it <a href="http://www.novolocus.com/2008/10/29/where-should-i-store-the-images-for-my-theme/">eliminates some of the advantage browser caching</a>, and I don&#8217;t think most organisations will want their theme customised on any sites - branding should be consistent.</p>
<p>The observant of you will notice multiple CSS files in the Theme folder (&#8217;Plastic&#8217; above). How does that work?</p>
<p>Well, if you look in <em>12/TEMPLATES/THEMES</em>, the themes themeselves don&#8217;t have the CSS file that you&#8217;ll find referenced in your Site&#8217;s pages. Instead, when you apply the theme, SharePoint takes all of the CSS files and appends them together into one file which it uses (<em>Plas1011-650001.css</em>, in yellow above).</p>
<p>I only actually found this as most instructions on creating a new theme start by telling you to copy an existing one. This is fine, but I forgot that there were more CSS files than just my <em>Theme.css</em>. Specifically, the <em>mossExtension.css</em> file was being added after the end of my themes, and it was overriding some of the styles I&#8217;d defined. As the order of the themes being defined is very important, I do think this &#8216;adding together&#8217; of CSS files is somewhat dangerous.</p>
<p>Anyway, once a single CSS file has been created, the master page will insert a URL to that file into the page &lt;head&gt; section, and that&#8217;s how your styles apply.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/03/what-happens-when-a-theme-is-applied/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Setting up your content types and templates&#8230;</title>
		<link>http://www.novolocus.com/2008/11/03/setting-up-your-content-types-and-templates/</link>
		<comments>http://www.novolocus.com/2008/11/03/setting-up-your-content-types-and-templates/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 13:31:30 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Branding]]></category>

		<category><![CDATA[Office]]></category>

		<category><![CDATA[Content Type]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=932</guid>
		<description><![CDATA[I received a good link in one of the comments on the blog, and I thought I&#8217;d bump this up - Sensible Document and Template Management.
I&#8217;m with Mads on this - to me the killer feature of SharePoint is how it works with Offices, and template functionality is key in that. Demos of document properties, [...]]]></description>
			<content:encoded><![CDATA[<p>I received a good link in one of the comments on the blog, and I thought I&#8217;d bump this up - <a href="http://weblogs.asp.net/mnissen/archive/2008/10/18/sensible-document-template-file-management-with-sharepoint.aspx">Sensible Document and Template Management</a>.</p>
<p>I&#8217;m with Mads on this - to me the killer feature of SharePoint is how it works with Offices, and template functionality is key in that. Demos of document properties, quick parts and then the list columns in Sharepoint have a very high wow-factor (rightly so - I think it&#8217;s pretty neat too!)</p>
<p>However, templates are something rarely used in my experience, or not use properly anyway. Often it&#8217;s seen as an unnecessary effort, and usually everyone just starts creating their own documents from blank, or deleteing the contents from an existing document and using that one, or copying and pasting across - none of which are pretty scenarios.</p>
<p>Then again, often the guys actually making these templates need a good course of &#8216;How to use Word&#8217;. No so much with Excel - I think that people accept you need a bit of training to use it - but Word seems to be an issue.</p>
<p>Anyway, the point is, do try and plan building templates into your project. And that there is probably a consultancy opportunity in trying to generate these&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/11/03/setting-up-your-content-types-and-templates/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Feature Receiver to apply master pages to normal or meeting sites</title>
		<link>http://www.novolocus.com/2008/10/30/feature-receiver-to-apply-master-pages/</link>
		<comments>http://www.novolocus.com/2008/10/30/feature-receiver-to-apply-master-pages/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 15:00:02 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Branding]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[Features]]></category>

		<category><![CDATA[Master Pages]]></category>

		<category><![CDATA[Meeting Workspaces]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=922</guid>
		<description><![CDATA[As noted previously, Meeting Workspaces use a different master page to the &#8216;normal&#8217; master pages in SharePoint. This is a little annoying - if I need to apply a new master page, how would I do this?
Well, you can activate a new master page in a Feature Receiver. And we can detect the type of [...]]]></description>
			<content:encoded><![CDATA[<p>As noted previously, Meeting Workspaces use a different master page to the &#8216;normal&#8217; master pages in SharePoint. This is a little annoying - if I need to apply a new master page, how would I do this?</p>
<p>Well, you can <a href="http://www.novolocus.com/2008/06/24/setting-the-master-page-of-a-team-site-with-a-feature/">activate a new master page in a Feature Receiver</a>. And we can <a href="http://www.novolocus.com/2008/10/27/how-to-find-out-what-type-of-site-a-site-is/">detect the type of site we&#8217;re dealing with</a>. Why not combine the two techniques<span id="more-922"></span>:</p>
<p><code>private const string MASTERPAGEFILE = "MasterPageFile";<br />
private const string MEETINGMASTERPAGEFILE = "MeetingMasterPageFile";</code></p>
<p><code>public override void FeatureActivated(SPFeatureReceiverProperties properties)<br />
{<br />
SPWeb site = properties.Feature.Parent as SPWeb;<br />
SPFeatureProperty masterFile = properties.Definition.Properties[MASTERPAGEFILE];<br />
SPFeatureProperty meetingMasterFile = properties.Definition.Properties[MEETINGMASTERPAGEFILE];<br />
char[] slashes = { &#8216;/&#8217; };<br />
//Is the site a Meeting Workspace?<br />
if (site.WebTemplate.StartsWith(&#8221;MPS&#8221;))<br />
{<br />
site.CustomMasterUrl = site.ServerRelativeUrl.TrimEnd(slashes) + &#8220;/_catalogs/masterpage/&#8221; + meetingMasterFile.Value;<br />
site.MasterUrl = site.ServerRelativeUrl.TrimEnd(slashes) + &#8220;/_catalogs/masterpage/&#8221; + masterFile.Value;<br />
}<br />
else<br />
{<br />
site.CustomMasterUrl = site.ServerRelativeUrl.TrimEnd(slashes) + &#8220;/_catalogs/masterpage/&#8221; + masterFile.Value;<br />
site.MasterUrl = site.ServerRelativeUrl.TrimEnd(slashes) + &#8220;/_catalogs/masterpage/&#8221; + masterFile.Value;<br />
}<br />
site.Update();<br />
}</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/10/30/feature-receiver-to-apply-master-pages/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Applying Themes</title>
		<link>http://www.novolocus.com/2008/10/30/applying-themes/</link>
		<comments>http://www.novolocus.com/2008/10/30/applying-themes/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 13:04:24 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Branding]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[Themes]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=493</guid>
		<description><![CDATA[Themes have a couple of big advantages over Master Pages:

Any type of site will let you change the theme.
They style the Site Admin pages too.

&#8230;but there are some pain points too:

You can&#8217;t apply a Theme to a site and all subsites - well, not unless you write you own code to apply them programmically, or [...]]]></description>
			<content:encoded><![CDATA[<p>Themes have a couple of big advantages over Master Pages:</p>
<ul>
<li>Any type of site will let you change the theme.</li>
<li>They style the Site Admin pages too.</li>
</ul>
<p>&#8230;but there are some pain points too:</p>
<ul>
<li>You can&#8217;t apply a Theme to a site and all subsites - well, not unless you write you own code to <a href="http://www.novolocus.com/2008/10/17/programmatically-apply-a-default-theme-in-sharepoint/">apply them programmically</a>, or do something like <a href="http://stsadm.blogspot.com/2008/01/apply-theme.html">extend STSADM</a>.</li>
<li>You have to use <a href="http://grahamsibley.typepad.com/thoughtfactory/2007/06/automatically_a.html">feature stapling to automatically apply a Theme on site creation</a>.</li>
</ul>
<p>It&#8217;s certainly worth considering how your theme will be applied up front - although you could using the <a href="http://blogs.msdn.com/joelo/archive/2007/04/12/master-page-and-themes-on-wss-sites-in-moss.aspx">Alternate CSS url to &#8216;apply&#8217; your theme</a>. Personally, I think I like the idea of using a Feature.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/10/30/applying-themes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Corrupt Breadcrumbs in the in PageAreaTitleFrame</title>
		<link>http://www.novolocus.com/2008/10/30/corrupt-breadcrumbs-in-the-in-pageareatitleframe/</link>
		<comments>http://www.novolocus.com/2008/10/30/corrupt-breadcrumbs-in-the-in-pageareatitleframe/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 12:00:45 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Branding]]></category>

		<category><![CDATA[Breadcrumbs]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[Error]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=880</guid>
		<description><![CDATA[I was tempted to call this &#8220;The incredible case of the bust rendering of SharePoint pages&#8221;, but it seemed a bit long, to be honest. This is a bit of a detective story (and if I&#8217;d the developer who built this in the first place, there&#8217;d be a murder) so stick with me&#8230;
I&#8217;d been working [...]]]></description>
			<content:encoded><![CDATA[<p>I was tempted to call this &#8220;The incredible case of the bust rendering of SharePoint pages&#8221;, but it seemed a bit long, to be honest. This is a bit of a detective story (and if I&#8217;d the developer who built this in the first place, there&#8217;d be a murder) so stick with me&#8230;<span id="more-880"></span></p>
<p>I&#8217;d been working on my nice little brand, and on the item creation pages it&#8217;s supposed to look something like this:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/how-it-is-supposed-to-look.png"><img class="alignnone size-medium wp-image-881" title="how-it-is-supposed-to-look" src="http://www.novolocus.com/wp-content/uploads/2008/10/how-it-is-supposed-to-look-300x201.png" alt="" width="300" height="201" /></a></p>
<p>Nothing strange or startling, just some new colours. However, my customer found that if he moved his mouse over the links in the breadcrumb, he saw weirdness:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/broken-example-b.png"><img class="alignnone size-medium wp-image-883" title="broken-example-b" src="http://www.novolocus.com/wp-content/uploads/2008/10/broken-example-b-300x204.png" alt="" width="300" height="204" /></a> <a href="http://www.novolocus.com/wp-content/uploads/2008/10/broken-example-a.png"><img class="alignnone size-medium wp-image-882" title="broken-example-a" src="http://www.novolocus.com/wp-content/uploads/2008/10/broken-example-a-300x212.png" alt="" width="300" height="212" /></a></p>
<p>For some reason, on mouse over he was seeing bits of the page redrawn as background. WTF? Clearly, something about my styles was breaking the rendering in IE7. I know I don&#8217;t have any background graphics like what I was seeing - it has to be bits of the page redrawn.</p>
<p>I opened up the IE Dev toolbar, and took a look. None of the styles in use were incorrect - their code was fine. I started to take the scientific approach of, um, removing the styles that were in use one-by-one from the branding to see when it started working. It didn&#8217;t. Uh, oh. Out of panic, I just started removing all of the styles related to the PageAreaTitleFrame and it&#8217;s contents. When I removed <em>.ms-pagetitleareaframe table</em> it suddenly started working. But I could see that this wasn&#8217;t used - the IE Dev toolbar was showing me this.</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/ie-dev-toolbar-view-showing-the-problem-style-is-unused.png"><img class="alignnone size-medium wp-image-884" title="ie-dev-toolbar-view-showing-the-problem-style-is-unused" src="http://www.novolocus.com/wp-content/uploads/2008/10/ie-dev-toolbar-view-showing-the-problem-style-is-unused-300x223.png" alt="" width="300" height="223" /></a></p>
<p>WTF? The code for the style itself wasn&#8217;t complex, either! How could this break the rendering?</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/problem-style.png"><img class="alignnone size-medium wp-image-885" title="problem-style" src="http://www.novolocus.com/wp-content/uploads/2008/10/problem-style.png" alt="" width="225" height="61" /></a></p>
<p>In particular, it appeared to be the line setting the <em>background-color</em> to white. How the hell does setting a background-color of a style that isn&#8217;t even being used in the page break the rendering of IE7?</p>
<p>One of my colleagues suggested looking for the <em>ms-pagetitleareaframe</em> in the source. He doesn&#8217;t love the IE Dev toolbar as I do, but to humour him, I took a look:</p>
<p><a href="http://www.novolocus.com/wp-content/uploads/2008/10/view-source-something-is-using-that-style.png"><img class="alignnone size-medium wp-image-886" title="view-source-something-is-using-that-style" src="http://www.novolocus.com/wp-content/uploads/2008/10/view-source-something-is-using-that-style-300x38.png" alt="" width="300" height="38" /></a></p>
<p>What? There it is! And it&#8217;s on the table cell that encompasses the page title area. But looking at the IE Dev toolbar, that cell is styled as <em>ms-areaseparator</em>.</p>
<p>I wondered if the problem was related to the cell&#8217;s ID, so I searched Google for <em>onetidpagetitleareaframe</em> - and the first hit I got was <a href="http://www.devcow.com/blogs/adnrg/archive/2007/09/17/9590.aspx">&#8216;Be careful about hard coding Javascript in SharePoint 2007&#8242;</a> (Good post, worth a look). Interesting thought - could Javascript be causing the problem? I tried searching for <em>onetidpagetitleareaframe</em> in my page source, and right at the bottom of the page I found:</p>
<p><code>&lt;script id="onetidPageTitleAreaFrameScript"&gt;<br />
document.getElementById("onetidPageTitleAreaFrame").className="ms-areaseparator";<br />
&lt;/script&gt;</code></p>
<p>The air turned blue.</p>
<p>So, my problem was a result of Javascript and my background colour for a style that was used for a page initially (but was replaced by Javascript as the page load ended) interacting and breaking the IE7 renderer. But not on the page load, but on the mouse moving over it. Now if that isn&#8217;t a knotty and specific set of circumstances, I don&#8217;t know what is!</p>
<p>My solution - I redesigned my styles so I wasn&#8217;t setting the background colour&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2008/10/30/corrupt-breadcrumbs-in-the-in-pageareatitleframe/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
