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

<channel>
	<title>Eric Webb</title>
	<atom:link href="http://ericcwebb.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ericcwebb.com</link>
	<description>Work, life, and everything else...</description>
	<lastBuildDate>Tue, 26 Jan 2010 16:03:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Page Layouts, Solutions and SharePoint Designer (Updated)</title>
		<link>http://ericcwebb.com/2010/01/22/page-layouts-solutions-and-sharepoint-designer/</link>
		<comments>http://ericcwebb.com/2010/01/22/page-layouts-solutions-and-sharepoint-designer/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 18:45:12 +0000</pubDate>
		<dc:creator>Eric Webb</dc:creator>
				<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://ericcwebb.com/?p=98</guid>
		<description><![CDATA[If you are deploying custom page layouts using a feature, DO NOT OPEN THEM IN SHAREPOINT DESIGNER!  Not even once.  Not just to &#8220;take a look&#8221;.  Not for giggles.
Why?  Because once you open that page layout in SharePoint Designer, it gets un-ghosted.  This does two things.  First, it means [...]]]></description>
			<content:encoded><![CDATA[<p>If you are deploying custom page layouts using a feature, DO NOT OPEN THEM IN SHAREPOINT DESIGNER!  Not even once.  Not just to &#8220;take a look&#8221;.  Not for giggles.</p>
<p>Why?  Because once you open that page layout in SharePoint Designer, it gets un-ghosted.  This does two things.  First, it means that you have to make changes in SharePoint Designer.  The .aspx file in the feature directory is no longer used when rendering pages based on that page layout.  Second, if you&#8217;ve attached a code-behind to the page, you&#8217;ll get a error indicating that type is not registered as safe.  This occurs because SharePoint uses a type-safe parser on all un-ghosted content.</p>
<p>If you&#8217;ve come accross this post because you already did open the page layout in SPD, have no fear.  To remedy your error, simply go to Site Actions&#8230;Site Settings&#8230;Reset to Site Definition.  Once you do that, re-deploy your feature containing the page layout.  Now, your page layout is ghosted.</p>
<p>Update:  Well, I ran into an issue where &#8220;Reset to Site Definition&#8221; just didn&#8217;t work.  So, I tried the stsadm command here (with -force): http://stsadm.blogspot.com/2007/09/re-ghosting-pages.html and now we&#8217;re back to un-ghosted.  Very frustrating.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericcwebb.com/2010/01/22/page-layouts-solutions-and-sharepoint-designer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sharepoint CSS: Moving webparts</title>
		<link>http://ericcwebb.com/2009/09/17/sharepoint-css-moving-webparts/</link>
		<comments>http://ericcwebb.com/2009/09/17/sharepoint-css-moving-webparts/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 14:33:27 +0000</pubDate>
		<dc:creator>Eric Webb</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://ericcwebb.com/?p=92</guid>
		<description><![CDATA[This issue has been bugging me for months.  On several sites that I&#8217;ve branded, I&#8217;ve add a DOCTYPE to the masterpage that indicates to the browser to render the pages in standards mode.  An unfortunate side effect of this occurs when you try to move webparts on a page: the little bar that [...]]]></description>
			<content:encoded><![CDATA[<p>This issue has been bugging me for months.  On several sites that I&#8217;ve branded, I&#8217;ve add a DOCTYPE to the masterpage that indicates to the browser to render the pages in standards mode.  An unfortunate side effect of this occurs when you try to move webparts on a page: the little bar that pops up that you drag to a new webpart zone is way off.  Like 200px off.  Fortunately, I found a solution from this <a href="http://neilmosafi.blogspot.com/2007/11/sharepoint-dragging-webparts-causes.html">website</a>. (which actually deals with a different issue, but it works for this too)</p>
<p>Just put this code in your masterpage or external .js file.  Make sure the code or link reference is the last thing in the <head> tag.</p>
<pre><code class="js">function MSOLayout_GetRealOffset(StartingObject, OffsetType, EndParent)
{
	var realValue=0;
	if (!EndParent) EndParent=document.body;
	for (var currentObject=StartingObject; currentObject &amp;&amp; currentObject !=EndParent
         &amp;&amp; currentObject != document.body; currentObject=currentObject.offsetParent)
	{
		var offset = eval('currentObject.offset'+OffsetType);
		if (offset) realValue+=offset;
	}
	return realValue;
}</code>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://ericcwebb.com/2009/09/17/sharepoint-css-moving-webparts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Virtual PC: Tab/Escape not working</title>
		<link>http://ericcwebb.com/2009/09/16/virtual-pc-tabescape-not-working/</link>
		<comments>http://ericcwebb.com/2009/09/16/virtual-pc-tabescape-not-working/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 14:53:55 +0000</pubDate>
		<dc:creator>Eric Webb</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://ericcwebb.com/?p=88</guid>
		<description><![CDATA[Today, all of the sudden the tab and escape keys stopped working in Virtual PC.  Had never happened before.  I reinstalled VM Additions, restarted the VM, nothing worked.  I then found the solution in a form post:
&#8220;If you are running into this issue on Vista and Windows 7 you can get the TAB key back [...]]]></description>
			<content:encoded><![CDATA[<p>Today, all of the sudden the tab and escape keys stopped working in Virtual PC.  Had never happened before.  I reinstalled VM Additions, restarted the VM, nothing worked.  I then found the solution in a form post:</p>
<blockquote><p><em>&#8220;<span>If you are running into this issue on Vista and Windows 7 you can get the TAB key back by creating a software allow policy. Go to administrative tools, local security policy, Software Restriction Policies, Additional Rules. Create a new rule for %appdata%\microsoft\vritual pc\vpckeyboard.dll and set it to Unrestricted. Restart Virtual PC.   If the variable doesn&#8217;t work, try using an explicit path i.e. c:\users\username\appdata\roaming\microsoft\virtualpc\vpckeyboard.dll&#8221;</span></em></p></blockquote>
<p>Did that and it started working.  Note in the post that this applies to Vista and Windows 7 only.  I&#8217;m running Windows 7 x64.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericcwebb.com/2009/09/16/virtual-pc-tabescape-not-working/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sharepoint Top Nav Dividers</title>
		<link>http://ericcwebb.com/2009/09/01/sharepoint-top-nav-dividers/</link>
		<comments>http://ericcwebb.com/2009/09/01/sharepoint-top-nav-dividers/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 20:49:10 +0000</pubDate>
		<dc:creator>Eric Webb</dc:creator>
				<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://ericcwebb.com/?p=80</guid>
		<description><![CDATA[ In a client project I&#8217;m working on, the design calls for dividers in between each navigation link.  No problem.  Here&#8217;s the CSS:
.ms-topnav a
{
	border-left-style:solid !important;
	border-left-color:#fff !important;
	border-left-width:1px !important;
	padding: 0 10px 0 10px;

}

However, this leaves the border on the first element of the navigation, which we don&#8217;t want.  There&#8217;s no way to select that [...]]]></description>
			<content:encoded><![CDATA[<p> In a client project I&#8217;m working on, the design calls for dividers in between each navigation link.  No problem.  Here&#8217;s the CSS:</p>
<pre><code class="css">.ms-topnav a
{
	border-left-style:solid !important;
	border-left-color:#fff !important;
	border-left-width:1px !important;
	padding: 0 10px 0 10px;

}</code>
</pre>
<p>However, this leaves the border on the first element of the navigation, which we don&#8217;t want.  There&#8217;s no way to select that element using just CSS, so JQuery to the rescue:</p>
<pre><code class="js">$(document).ready(function(){

	$(".ms-topNavContainer").each(function() {

        var links = $(this).find("a");

        if (links.length &gt; 0) {
            var link = links[0];
            $(link).addClass("navLast");
        }

    });

});</code>
</pre>
<p>The CSS for &#8220;navLast&#8221;:</p>
<pre><code class="css">a.navLast
{
	border-left-style:none !important;
}</code>
</pre>
<p>The interesting thing here is that it has to be &#8220;a.navLast&#8221;.  For some reason, &#8220;.navLast&#8221; doesn&#8217;t work.  Also, you can&#8217;t use &#8220;border-left&#8221; to add the dividers.  You have to use the individual styles (most likely because of the inline styles on the element).</p>
]]></content:encoded>
			<wfw:commentRss>http://ericcwebb.com/2009/09/01/sharepoint-top-nav-dividers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sharepoint base css</title>
		<link>http://ericcwebb.com/2009/08/25/sharepoint-base-css/</link>
		<comments>http://ericcwebb.com/2009/08/25/sharepoint-base-css/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 20:35:34 +0000</pubDate>
		<dc:creator>Eric Webb</dc:creator>
				<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://ericcwebb.com/?p=72</guid>
		<description><![CDATA[Here&#8217;s a simple stylesheet that I&#8217;m going to start using as a basis for customizing all of my Sharepoint team sites.

/* Top Bar */
.ms-globalbreadcrumb
{
	background-color:#7caf72;
}

/* Header */
.ms-globalTitleArea
{
	background:none !important;
}

/* Navigation */
.ms-bannerContainer, .ms-pagemargin, .ms-navframe, .ms-leftareacell
{
	background:none !important;
}
.ms-nav
{
	background-image:none !important;
}
.ms-topnavContainer, .ms-topnavselected, .ms-topnav {
	border: none;
	background: none;

}

table.ms-topnavselected, table.ms-topnav {
	height: 30px;
	margin-left: 1px;
	margin-right: 1px;
}
.ms-topnavContainer div
{
	background-color:transparent !important;	
}
.ms-topNavFlyOuts, .ms-topNavFlyOuts a:link
{
	background-color:transparent !important;
}
/* Body */
body {
	text-align: center; 
	margin: 0px [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a simple stylesheet that I&#8217;m going to start using as a basis for customizing all of my Sharepoint team sites.</p>
<p><img class="aligncenter size-medium wp-image-73" title="CleanCSS" src="http://ericcwebb.com/wp-content/uploads/2009/08/CleanCSS-300x150.PNG" alt="CleanCSS" width="300" height="150" /></p>
<pre><code class="css">/* Top Bar */
.ms-globalbreadcrumb
{
	background-color:#7caf72;
}

/* Header */
.ms-globalTitleArea
{
	background:none !important;
}

/* Navigation */
.ms-bannerContainer, .ms-pagemargin, .ms-navframe, .ms-leftareacell
{
	background:none !important;
}
.ms-nav
{
	background-image:none !important;
}
.ms-topnavContainer, .ms-topnavselected, .ms-topnav {
	border: none;
	background: none;

}

table.ms-topnavselected, table.ms-topnav {
	height: 30px;
	margin-left: 1px;
	margin-right: 1px;
}
.ms-topnavContainer div
{
	background-color:transparent !important;	
}
.ms-topNavFlyOuts, .ms-topNavFlyOuts a:link
{
	background-color:transparent !important;
}
/* Body */
body {
	text-align: center; 
	margin: 0px auto;
}
body.ms-BuilderBackground {
    text-align: left !important;}
.ms-main
{	
    background: #fff;  
    width: 1020px !important;
    height: 100%; 
    margin: 0px auto !important;	
    border-bottom:10px #7caf72 solid;
}
table.ms-main 
{
	text-align: left;
}
/* Gets rid of default light blue background everywhere */
.ms-pagemargin, .ms-nav, .ms-pagebottommargin, .ms-pagebottommarginleft, 
.ms-pagebottommarginright, td.ms-rightareacell div.ms-pagemargin, .ms-titlearealeft,
.ms-titlearearight, .ms-titleareaframe, .ms-pagetitleareaframe, 
.ms-pagetitleareaframe TABLE, .ms-bodyareapagemargin, .ms-bodyareaframe, 
.ms-areaseparatorright, .ms-areaseparatorleft
{
	background: transparent !important;
	border: none;
}

.ms-pagebreadcrumb a {
	background-color: transparent;
	color:#fff;
}</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://ericcwebb.com/2009/08/25/sharepoint-base-css/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows 7/Server 2008 R2 Boot to VHD</title>
		<link>http://ericcwebb.com/2009/08/19/windows-7server-2008-r2-boot-to-vhd/</link>
		<comments>http://ericcwebb.com/2009/08/19/windows-7server-2008-r2-boot-to-vhd/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 20:00:18 +0000</pubDate>
		<dc:creator>Eric Webb</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://ericcwebb.com/?p=70</guid>
		<description><![CDATA[Found this great tutorial on creating bootable, sysprep&#8217;d VHD&#8217;s on the fly here.
I plan on trying this out later this week and posting my findings.
]]></description>
			<content:encoded><![CDATA[<p>Found this great tutorial on creating bootable, sysprep&#8217;d VHD&#8217;s on the fly <a href="http://www.pkguild.com/2009/08/rtm-weekend-win7-2008-r2-boot-from-vhd-and-more/">here</a>.</p>
<p>I plan on trying this out later this week and posting my findings.</p>
]]></content:encoded>
			<wfw:commentRss>http://ericcwebb.com/2009/08/19/windows-7server-2008-r2-boot-to-vhd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Big javascript post</title>
		<link>http://ericcwebb.com/2009/06/16/big-javascript-post/</link>
		<comments>http://ericcwebb.com/2009/06/16/big-javascript-post/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 20:48:46 +0000</pubDate>
		<dc:creator>Eric Webb</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://ericcwebb.com/?p=62</guid>
		<description><![CDATA[All of this javascript goodness became useful while I was using jquery to call Sharepoint web services, specifically after I wrapped all of the functionality into a class.
1.  Context &#8211; this issue arose while using jquery&#8217;s .ajax() method as so:
$.ajax({
            url: "../_vti_bin/lists.asmx",
   [...]]]></description>
			<content:encoded><![CDATA[<p>All of this javascript goodness became useful while I was using jquery to call Sharepoint web services, specifically after I wrapped all of the functionality into a class.</p>
<p>1.  Context &#8211; this issue arose while using jquery&#8217;s .ajax() method as so:</p>
<pre><code class="csharp">$.ajax({
            url: "../_vti_bin/lists.asmx",
            type: "POST",
            dataType: "xml",
            data: soapEnv,
            complete: this.processResult,
            contentType: "text/xml; charset=\"utf-8\""
        });</code></pre>
<p>I kept getting an error saying it couldn&#8217;t find the processResult() function.  Turns out the &#8220;this&#8221; keyword wasn&#8217;t returning the context of the class.  Instead, it was returning the context of the ajax() function call.  After searching the intrawebs, I came accross this <a href="http://knol.google.com/k/jason/jquery-callback-contexts/">article</a>.  So, by adding the code and changing &#8220;this.processResult&#8221; to &#8220;$.context(this).callback(&#8216;processResult&#8217;)&#8221; the problem was solved.</p>
<p>1A.  Context and Recursion &#8211; this issue occurred while using a recursive function to write out a menu with child elements.  Once again, this worked fine until I put everything into a class.  However, once I did that, I started getting some weird issues with my for loop.  The counter would increment twice while the recursive call was made.  I wasn&#8217;t able to figure this one out, so I just unrolled the function.</p>
<p>2.  Array sorting (mostly for my benefit) &#8211; a cool way to sort an xml array in descending order:</p>
<pre><code class="csharp">this.sortRows = function(a, b){
        return ($(a).attr("columnName") - $(b).attr("columnName"))
    }</code></pre>
<p>Then call the function like this:</p>
<pre><code class="csharp">array.sort(this.sortRows);</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://ericcwebb.com/2009/06/16/big-javascript-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
