<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/">
	<channel>
		<title>Codestore Activity Log</title>
		<description>Latest ten updates to codestore, be they blogs or articles.</description>
		<language>en-gb</language>
		<link>http://www.codestore.net</link>
		<lastBuildDate>Fri, 30 Jul 2010 06:43:51 -0500</lastBuildDate>
		<atom:link href="http://www.codestore.net/store.nsf/rss.xml" rel="self" type="application/rss+xml" />

		<item>
			<title>Kevin Bacon is a 3rd Degree Contact | Blog</title>
			<pubDate>Fri, 30 Jul 2010 06:43:51 -0500</pubDate>
			<author>Jake Howlett</author>
			<description><![CDATA[ <p>Stumbling around on LinkedIn.com I somehow ended up at <a href="http://www.linkedin.com/pub/kevin-bacon/3/223/504">Kevin Bacon's profile</a> and noticed he's a 3rd degree contact of mine. </p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/3C0122D6EBA2E888862577700040708F/$file/image_92728d43-6f03-4c7b-8521-f575804b1a8d.png" width="547" height="243"> </p> <p>So? Well, there is of course a game called <a href="http://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon">Six Degrees of Kevin Bacon</a>.</p> <p>How closely related is your LinkedIn profile to Kevin Bacon's - can you better 3 degrees!?</p>
<p><a href="http://www.codestore.net/store.nsf/unid/BLOG-20100730-0643?open#post"><img border="0" src="http://www.codestore.net/store.nsf/images/rss_reply.gif" alt="Click here to post a response" /></a></p> 		]]></description>
			<link>http://www.codestore.net/store.nsf/unid/BLOG-20100730-0643</link>
			<guid isPermaLink="true">http://www.codestore.net/store.nsf/unid/BLOG-20100730-0643</guid>
			<comments>http://www.codestore.net/store.nsf/unid/BLOG-20100730-0643?Open#comments</comments>
			<slash:comments>4</slash:comments>
			<wfw:commentRss>http://www.codestore.net/store.nsf/blog.xml?Open=20100730-0643</wfw:commentRss>
		</item>
		<item>
			<title>Windows Start Menu Tip | Blog</title>
			<pubDate>Mon, 26 Jul 2010 08:03:31 -0500</pubDate>
			<author>Jake Howlett</author>
			<description><![CDATA[ <p>If you're like me, then to get to a Command Prompt you press "Windows Key + R" (or find the "Run..." link in the start menu) and then you type "cmd" and press enter. </p> <p>Well, in Windows 7 I just found that this is a little bit simpler. If you press the Windows key to open the start menu the cursor is focussed on the search box at the bottom. Just type "cmd" in there and press enter. Voila.</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/073865FC4CA745AD8625776C0047BB9E/$file/image_c421734e-c8f1-4507-abcc-6f66846bd4a7.png" width="416" height="252"> </p> <p>Seems to work regardless of whether the program is in the "All Programs" folder and, as such, makes the search box a replacement for the Run window? You can type web addresses in there too.</p> <p>I'm finding myself using the search box more and more.</p>
<p><a href="http://www.codestore.net/store.nsf/unid/BLOG-20100726-0803?open#post"><img border="0" src="http://www.codestore.net/store.nsf/images/rss_reply.gif" alt="Click here to post a response" /></a></p> 		]]></description>
			<link>http://www.codestore.net/store.nsf/unid/BLOG-20100726-0803</link>
			<guid isPermaLink="true">http://www.codestore.net/store.nsf/unid/BLOG-20100726-0803</guid>
			<comments>http://www.codestore.net/store.nsf/unid/BLOG-20100726-0803?Open#comments</comments>
			<slash:comments>12</slash:comments>
			<wfw:commentRss>http://www.codestore.net/store.nsf/blog.xml?Open=20100726-0803</wfw:commentRss>
		</item>
		<item>
			<title>Back From Whitby | Blog</title>
			<pubDate>Mon, 26 Jul 2010 04:49:44 -0500</pubDate>
			<author>Jake Howlett</author>
			<description><![CDATA[ <p>Our faith in the British holiday has been restored after a lovely week away in Whitby. It only rained on one day!</p> <p>The kids loved playing on the beach all day long! It's so nice to share 4 miles of beach with about a dozen other people. I never like having to confine the whole family to 4m2 when abroad.</p> <p><img src="http://lh3.ggpht.com/_nt0Mq3c0fqs/TE1SN6ZyymI/AAAAAAAAAf4/V9aJ_gH_pZ8/s720/IMG_5218.JPG" width="500" height="375"></p> <p>The <a href="http://sunnybanksandsend.com/">house we stayed in</a> was literally a stone's throw from the beach. The village we stayed in, Sandsend, is the stuff of picture postcards. If you want a holiday in England then it's worth considering and I'd highly recommend it. If not just for the fish and chips in Whitby.</p> <p>My tip for visitors to Whitby in search of a decent chip supper -- avoid being ripped off at The Magpie or Trenchers (2 pounds extra for mushy peas!?) and find Silver Street. Half way up it is a chip shop with picnic benches outside. The fish/chips are amazing, half the price and you dine alfresco to boot.</p> <p>I love <a href="http://en.wikipedia.org/wiki/Fish_and_chips">fish 'n' chips</a> by the way.</p> <p>There are some <a href="http://picasaweb.google.co.uk/jakehowlett/Whitby2010">more photos here</a>. </p>
<p><a href="http://www.codestore.net/store.nsf/unid/BLOG-20100726-0449?open#post"><img border="0" src="http://www.codestore.net/store.nsf/images/rss_reply.gif" alt="Click here to post a response" /></a></p> 		]]></description>
			<link>http://www.codestore.net/store.nsf/unid/BLOG-20100726-0449</link>
			<guid isPermaLink="true">http://www.codestore.net/store.nsf/unid/BLOG-20100726-0449</guid>
			<comments>http://www.codestore.net/store.nsf/unid/BLOG-20100726-0449?Open#comments</comments>
			<slash:comments>15</slash:comments>
			<wfw:commentRss>http://www.codestore.net/store.nsf/blog.xml?Open=20100726-0449</wfw:commentRss>
		</item>
		<item>
			<title>Nice Little Feature in Thunderbird 3 | Blog</title>
			<pubDate>Thu, 15 Jul 2010 10:30:09 -0500</pubDate>
			<author>Jake Howlett</author>
			<description><![CDATA[ <p>I just noticed a nice feature in Thunderbird 3. If you're writing a message and you happen to mention that you're attaching a file then Thunderbird picks up on this and reminds you to <em>actually</em> attach it! How cool is that. </p> <p><img style="border-right-width: 0px; margin: 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/0D400D9EBAF345318625776100552875/$file/image_285450db-ad81-42c0-8198-648101f8c0dd.png" width="554" height="447"> </p> <p>I for one am always telling people I've attached things when in fact I forget to and they reply to ask where the file is.</p> <p><strong>Update: </strong>It goes one step further and presents a reminder dialog if you click send without having added a file:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/8351656297EE809F862577610057BB0D/$file/image_04c165d6-5ef8-4fc3-848d-50b07dd8fff7.png" width="391" height="155"> </p> <p>The behaviour is controlled via a couple of options:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/99C0A9A16413B91A862577610057BC1F/$file/image_85b9c5ca-3028-4868-ab63-8e273f6d142d.png" width="544" height="502"> </p> <p>Nice.</p>
<p><a href="http://www.codestore.net/store.nsf/unid/BLOG-20100715-1030?open#post"><img border="0" src="http://www.codestore.net/store.nsf/images/rss_reply.gif" alt="Click here to post a response" /></a></p> 		]]></description>
			<link>http://www.codestore.net/store.nsf/unid/BLOG-20100715-1030</link>
			<guid isPermaLink="true">http://www.codestore.net/store.nsf/unid/BLOG-20100715-1030</guid>
			<comments>http://www.codestore.net/store.nsf/unid/BLOG-20100715-1030?Open#comments</comments>
			<slash:comments>12</slash:comments>
			<wfw:commentRss>http://www.codestore.net/store.nsf/blog.xml?Open=20100715-1030</wfw:commentRss>
		</item>
		<item>
			<title>Hurray, hurray, we're off on holiday! | Blog</title>
			<pubDate>Thu, 15 Jul 2010 06:34:08 -0500</pubDate>
			<author>Jake Howlett</author>
			<description><![CDATA[ <p>Bags packed? </p> <p>Check.</p> <p>Servers turned off? </p> <p>Check. </p> <p>Milk cancelled? </p> <p>Check. </p> <p>Passports? </p> <p>Err, no. Don't need them. We're holidaying in the UK again this year. Although we swore we'd never do it again after a <a href="http://www.codestore.net/store.nsf/unid/BLOG-20080825/">rainy week in Dorset</a> 2 years ago, last year's holiday just <a href="http://www.codestore.net/store.nsf/unid/BLOG-20090803/">proved too expensive</a>, so it's Blighty again this year. Whitby to be exact. Well, <a href="http://maps.google.co.uk/maps?q=sandsend,%20uk">Sandsend</a> to be even more exacterer.</p> <p>Rain or not it's going to be nice to get away from the desk for a while. See you in a week.</p> <p>Now, I wonder how long it will be before dad rings to ask if I think it's a good idea to announce my house's emptiness on the internet... </p>
<p><a href="http://www.codestore.net/store.nsf/unid/BLOG-20100715-0634?open#post"><img border="0" src="http://www.codestore.net/store.nsf/images/rss_reply.gif" alt="Click here to post a response" /></a></p> 		]]></description>
			<link>http://www.codestore.net/store.nsf/unid/BLOG-20100715-0634</link>
			<guid isPermaLink="true">http://www.codestore.net/store.nsf/unid/BLOG-20100715-0634</guid>
			<comments>http://www.codestore.net/store.nsf/unid/BLOG-20100715-0634?Open#comments</comments>
			<slash:comments>5</slash:comments>
			<wfw:commentRss>http://www.codestore.net/store.nsf/blog.xml?Open=20100715-0634</wfw:commentRss>
		</item>
		<item>
			<title>SharePoint - Bad For Your Health, Good For Your Health | Blog</title>
			<pubDate>Wed, 14 Jul 2010 04:19:52 -0500</pubDate>
			<author>Jake Howlett</author>
			<description><![CDATA[ <p>I wouldn't describe myself as a comfort eater, but I keep finding myself nipping in to the house and scouring through the cupboards for snacks. When I get frustrated at the desk I tend to seek comfort elsewhere. So I snack.</p> <p>The source of my frustration? SharePoint of course. While I am making steady progress in my quest to learn all about it, it ain't half frustrating to work with. Not so much the way you have to work (RDP to server) but that the API doesn't either a) work or b) work like you'd think it would. Yes SPListItem.CopyTo() method and SPFolder.ListItems property, I'm talking about you!</p> <p>On the flip side I've also found myself needing to get away from the desk completely by some point mid afternoon. A full day of SharePoint would just be too much to take. So, I've been going on about 3 runs a week. Compared to one a week if I was lucky beforehand.</p> <p>So, thanks to SharePoint I get to enjoy my favourite snacks and I'm fitter than I've been in months! Best of both worlds.</p> <h4>Upcoming SharePoint Posts</h4> <p>Here are some of the "problems" I've been presented with that you might be shocked (relieved?) to hear were quite a challenge in SharePoint:</p> <dl> <dt>1. Change tracking at the field level  <dd>Imagine a Domino Form with a "Status" field on it. You want a field on the document to record the username and timestamp of all edits to it along with any change in value of the Status. Second nature in Domino. Not quite so easy in SharePoint. Doable, but what a hassle.&nbsp; <dt>2. Print friendly button on a List item  <dd>Surprised to see Google didn't know of the solution I came up with, so I'll share it here, as it shows a few useful techniques in use.&nbsp; <dt>3. Copy/move items/documents from one folder to another  <dd>Boy, was this a headache! You won't believe how hard this is. Mainly because, as I mentioned above, the API is flaky and confusing.  <dt>4. Packaging and delivering the project to the customer.  <dd>I've not actually got round to this bit, but I'm neither looking forward to it or expecting it to be quite as simple a task as I'm used to with Domino. I said on Twitter a while back that I'd coined a new saying in my head while working with SharePoint -- "God bless the NSF". Time will tell how hard it actually is.</dd></dl> <p>So, there you go dear inhabitants of planet Lotus. The SharePoint posts aren't over yet, but the end is in sight.</p> <h4>Again, Thank My Customers</h4> <p>Going back to <a href="http://www.codestore.net/store.nsf/unid/BLOG-20070703?OpenDocument">something I said 3 years ago</a>, you still have my customers to thank if you find this website's content useful. </p> <p>The SharePoint project I'm working on is a actual paying job for a customer. As with all projects I work on I asked their permission to share the geekier coding details of what I'm doing. Happily they agreed, adding:</p> <blockquote> <p>It's always nice to have online documentation. </p> <p>Please don't mention the firm's name.</p></blockquote> <p>What a refreshing approach. And this from a huge, huge company. Although I'd never mention my customer's names, purely as a matter of principle.</p>
<p><a href="http://www.codestore.net/store.nsf/unid/BLOG-20100714-0419?open#post"><img border="0" src="http://www.codestore.net/store.nsf/images/rss_reply.gif" alt="Click here to post a response" /></a></p> 		]]></description>
			<link>http://www.codestore.net/store.nsf/unid/BLOG-20100714-0419</link>
			<guid isPermaLink="true">http://www.codestore.net/store.nsf/unid/BLOG-20100714-0419</guid>
			<comments>http://www.codestore.net/store.nsf/unid/BLOG-20100714-0419?Open#comments</comments>
			<slash:comments>12</slash:comments>
			<wfw:commentRss>http://www.codestore.net/store.nsf/blog.xml?Open=20100714-0419</wfw:commentRss>
		</item>
		<item>
			<title>Goodbye Planet Lotus Readers? | Blog</title>
			<pubDate>Tue, 13 Jul 2010 04:53:55 -0500</pubDate>
			<author>Jake Howlett</author>
			<description><![CDATA[ <p>The owner of <a href="http://planetlotus.org/">Planet Lotus</a>, Yancy Lent, asked me yesterday if he should move this site to "Planet Sharepoint" instead. At first I thought it was a joke, but it turns out he has a sister site just like the Lotus one that's only for SharePoint feeds.</p> <p>Anyway, I said no, don't move it, as the SharePoint posts on here are likely to be short-lived, sporadic and intermingled with Lotus postings. And that, either way, they're of interest to the readers of the Lotus stuff as they're written by a Domino developer.</p> <p>However, he seems quite insistent and hinted that he'd have to "de-list" me in the interim and asked if I thought was "fair". To which I said, no, I didn't think it was fair. Not unfair on me, but on the users who've grown to rely on his site as their one-stop source of Lotus postings. </p> <p>If he de-lists me what happens then? Do the visitors I'd lose (7% of my hits) assume I've fallen off the face of the earth? Or do they then have to remember to check here directly or via RSS instead. </p> <p>It all stinks a bit of control-freakery to me. Expecting to be able compartmentalise a list of blogs in to one bag is bound to be an impossible task. If he didn't have a Planet SharePoint site would his email ever have arrived I wonder?</p> <p>Yancy said that was I was doing was like:</p> <blockquote> <p>Coming to a Manchester United forum to talk about Arsenal.</p></blockquote> <p>But it's not though is it. Nothing is ever that black and white and his analogy just doesn't work.</p> <p>What I said to Yancy is:</p> <blockquote> <p>Do what you like though, I'm not really that bothered. I just think you're doing a dis-service to your visitors.</p></blockquote> <p>I also said:</p> <blockquote> <p>I talk about what I'm doing at the time. Right now it's Sharepoint. Next month it could be something amazing with Domino. Who knows.</p></blockquote> <p>What I'm getting round to saying is that if you trust Planet Lotus as the definitive source of Lotus blog posts then maybe you need to be aware that what you're reading is being dictated to you.</p> <p>I don't know what he's planning on doing, but wanted to make you aware of what he <em>might</em> do. If you're a Planet Lotus visitor and see no posts from me in the coming days or weeks then you know why. Might I suggest you use <a href="http://www.codestore.net/store.nsf/rss.xml">RSS</a> or <a href="http://twitter.com/jakehowlett">Twitter</a> instead.</p> <p>I put a <a href="http://www.codestore.net/apps/dext.nsf/0/D39228AACBC255C08625775E00736BCE?OpenDocument">quick survey here</a> to see if you think what he's suggesting is a good idea. Let the people decide I say.</p>
<p><a href="http://www.codestore.net/store.nsf/unid/BLOG-20100713-0453?open#post"><img border="0" src="http://www.codestore.net/store.nsf/images/rss_reply.gif" alt="Click here to post a response" /></a></p> 		]]></description>
			<link>http://www.codestore.net/store.nsf/unid/BLOG-20100713-0453</link>
			<guid isPermaLink="true">http://www.codestore.net/store.nsf/unid/BLOG-20100713-0453</guid>
			<comments>http://www.codestore.net/store.nsf/unid/BLOG-20100713-0453?Open#comments</comments>
			<slash:comments>99</slash:comments>
			<wfw:commentRss>http://www.codestore.net/store.nsf/blog.xml?Open=20100713-0453</wfw:commentRss>
		</item>
		<item>
			<title>SharePoint Manager Application | Blog</title>
			<pubDate>Mon, 12 Jul 2010 05:22:39 -0500</pubDate>
			<author>Jake Howlett</author>
			<description><![CDATA[ <p>If, like me, you find yourself in at the deep end trying to get your head round SharePoint development then along with the <a href="http://www.codestore.net/store.nsf/unid/BLOG-20100702-0618">other things I talked about</a> you might want a copy of <a href="http://spm.codeplex.com/releases/view/22762">SharePoint Manager 2007</a>/<a href="http://spm.codeplex.com/">2010</a>.</p> <p><img src="http://www.keutmann.dk/SharePointBlog/03170127.jpg" width="500" height="454"></p> <p>It's the <a href="http://www.ytria.com/WebSite.nsf/WebPageRequest/Solutions_scanEZ1en?OpenDocument&amp;Lang=en">scanEz</a> of the SharePoint world and it's helping me no end in working out how things are all tied together.</p> <p>Thanks to Erwin van Hunen for the tip!</p>
<p><a href="http://www.codestore.net/store.nsf/unid/BLOG-20100712-0522?open#post"><img border="0" src="http://www.codestore.net/store.nsf/images/rss_reply.gif" alt="Click here to post a response" /></a></p> 		]]></description>
			<link>http://www.codestore.net/store.nsf/unid/BLOG-20100712-0522</link>
			<guid isPermaLink="true">http://www.codestore.net/store.nsf/unid/BLOG-20100712-0522</guid>
			<comments>http://www.codestore.net/store.nsf/unid/BLOG-20100712-0522?Open#comments</comments>
			<slash:comments>2</slash:comments>
			<wfw:commentRss>http://www.codestore.net/store.nsf/blog.xml?Open=20100712-0522</wfw:commentRss>
		</item>
		<item>
			<title>Share My SharePoint Pain | Blog</title>
			<pubDate>Wed, 7 Jul 2010 05:24:13 -0500</pubDate>
			<author>Jake Howlett</author>
			<description><![CDATA[ <p>I just posted my first SharePoint "how to", which describes <a href="http://www.codestore.net/store.nsf/unid/BLOG-20100707-0446">showing metadata inside a folder</a>. It's a lengthy post full of many, many screenshots detailing the laborious process of doing something I had assumed would be fairly simple.</p> <p>While writing it I was mindful of keeping it focused on SharePoint so it would remain a useful resource that a SharePoint developer might stumble upon one day and find useful.&nbsp; That's why I didn't write it from the perspective of a Domino developer.</p> <p>If you're purely a Domino developer it won't be of much use to you, obviously. However, you might want to give it a once over. Even if just to feel smug about the fact you're <strong>not</strong> a SharePoint developer. You might even find it enlightening, as it offers a glimpse of "the dark side".</p> <h4>A Domino Perspective?</h4> <p>The article describes how to arrange Lists in a folder-based hierarchy and then display a description of the current folder as you navigate the structure.</p> <p>In Domino terms this is like having a View of parent/response Documents. The view would contain two Forms - one called "Folder" and one called "Item". The Folder Form would have a field called Description on it and when you opened a document based on it this description would appear along with any child Documents (Folders and/or Items) that shared the same $REF.</p> <p>It would be fairly easy to implement in Domino. In SharePoint it was a massive headache. For me anyway. Whether a seasoned pro would find it a breeze I don't know.</p> <p>What I am finding is that OOTB (out of the box) it's quite impressive. But as soon as you go OOTO (out of the ordinary) and try to extend it, you better hope you know what you're doing. </p>
<p><a href="http://www.codestore.net/store.nsf/unid/BLOG-20100707-0524?open#post"><img border="0" src="http://www.codestore.net/store.nsf/images/rss_reply.gif" alt="Click here to post a response" /></a></p> 		]]></description>
			<link>http://www.codestore.net/store.nsf/unid/BLOG-20100707-0524</link>
			<guid isPermaLink="true">http://www.codestore.net/store.nsf/unid/BLOG-20100707-0524</guid>
			<comments>http://www.codestore.net/store.nsf/unid/BLOG-20100707-0524?Open#comments</comments>
			<slash:comments>13</slash:comments>
			<wfw:commentRss>http://www.codestore.net/store.nsf/blog.xml?Open=20100707-0524</wfw:commentRss>
		</item>
		<item>
			<title>SharePoint: Displaying A Folder's MetaData Above a List | Blog</title>
			<pubDate>Wed, 7 Jul 2010 04:46:12 -0500</pubDate>
			<author>Jake Howlett</author>
			<description><![CDATA[ <p>Yesterday afternoon I rose out of my chair, punched the air and exclaimed "Yes, you f*cker". Had I won the lottery or landed a huge new project that would solve all my money worries for years to come? No. I'd worked out how to get a SharePoint folder to display some metadata on a page!</p>
 <h4>The Problem</h4> <p>Imagine a basic SharePoint List, like this one:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/4C705CBFA04742D28625775900359948/$file/image_9aba2ff9-48a6-409f-8db4-d69e44dab481.png" width="533" height="281"> </p> <p>On the right-hand side is a View of the List of Folders in which I'm keeping my music. </p> <p>What if I wanted to add some additional information about the folder just above where the View appears, like this:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/D4ABD118FE409CC686257759003599C8/$file/image_07fb8f76-0ac5-411d-96e3-f90cd63a8710.png" width="531" height="313"> </p> <p></p> <p></p> <p>Surely that would be really simple, no? </p> <p>No!</p> <p>It took me two days to work out how to do that. Now, admittedly, I'm a noob to SharePoint, but, still. Unless I've missed something very obvious then I'm sure you'll agree what I'm about to describe is anything but simple.</p> <h4>The Solution</h4>

 <p>What I ended up doing is creating a custom Content Type, based on the existing Folder type, but with an extra Column to store the "description" of the folder. Then I created a custom Web Part to stick in above the View and show the description of the current folder.</p> <p>Here are the steps involved:</p> <h5>Step 1. Create a new Content Type</h5> <p>This new Content Type will be our custom folder. To create it, go to Site Settings from the Site Actions menu and choose "Site content types".</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/29B5025FA34E6F918625775900359AA4/$file/image_8a17e26e-c4e1-4eab-8d69-bda544e29f2f.png" width="528" height="277"> </p> <p>Then click the Create button:</p> <p><img style="border-right-width: 0px; margin: 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/6627C9EEDD2348158625775900359AFF/$file/image_394bb57d-0449-41ab-ac4f-866c1fcbdaa3.png" width="528" height="167"> </p> <p>You'll see a form like this:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/EAB82C02C92037BE8625775900359C0C/$file/image_061ebe6c-d5c1-4232-9ea6-eeb6e99e5fa2.png" width="524" height="434"> </p> <p>Notice how I've created, in effect, a new type of folder, called MyFolder. As it's based on the existing Folder type it will look and behave just like a normal Folder.</p> <h5>Step 2. Add a Description Field to the New Folder</h5> <p>After creating the new Content Type you should have been taken to a page that described it, which looks like this:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/456502D89894E6978625775900359D21/$file/image_a6b95953-6e79-45e9-a265-5b59dd7acda6.png" width="524" height="504"> </p> <p>Notice there's a link to add a new Column. Click this and we'll add the Description Field/Column, as below:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/44E095300BD0CC8C8625775900359DD5/$file/image_c76f0dbc-d576-4bd6-9343-c19d7bc8d025.png" width="521" height="207"> </p> <p>Once you've clicked Ok on that page your custom Folder is ready for use.</p> <h5>Step 3. Create a new List to contain your Folder</h5> <p>Now we have a new Content Type we need to create and configure a new List that will use it. </p> <p>From the main Site Actions menu choose the Create option and then choose "Custom list" from the next page, as below:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/389F59AD9BE46A548625775900359EAB/$file/image_dd7bdd74-a4e4-46a0-befa-c31af02b1cc4.png" width="519" height="280"> </p> <p>Call your new List something like MyFolders or MyMedia, or whatever:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/7F6870CDA9AF25228625775900359F44/$file/image_3983bfa6-7bf7-4221-abc7-dd917eca2290.png" width="518" height="302"> </p> <p>You'll then be taken to your new empty List. </p> <h5>Step 4. Configure The List To Show Your Folders</h5> <p>From this Settings menu on the new List, choose List Settings.</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/085723E36148E8EB862577590035A047/$file/image_062505ad-f366-4a4f-b66d-5ac5627ea930.png" width="518" height="259"> </p> <p>On the next page choose Advanced Settings:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/83CBFD33576DAFCC862577590035A154/$file/image_44b6b7f0-f4c8-49ee-9fa8-1ebdaf23a421.png" width="522" height="333"> </p> <p>On the Advanced Settings page you then need to enable the management of Content Types:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/6FB419D6F427B989862577590035A268/$file/image_99d035c6-3173-4a04-aeb6-3c0852417bbb.png" width="523" height="261"> </p> <p>When you click Ok you'll return to the previous page and see the Content Types section, which wasn't there before:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/A010B4186CC0B71D862577590035A344/$file/image_da850f44-77da-4b51-9568-4fd9c6d7c9f9.png" width="526" height="236"> </p> <p></p> <p></p> <p></p> <p>In that section click on "Add from existing site content types" and in the next page add your MyMedia/MyFolder Content Type, so that the Content Types section then looks like this:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/AB631CA87C6A3B4F862577590035A3EE/$file/image_6fc16efb-1baa-4fa4-b5a6-2764915c286c.png" width="531" height="179"> </p> <p>Now return to the List and you'll see that under the List's New menu there's an option to create a new "MyFolder" entry. Click this and you'll see a screen like this:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/641F65FAC44675DA862577590035A508/$file/image_c1568c8f-baf5-4d17-b990-9345adf1d7e0.png" width="537" height="283"> </p> <p>It's just like the standard "New Folder" page, <strong>but</strong>, this one lets you add a description to it. </p> <p>Here's the result of pressing Ok - a new folder in your List.</p> <p><img style="border-right-width: 0px; margin: 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/00389C26B2AE1DC0862577590035A555/$file/image_c21f19e1-6a1f-4622-9e24-0bb527f5d2f0.png" width="311" height="180"> </p> <p></p> <p></p> <p>And breath....</p> <p>That was the easy bit. Getting this far I found fairly "straight-forward". What I then wanted to do was show the folder's description while navigating the List. </p> <h5>Step 6. Displaying the Folder Description</h5> <p>After a couple of days of trying to find a simple solution to this I finally opted to create my own Web Part. To do this I used the WSPBuilder plugin for Visual Studio, which I am running on the same Virtual Machine on which MOSS 2007 is installed.</p> <p>First off, from within Visual Studio, I created a new WSPBuilder project:</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/1F8D9DA3FEB02B94862577590035A620/$file/image_c8e14804-9bd7-489c-a96a-1dfe78f9656b.png" width="524" height="378"> </p> <p>Once the project was created I added a new item to it based on a Web Part and called it "ShowMyFoldersDescription":</p> <p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/6B8F94F79835C1D7862577590035A6D5/$file/image_967c0e3d-3ea3-46eb-8133-bb05df4c1d73.png" width="524" height="321"> </p> <p>Visual Studio will then create all the files you need to deploy this Web Part and in the required structure, as you can see below:</p> <p><img style="border-right-width: 0px; margin: 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/86752018ED26AA3F862577590035A732/$file/image_d572a569-3184-4bd8-9fef-5ba664eefe78.png" width="337" height="331"> </p> <p>The file we're interested in is the .CS file. Open that and find the CreateChildControls() method and the bit where it says "Your code here". This is where we'll add the following code (be sure to add a "using Microsoft.SharePoint" statement at the top of the code file first):</p><pre class="code2">SPWeb web <span class="TPoperator">= </span>SPContext<span class="TPoperator">.</span>Current<span class="TPoperator">.</span>Web;

<span class="TPcomment">//Find the folder item for the current page.</span> 
<span class="TPkeyword1">string </span>rootFolder <span class="TPoperator">= </span>Page<span class="TPoperator">.</span>Request<span class="TPoperator">.</span>QueryString<span class="TPbracket">&#91;</span><span class="TPstring">"RootFolder"</span><span class="TPbracket">&#93;</span>;

<span class="TPkeyword1">if </span><span class="TPbracket">(</span><span class="TPoperator">!</span>String<span class="TPoperator">.</span>IsNullOrEmpty<span class="TPbracket">(</span>rootFolder<span class="TPbracket">))</span>
<span class="TPbracket">{</span>

        SPFolder folder <span class="TPoperator">= </span>web<span class="TPoperator">.</span>GetFolder<span class="TPbracket">(</span>rootFolder<span class="TPbracket">)</span>;

        <span class="TPkeyword1">if </span><span class="TPbracket">(</span>folder<span class="TPoperator">.</span>Exists <span class="TPoperator">&amp;&amp; </span>folder<span class="TPoperator">.</span>Item<span class="TPoperator">.</span>ContentType<span class="TPoperator">.</span>Name <span class="TPoperator">== </span><span class="TPstring">"MyFolder"</span><span class="TPbracket">)</span>
        <span class="TPbracket">{</span>

                <span class="TPkeyword1">base</span><span class="TPoperator">.</span>CreateChildControls<span class="TPbracket">()</span>;

                <span class="TPkeyword1">this</span><span class="TPoperator">.</span>Style<span class="TPoperator">.</span>Add<span class="TPbracket">(</span>HtmlTextWriterStyle<span class="TPoperator">.</span>Margin, <span class="TPstring">"1em"</span><span class="TPbracket">)</span>;

                <span class="TPkeyword1">this</span><span class="TPoperator">.</span>Controls<span class="TPoperator">.</span>Add<span class="TPbracket">(</span><span class="TPkeyword2">new </span>LiteralControl<span class="TPbracket">(</span><span class="TPstring">"&lt;h2&gt;"</span><span class="TPoperator">+</span>folder<span class="TPoperator">.</span>Name<span class="TPoperator">+</span><span class="TPstring">"&lt;/h2&gt;"</span><span class="TPbracket">))</span>;

                SPField field <span class="TPoperator">= </span>folder<span class="TPoperator">.</span>Item<span class="TPoperator">.</span>Fields<span class="TPbracket">&#91;</span><span class="TPstring">"Folder Description"</span><span class="TPbracket">&#93; </span><span class="TPkeyword1">as </span>SPField;
                <span class="TPkeyword1">this</span><span class="TPoperator">.</span>Controls<span class="TPoperator">.</span>Add<span class="TPbracket">(</span><span class="TPkeyword2">new </span>LiteralControl<span class="TPbracket">(</span>field<span class="TPoperator">.</span>GetFieldValueAsHtml<span class="TPbracket">(</span>folder<span class="TPoperator">.</span>Item<span class="TPbracket">&#91;</span><span class="TPstring">"Folder Description"</span><span class="TPbracket">&#93;)))</span>;

        <span class="TPbracket">}</span>
        <span class="TPkeyword1">else</span>
        <span class="TPbracket">{</span>
                <span class="TPkeyword1">this</span><span class="TPoperator">.</span>Hidden <span class="TPoperator">= </span><span class="TPkeyword2">true</span>;
        <span class="TPbracket">}</span>
<span class="TPbracket">}</span>
<span class="TPkeyword1">else</span>
<span class="TPbracket">{</span>
        <span class="TPkeyword1">this</span><span class="TPoperator">.</span>Hidden <span class="TPoperator">= </span><span class="TPkeyword2">true</span>;
<span class="TPbracket">}</span>
</pre>
<p>With the code in place you can build the project and then, if you right click the project you'll see a WSPBuilder menu. In there you can build the WSP and then Deploy it to the server, like so:</p>
<p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/94E6BE70B2E71121862577590035A7C3/$file/image_6c311673-d808-49af-8e88-b050b224dc68.png" width="524" height="221"> </p>
<p>Now it's deployed on the server, we need to enable and add the new Web Part to our page. Switch back to the Site in your browser and from the Site Settings page choose the Site Features link from under Site Administration. Scroll down the list of Features until you see the one we just created and then click to Activate it, so an Active flag appears next to it, as below:</p>
<p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/D128C176A1DF8676862577590035A83A/$file/image_1dc93d3b-bdc0-4291-96bf-a5728a9c5374.png" width="524" height="97">&nbsp; </p>
<p></p>
<p></p>
<p>Now return to your List and from the Site Actions menu choose Edit Page:</p>
<p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/6D11E2EB93AACA44862577590035A8F8/$file/image_faf51be5-ebb6-460d-94ce-d05d180286d5.png" width="524" height="174"> </p>
<p>This will put the page in edit mode and allow you to add the new Web Part to it. Click the Add Web Part button on the page and then choose the "Advanced" option from the window that pops up. You'll see a screen like the one below:</p>
<p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/D9A8C62A4AC888DE862577590035AA08/$file/image_654ec2e8-6ab2-4794-9489-9b45cf42932b.png" width="524" height="369"> </p>
<p>Notice the Web Part we just activated appears in the list. Cool! Click and drag it over to where you want it to appear in the List page. You should see a live preview of what it will look like:</p>
<p><img style="border-bottom: 0px; border-left: 0px; margin: 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.codestore.net/store.nsf/rsrc/F6DECDDB5C995418862577590035AB11/$file/image_8b65c05c-d95d-473d-ba93-a265bd8faff7.png" width="524" height="321"> </p>
<p>Just below the Site Actions menu there'll be an "Exit Edit Mode" button. Click that and you'll return to your List, but, low and behold, it will have the Folder's description appear as you navigate around. Phew!</p>
<h4>Summary</h4>
<p>
<p></p>
<p>Such is the nature of learning SharePoint that achieving something so apparently simple can bring such relief that I punch the air with joy. </p>
<p>For two or three days (yes, days!) while I struggled to work out how to do this I'd been ending my working day with a feeling of dejection, having wasted a whole day in which I'd achieved nothing. I hate days like that. Hence my exhilaration when arriving at a working solution.</p>
<p>I'm not saying this is the only or - by any means - the best approach to take. Heck, who am I to say that, having only been using SharePoint for about a week. For now though I'll assume it is the only way and that what I've described might one day be of use to somebody and save them the pain I've just been through.</p></p>
<p><a href="http://www.codestore.net/store.nsf/unid/BLOG-20100707-0446?open#post"><img border="0" src="http://www.codestore.net/store.nsf/images/rss_reply.gif" alt="Click here to post a response" /></a></p> 		]]></description>
			<link>http://www.codestore.net/store.nsf/unid/BLOG-20100707-0446</link>
			<guid isPermaLink="true">http://www.codestore.net/store.nsf/unid/BLOG-20100707-0446</guid>
			<comments>http://www.codestore.net/store.nsf/unid/BLOG-20100707-0446?Open#comments</comments>
			<slash:comments>9</slash:comments>
			<wfw:commentRss>http://www.codestore.net/store.nsf/blog.xml?Open=20100707-0446</wfw:commentRss>
		</item>


	</channel>
</rss> 
