<?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>The SharePoint Mechanic</title>
	<atom:link href="http://www.sharepointmechanic.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.sharepointmechanic.com</link>
	<description>Fixing what doesn&#039;t work for me one thing at a time!</description>
	<lastBuildDate>Thu, 10 Jun 2010 08:03:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SharePoint, Data Security and Privacy Information. Why should it matter to you?</title>
		<link>http://www.sharepointmechanic.com/?p=454</link>
		<comments>http://www.sharepointmechanic.com/?p=454#comments</comments>
		<pubDate>Thu, 10 Jun 2010 08:03:33 +0000</pubDate>
		<dc:creator>jsimcox</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sharepointmechanic.com/?p=454</guid>
		<description><![CDATA[<p>According to the <a href="http://www.idtheftcenter.org/index.html">Identity Theft Resource Center (ITRC)</a> since 2005 there have been approximately 2,342 data security breaches affecting 479,550,937 records. These breaches took both paper and electronic form and were the result of a broad range of actions including hacking, physical theft, disgruntled employees, and accidental exposure just to name a few. In <p>Continue reading <a href="http://www.sharepointmechanic.com/?p=454">SharePoint, Data Security and Privacy Information. Why should it matter to you?</a></p>]]></description>
			<content:encoded><![CDATA[<p>According to the <a href="http://www.idtheftcenter.org/index.html">Identity Theft Resource Center (ITRC)</a> since 2005 there have been approximately 2,342 data security breaches affecting 479,550,937 records. These breaches took both paper and electronic form and were the result of a broad range of actions including hacking, physical theft, disgruntled employees, and accidental exposure just to name a few. In just 5 months this year there have been 264 breaches exposing 7,004,405 records. Scary, and interesting to be sure but I bet you&#8217;re sitting there asking yourself either; &#8220;What difference does this make to me?&#8221; or &#8220;Why should I care?&#8221; Well friends and neighbors that&#8217;s what we&#8217;re going to talk about today.
</p>
<p>First of all let&#8217;s start out by defining what a data breach is. According to the ITRC a breach is defined as an event in which an individual name plus Social Security Number (SSN), driver&#8217;s license number, medical record or financial information/credit/debit card is <strong>potentially</strong> put at risk in either electronic or paper format. (ref &#8211; <a href="http://www.idtheftcenter.org/artman2/publish/lib_survey/ITRC_2008_Breach_List.shtml">ITRC &#8211; Data Breaches</a>) The information I have just listed is often known as Personal Information (PI) or in the environment I support Personally Identifiable Information (PII).
</p>
<p>Ok, we know what a data breach is now, but so what? If you look at the list of breaches you don&#8217;t see SharePoint mentioned anywhere so why should this matter to me?
</p>
<p>Here&#8217;s why……..
</p>
<p>On 01 March of this year the new Massachusetts data security law went into effect and the client, customer or company you support could be held financially responsible if your SharePoint farm is compromised. The gist of the new law is that if you are storing any type of PI/PII <strong>on an individual that resides in the state of Massachusetts</strong> within your system, regardless of where the databases are located, you are required to follow the guidelines as they have been set forth in 201 CMR 17.00. Fail to do so and suffer a breach where the <span style="text-decoration:underline"><strong>POTENTIAL</strong></span> for that information to be exposed exists and your client, customer or company risks being fined $5,000 per violation and record lost. Suppose you have 100 employees working for you in an office in Boston and your database server in Reston, VA gets hacked and you find that PI/PII related to those employees was potentially exposed, that&#8217;s only $500,000. You might want to touch up that resume!
</p>
<p>What steps does this new Massachusetts law require of you? Let&#8217;s take a quick look at a few of the stipulations as I understand them:
</p>
<ul>
<li>Companies must maintain a comprehensive Written Information Security Program (WISP) that includes technical, administrative and physical safeguards to protect any stored PI/PII.
</li>
<li>The WISP must be appropriate to the size of the business. Obviously the construction company down the road that has 20 guys working for it is going to have a WISP that is vastly different from the financial management company that has several thousand people working for it in downtown Boston.
</li>
<li>
<div>The law mandates encryption of all data in motion and at rest including on laptops, hard drives, smartphones, MP3 players, USB drives etc…
</div>
<ul>
<li>Data in motion – traveling across the network in case you were wondering.
</li>
<li>Data at rest – stored on some form of storage media.
</li>
</ul>
</li>
<li>There must be an individual or team that functions as the official data security coordinator.
</li>
<li>You are required to take normally accepted steps to secure your data; password protection, up to date anti-virus protection, firewalls, keep patches up to date on your server etc…
</li>
</ul>
<p>&#8220;So what!&#8221; you say, &#8220;We don&#8217;t have anyone in Massachusetts!&#8221; Maybe not, but as of this writing there are approximately 46 states that have data security breach related laws in place. Most of those revolve around what to do after the fact or after a data breach has been discovered. The new Massachusetts law is among the first to be proactive and address prevention as opposed to reaction. Conventional wisdom should lead us to believe that <strong><em>PREVENTING</em></strong> a breach would be considered a best practice as opposed to reacting to a breach after one has occurred. That being said it&#8217;s only a matter of time before states and/or the federal government wake up and see this fact for what it is and begin to move in that direction. I don&#8217;t know about you but I would like to be way ahead of that curve when it starts rolling down the road towards us.
</p>
<p>Lo and behold there are currently at least 3 bills on the floor of the Senate or House that cover the topic:
</p>
<ul>
<li><a href="http://thomas.loc.gov/cgi-bin/bdquery/z?d111:SN00139:@@@D&amp;summ2=m&amp;">S.139 Data Breach Notification Act</a>
		</li>
<li><a href="http://thomas.loc.gov/cgi-bin/bdquery/z?d111:HR02221:@@@D&amp;summ2=m&amp;">H.R.2221 Data Accountability and Trust Act</a>
		</li>
<li><a href="http://thomas.loc.gov/cgi-bin/bdquery/z?d111:SN01490:@@@D&amp;summ2=m&amp;">S.1490 Personal Data Privacy and Security Act of 2009</a>
		</li>
</ul>
<p>What has all of this got to do with SharePoint? Well, think about how your client, customer or company is using SharePoint. Are they doing any of the following?
</p>
<ul>
<li>
<div>Using SharePoint to manage internal job openings, applications and referrals.
</div>
<ul>
<li>Resumes and job applications are going to store personal contact information such as home address and phone numbers. These would be considered PI/PII
</li>
</ul>
</li>
<li>
<div>Using SharePoint for &#8220;Open Enrollment&#8221; and managing health or retirement benefits
</div>
<ul>
<li>Managing health and/or retirement benefits would generally require social security numbers of not only the employee but perhaps family members as well.
</li>
</ul>
</li>
<li>
<div>Managing Continuity of Operations efforts (COOP)
</div>
<ul>
<li>Contacts lists used in managing COOP efforts would generally require home phone numbers and/or addresses.
</li>
</ul>
</li>
<li>
<div>Allowing photographs to be associated with an individuals profile
</div>
<ul>
<li>Photographs are considered PI/PII because they associate a piece of information (the picture) with an individuals name.
</li>
</ul>
</li>
<li>
<div>Managing travel requests or maintaining travel profiles for employees.
</div>
<ul>
<li>Managing travel requests may require that credit card numbers, hotel rewards cards and frequent flyer miles be tracked. All of these would most likely include names, billing addresses, home phone numbers etc…
</li>
</ul>
</li>
<li>
<div>Human Resources functions
</div>
<ul>
<li>HR could possibly be your largest focal point of concern if you manage employee records, resumes, external recruiting, onboarding documents, etc…
</li>
</ul>
</li>
<li>
<div>Accounting
</div>
<ul>
<li>Payroll activities will include every piece of PI/PII you can imagine.
</li>
</ul>
</li>
<li>
<div>Contractor verification
</div>
<ul>
<li>If your client, customer or company does any kind of bidding on work you may have a system in place to evaluate potential partners and/or contractors. It&#8217;s a pretty good bet that the system will include resumes of people being considered for potential positions on the contract being bid on.
</li>
</ul>
</li>
</ul>
<p>This list could go on………and on……….and on……
</p>
<p>In reality this should all be part of your governance policy but it&#8217;s probably not something a lot of SharePoint Administrators think about because it either doesn&#8217;t occur to them, the organization they support hasn&#8217;t put a governance plan in place or they aren&#8217;t fully aware of what their SharePoint farm is being used for. Another thing to think about is this……….how many SharePoint Administrators are <span style="text-decoration:underline"><strong>COMPLETELY</strong></span> up to speed on how their SQL servers are configured, what the backup schedules/plans are, are the drives encrypted?
</p>
<p>Looking at how individual states are reacting as more and more data breaches occur and how it appears that the federal government is beginning to get involved and I think that it&#8217;s safe to say that it&#8217;s just a matter of time before we have laws in place at both the state and federal level that address data security from a prevention stand point as opposed to being reactionary as most current laws are now. As you move forward with planning your migration to SharePoint 2010 or are going through the yearly review, assessment and update of your policies (or lack thereof) this might be something you want to take into consideration.
</p>
<p>Some fast facts regarding data breaches between 2005 and 2009 (there were not a lot of statistics before 2007):
</p>
<ul>
<li>In 2009 74% of all data security breaches were electronic, 26% were paper.
</li>
<li>In 2009 of 498 reported breaches only 6 reported that they had encryption or other strong security features protecting the exposed data.
</li>
<li>In 2008 reports of breaches jumped almost 46%
</li>
<li>Financial, banking and credit sectors were the most proactive in terms of data.
</li>
<li>In the government/military sector breaches have dropped almost 50% between 2007 and 2009.
</li>
<li>In 2008 only 2.4% of all breaches had encryption or other strong security measures in place
</li>
<li>In 2008 only 8.5% of all breaches involved password protected systems.
</li>
</ul>
<div>
<table style="border-collapse:collapse" border="0">
<colgroup>
<col style="width:213px"/>
<col style="width:213px"/>
<col style="width:213px"/></colgroup>
<tbody valign="top">
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p><strong>Year</strong></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><strong># of Breaches</strong></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><strong>Effected Records</strong></p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2010</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center">264</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">7,004,405</span></p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2009</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center">498</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">223,146,989</span></p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2008</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center">656</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">35,691,255</span></p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2007</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center">446</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">127,717,243</span></p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2006</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center">321</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">19,137,844</span></p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p>2005</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center">157</p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center">66,853,201</p>
</td>
</tr>
<tr>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p><strong>Totals</strong></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><strong>2342</strong></p>
</td>
<td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><strong>479,550,937</strong></p>
</td>
</tr>
</tbody>
</table>
</div>
<p>
 </p>
<div>
<table style="border-collapse:collapse" border="0">
<colgroup>
<col style="width:258px"/>
<col style="width:58px"/>
<col style="width:69px"/>
<col style="width:66px"/>
<col style="width:66px"/>
<col style="width:66px"/>
<col style="width:60px"/></colgroup>
<tbody valign="top">
<tr style="height: 20px">
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black"><strong>Breach Type Percentages by category</strong></span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black"><strong>2005</strong></span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black"><strong>2006</strong></span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black"><strong>2007</strong></span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black"><strong>2008</strong></span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black"><strong>2009</strong></span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black"><strong>2010</strong></span></p>
</td>
</tr>
<tr style="height: 20px">
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: right"><span style="color:black">Govt/Military</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">13.40%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">30%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">24.50%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">16.80%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">18.10%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">N/A</span></p>
</td>
</tr>
<tr style="height: 20px">
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: right"><span style="color:black">Educational Institutions</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">47.80%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">28%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">24.70%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">20%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">15.70%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">N/A</span></p>
</td>
</tr>
<tr style="height: 20px">
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: right"><span style="color:black">General Businesses</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">15.90%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">21%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">29.30%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">36.50%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">41.10%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">N/A</span></p>
</td>
</tr>
<tr style="height: 20px">
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: right"><span style="color:black">Health Care Facilities</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">10.20%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">13%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">14.50%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">14.80%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">13.60%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">N/A</span></p>
</td>
</tr>
<tr style="height: 20px">
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: right"><span style="color:black">Banking/Financial</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">12.70%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">8%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">7%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">11.90%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">11.40%</span></p>
</td>
<td vAlign="bottom" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt">
<p style="text-align: center"><span style="color:black">N/A</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p>
 </p>
<p>
 </p>
<p>
 </p>
<p>
 </p>
<p>
 </p>
<p>
 </p>
<p>
 </p>
<p>
 </p>
<p>
 </p>
<p>
 </p>
<p>
 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointmechanic.com/?feed=rss2&amp;p=454</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 (RTM) Demo and Evaluation VHD Download</title>
		<link>http://www.sharepointmechanic.com/?p=450</link>
		<comments>http://www.sharepointmechanic.com/?p=450#comments</comments>
		<pubDate>Wed, 19 May 2010 05:09:45 +0000</pubDate>
		<dc:creator>jsimcox</dc:creator>
				<category><![CDATA[General Info]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.sharepointmechanic.com/?p=450</guid>
		<description><![CDATA[<p>Back in February I posted links to the Microsoft downloads for the VHD&#8217;s for the beta version of SharePoint 2010. Microsoft has updated those to the RTM bits and made them available for download at the following URL:</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=751fa0d1-356c-4002-9c60-d539896c66ce&#38;displaylang=en">Download the 2010 Information Worker Demonstration and Evaluation Virtual Machine (RTM)</a></p>
<p>On the page there are actually 2 <p>Continue reading <a href="http://www.sharepointmechanic.com/?p=450">SharePoint 2010 (RTM) Demo and Evaluation VHD Download</a></p>]]></description>
			<content:encoded><![CDATA[<p>Back in February I posted links to the Microsoft downloads for the VHD&#8217;s for the beta version of SharePoint 2010. Microsoft has updated those to the RTM bits and made them available for download at the following URL:</p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=751fa0d1-356c-4002-9c60-d539896c66ce&amp;displaylang=en">Download the 2010 Information Worker Demonstration and Evaluation Virtual Machine (RTM)</a></p>
<p>On the page there are actually 2 downloads.</p>
<p>Virtual machine &#8220;A&#8221; contains the following installed software:</p>
<ul style="margin-left: 38pt;">
<li>Server 2008 R2 Standard Evaluation Edition x64 (running AD, DNS, WINS)</li>
<li>SQL Server 2008 R2 Enterprise (includes analysis, notification and reporting services)</li>
<li>Office Communications Server 2007 R2</li>
<li>Visual Studio 2010</li>
<li>SharePoint Server 2010 Enterprise Edition</li>
<li>Office Web Applications</li>
<li>FAST Search for SharePoint 2010</li>
<li>Project Server 2010</li>
<li>Visio 2010</li>
<li>Project 2010</li>
<li>Office Communicator 2007 R2</li>
</ul>
<p>Virtual machine &#8220;B&#8221; contains the following installed software:</p>
<ul>
<li>Server 2008 R2 Standard Evaluation Edition x64 (joined to VM A&#8217;s domain)</li>
<li>Exchange Server 2010</li>
</ul>
<p>The evaluation period is 180 days and servers WILL require activation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointmechanic.com/?feed=rss2&amp;p=450</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementing a Custom Navigation Scheme across Multiple Site Collections for the “Non-Developer”</title>
		<link>http://www.sharepointmechanic.com/?p=439</link>
		<comments>http://www.sharepointmechanic.com/?p=439#comments</comments>
		<pubDate>Tue, 11 May 2010 04:27:24 +0000</pubDate>
		<dc:creator>jsimcox</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Non-Developer]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://www.sharepointmechanic.com/?p=439</guid>
		<description><![CDATA[<p>Recently I was fortunate enough to have submissions to SharePoint Saturday in Atlanta and Huntsville accepted. What follows is basically a written version of those presentations. I had started this some time back and had never gotten around to finishing it and because I bricked recording the session in Atlanta and couldn&#8217;t record in Huntsville <p>Continue reading <a href="http://www.sharepointmechanic.com/?p=439">Implementing a Custom Navigation Scheme across Multiple Site Collections for the “Non-Developer”</a></p>]]></description>
			<content:encoded><![CDATA[<p>Recently I was fortunate enough to have submissions to SharePoint Saturday in Atlanta and Huntsville accepted. What follows is basically a written version of those presentations. I had started this some time back and had never gotten around to finishing it and because I bricked recording the session in Atlanta and couldn&#8217;t record in Huntsville I figured the least I could do was to set it all out in writing. Interestingly enough Peter Allen posted a great <a href="http://www.endusersharepoint.com/2010/05/06/sharepoint-a-global-navigation-solution-across-site-collections/">ARTICLE</a> on the same subject with a different solution, think of this article as the &#8220;non-developers&#8221; counterpoint.</p>
<p>Microsoft has made great improvements in the SharePoint suite of products over the last several years. There is one area however that needs to be improved that they seem to be ignoring for some reason. I know that making dramatic improvements in SharePoint navigation isn&#8217;t as sexy as bringing in better permissions management, more robust reporting, new services that leverage Access, Excel and Visio but the fact of the matter is if your navigation sucks or is difficult to use your users will do all they can to get out of using your shiny new SharePoint portal no matter what version it is and what other features it may offer.</p>
<p>If you&#8217;re like me and are a true &#8220;Non-Developer&#8221; you have may have taken the time to do some reading and research regarding &#8220;Web Usability&#8221;. One of the keys that I have seen in both the books I have read and websites I have viewed is setting up a navigation scheme or structure that is consistent across the breadth and depth of your site. I personally think that this should apply to SharePoint as well and Microsoft has let us all down by not addressing the ability to easily implement a consistent navigation structure across multiple site collections.</p>
<p>Note that I said <strong><em>&#8220;easily&#8221;</em></strong>! If you have an architecture that has site collections with nothing but sites under the top level you could probably claim that you were able to easily set up a consistent navigation scheme. But what about those architectures that have a site collection at the top level and then have a mixture of sites and site collections that falls underneath that top level? It isn&#8217;t so easily done then.</p>
<p><span style="font-size: 12pt;"><strong>The Problem<br />
</strong></span></p>
<p>You have built out your environment following best practice guidelines to keep your content databases under 100GB by implementing multiple site collections. Unfortunately as part of your architecture you have identified a number of functional areas that really don&#8217;t have a requirement to be a site collection but that should fall under a top, or secondary, level site collection that might have multiple sub site collections under it. Consider the following example:</p>
<p>Your architecture consists of 4 top level &#8220;containers&#8221; (besides the Home site) each of which is a site collection. They are:</p>
<ul>
<li>Offices &#8211; This site collection consists of your corporate offices and it is pretty much a given that all the users in this group are going to use SharePoint for is calendars, some tasking and minimal document management. There is no way that any of the sites under the offices site collection will need to be a separate site collection.</li>
<li>Divisions &#8211; This site collection consists of your organizations divisional offices. In the course of the requirements gathering process you have determined that at least two divisions are going to heavily use SharePoint and that there is the potential for a large amount of content to be generated in the sites for those divisions. On the flip side of that you also determine that at least two divisions will not use SharePoint heavily and can be housed as sub sites of the Divisions site collection.</li>
<li>Products &#8211; This division is designed to support the business process surrounding your company&#8217;s products. Two products will generate a great deal of content for storage in SharePoint while two products are no longer in production and the sites supporting them will be used only for sustainment purposes and thus will not generate a significant amount of content.</li>
<li>Support – This site collection is designed to house 3 support locations for your company only one of which, Graphics Support, will generate a significant amount of content and will require its own site collection.</li>
</ul>
<p>So how do you build a navigational scheme that works across all site collections, sites and sub sites that is consistent?</p>
<p>That&#8217;s the situation I recently ran into and while the initial answer sounded pretty simple, build a custom site navigation solution; this was anything but the case (well for me anyway). There&#8217;s a lot of information on the internet about doing this but most of it is either incomplete, assumes you know something you don&#8217;t or requires programming/scripting skills (something I do not have).</p>
<p>What follows is documentation of how I solved this problem. I will:</p>
<ol>
<li>Lay out the framework of the solution I came up with.</li>
<li>Identify to you the drawbacks of this solution.</li>
<li>Identify to you the benefits of this solution.</li>
<li>Provide step-by-step instructions on how to replicate my solution complete with screenshots.</li>
</ol>
<p><span style="font-size: 12pt;"><strong>The Solution<br />
</strong></span></p>
<p>When I started looking into solutions for the problem I was facing I came up with three potential choices:</p>
<ol>
<li>
<div>Configure navigation manually – there are at least 2 disadvantages to this choice:</div>
<ol>
<li>The sheer amount of administrative overhead involved.</li>
<li>Designed behavior on the part of SharePoint where in those sites where you have the Publishing feature activated SharePoint will display a tab for the site you are working in to the direct left of the home tab in your global navigation tabs. You can hide that using CSS but you really shouldn&#8217;t have to worry with it.</li>
</ol>
</li>
<li>Write custom code to leverage an external data source – if you&#8217;re a developer or have scripting skills this would be the way to go. A couple of the most obvious data sources to use would be a SQL database or a SharePoint list. Personally I think if you leverage the SharePoint list you&#8217;ll find that managing your site navigation might be simpler because you could delegate the ability to add sites to your site administrators.</li>
<li>Create a custom XMLSiteMapProvider – this is the solution I have come up. We will use a custom site navigation provider that reads the portal structure from an XML file stored in the _app_bin folder and renders that structure to a custom master page.</li>
</ol>
<p>The steps we are going to follow to implement our solution are:</p>
<ol>
<li>Create an XML sitemap file.</li>
<li>Edit the web.config file of our website to enable the use of our new sitemap.</li>
<li>Make 5 changes to the default.master page of our site collection.</li>
<li>Create a custom feature that will allow us to activate our customized master page on any site collection in our farm.</li>
</ol>
<p><span style="font-size: 12pt;"><strong>The Drawbacks<br />
</strong></span></p>
<p>As with any solution or fix there are going to be drawbacks, some of the most obvious drawbacks to the solution I am proposing follow below:</p>
<ol>
<li>Links in the navigation menus are not security trimmed.</li>
<li>The sitemap file is not dynamic. Anytime you make a structural change to your portal (add a new site or site collection you want included in the navigation scheme) you&#8217;ll need to update the sitemap file manually. In environments where there is rigid configuration management controls in place this could be problematic.</li>
<li>Implementation of this solution requires access to your SharePoint web front ends. This may also be an issue in those environments where access is tightly controlled.</li>
<li>The web.config file for the web application you are applying the solution to will have to be modified. If you have multiple front ends or have extended your web application you will have to maintain multiple instances of the file.</li>
<li>Customizations will not apply to pages in the /_layouts/ directory which uses application.master rather than default.master. Modifying application.master is <span style="text-decoration: underline;"><strong>NOT</strong></span> supported by Microsoft.</li>
<li>This solution is not exceptionally scalable. It works well for those environments where you might have 20 – 30 site collections.</li>
</ol>
<p><span style="font-size: 12pt;"><strong>The Benefits<br />
</strong></span></p>
<p>As there are drawbacks there are also benefits to any proposed solution:</p>
<ol>
<li>One consistent navigation scheme across your site collections and sites.</li>
<li>No .dll to be deployed to the GAC.</li>
<li>Minimal coding.</li>
<li>Can be extended to modify the quick launch.</li>
<li>Navigation the way you want it and not the way that SharePoint thinks you should get it.</li>
</ol>
<p>You&#8217;ll have to determine if this solution is viable for your environment and/or skill set.</p>
<p><span style="font-size: 12pt;"><strong>Step-by-Step Instructions<br />
</strong></span></p>
<p><strong>Create the XML sitemap file.<br />
</strong></p>
<p>The sitemap file is simply an XML file that consists of three components; an xmlns reference, a group of sitemap nodes or elements and within each node (element) several attributes.</p>
<p>Let&#8217;s take a look at the components of the sitemap file:</p>
<ol>
<li>siteMap xmlns – a reference to the sitemap schema at Microsoft.com. This file defines the elements that can appear in the sitemap file and the attributes that can be associated with those elements.</li>
<li>
<div>siteMapNode – the siteMapNode defines the navigational element, tab, dropdown or flyout, of your SharePoint architecture.</div>
<ol>
<li>Keep in mind that like HTML all of your XML elements must be &#8220;closed&#8221; for example where you have a &lt;siteMapNode&gt; you must also have a &lt;/siteMapNode) closing element somewhere in the file.</li>
</ol>
</li>
<li>
<div>Element attributes:</div>
<ol>
<li>Title – kind of obvious that this would be necessary. This will be the test of your link in the tab, dropdown or flyout(s) of your navigation.</li>
<li>Description – optional and it would probably be good to include attribute. Briefly describing the site here would be beneficial to any person assuming your duties at some point in time.</li>
<li>URL – required, relative url&#8217;s do work here and using them to me would be a best practice. I try and use relative url&#8217;s anywhere I can as a matter of practice.</li>
</ol>
</li>
</ol>
<p>The following screenshot shows a portion of my siteMap code. I have provided a .zip file at the end of this article that contains the siteMap file as well as all other components of the solution.</p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/051110_0427_Implementin1.jpg" alt="" /></p>
<p>Save the file as mainMenu.sitemap in the _app_bin/ folder of Inetpub on your SharePoint server. You could also store the file in the _layouts/1033 folder in the 12 hive if you so desired.</p>
<p><span style="font-size: 12pt;"><strong>Adding a child node to your navigation scheme.<br />
</strong></span></p>
<p><span style="font-size: 12pt;">Inevitably somewhere along the line you are going to add another site collection or site to your farm that also needs to be added to your navigation scheme. As I mentioned one of the drawbacks to this solution is that is not dynamic. So it will be necessary to edit the sitemap file you&#8217;ve created and add a reference to your new site collection or site.<br />
</span></p>
<ol>
<li><span style="font-size: 12pt;">Start by finding the parent node in your sitemap file.<br />
</span></li>
<li><span style="font-size: 12pt;">Remove the trailing forward slash in the siteMapNode element<br />
</span></li>
<li><span style="font-size: 12pt;">Add a child element directly under the parent.<br />
</span></li>
<li><span style="font-size: 12pt;">Close the child node siteMapNode element with closing forward slash /&gt;<br />
</span></li>
</ol>
<p><span style="font-size: 12pt;">For example if I wanted to add a site for Requisitions under my purchasing Department node I would alter my code as follows:<br />
</span></p>
<p><span style="font-size: 12pt;"><strong>Before<br />
</strong></span></p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/051110_0427_Implementin2.jpg" alt="" /><span style="color: blue; font-family: Courier New; font-size: 10pt;"><br />
</span></p>
<p><strong>After<br />
</strong></p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/051110_0427_Implementin3.jpg" alt="" /><strong><br />
</strong></p>
<p>Don&#8217;t forget, it is absolutely critical that you close the child node siteMapNode with the trailing forward slash as shown in the screen shot.</p>
<p>Now that the sitemap file has been created where to store it? By default SharePoint uses a layouts.sitemap file that is stored in the _app_bin folder of your SharePoint servers virtual directory in Inetpub. That is where we are going to store our custom sitemap file. I have seen where some people will store their custom sitemap file in the _layouts\1033 folder. This will work as well as the _app_bin folder. I have looked to see if I could find the benefits of one over the other but couldn&#8217;t find any kind of concrete evidence that would lead me to believe that one option was significantly better than the other. Maybe one of the web folks here could chime in with their .02 on that.</p>
<p><span style="font-size: 12pt;"><strong>Edit the web.config to reference our custom sitemap<br />
</strong></span></p>
<p>With our sitemap file created and saved to the appropriate location we&#8217;ll move on to adding a single line of code to the web.config file of our SharePoint server. This line of code will tell SharePoint the name of our custom sitemap, where to find it, what &#8220;type&#8221; or class the custom sitemap provider is using, what version, the culture, and the PublicKeyToken.</p>
<p>Locate the web.config file in the virtual directory of your SharePoint server and take the following steps <span style="text-decoration: underline;"><strong>BEFORE</strong></span> you do anything else.</p>
<ol>
<li>Right click the web.config and copy the file.</li>
<li>Right click and paste your copy of the web.config back into the virtual directory. This will create a file named &#8220;Copy of web.config&#8221;</li>
</ol>
<p> </p>
<p>Open the web.config with either Notepad, Visual Studio or Notepad++. Never, ever, use Wordpad to edit the web.config. Wordpad has a lamentable tendency to replace certain characters in your web.config with question marks (?) which tens to break things and can be extremely frustrating and time consuming to fix.</p>
<ol>
<li>Find the siteMap node in the web.config. It should be about line 156 and will identfiy the default siteMap provider of your SharePoint portal.</li>
<li>Directly under the &lt;siteMap defaultProviders line you&#8217;ll see a &lt;providers&gt; node. Just before the &lt;/providers&gt; closing tag add the following line of code</li>
</ol>
<p> </p>
<p>        &lt;add name=&#8221;CustomXmlContentMapProvider&#8221; siteMapFile=&#8221;_app_bin/mainMenu.sitemap&#8221; type=&#8221;Microsoft.SharePoint.Navigation.SPXmlContentMapProvider, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&#8221; /&gt;</p>
<ol>
<li>Save your changes.</li>
<li>Restart IIS.</li>
</ol>
<p> </p>
<p>The line we are adding tells SharePoint that there is another sitemap provider available, it&#8217;s name, and where the sitemap file is located.</p>
<p><span style="font-size: 12pt;"><strong>Create the custom master page<br />
</strong></span></p>
<p>We need to create a custom master page that will allow us to leverage our custom sitemap provider and to display flyouts off of our drop downs in the global navigation tabs. Note that I did not say &#8220;make modifications to the default.master&#8221;. Best practice; never edit the default.master, make a copy and make your changes there. This is what we are going to do.</p>
<ol>
<li>Open your SharePoint site using SharePoint Designer.</li>
<li>Navigate to the default.master page. The path is _catalogs/masterpage/. If, for some reason, one or both of these folders are empty you&#8217;ll need to refresh the view. In the toolbar click &#8220;View&#8221; and then &#8220;Refresh&#8221;.</li>
<li>Find the default.master and right click &gt; copy</li>
<li>Make sure that you do not have a folder highlighted and then right click &gt; paste into the masterpage directory. You should now see a file named &#8220;default_copy(1).master&#8221;.</li>
<li>Double click the new file to open it. If you are prompted to check it out click OK to do so.</li>
<li>
<div>We are going to make 5 changes to this file.</div>
<ol>
<li>Switch to code view</li>
<li>Find the SharePoint:AspMenu element in the page. In my page it was about line 113.</li>
<li>Change the &#8220;DataSourceID to &#8220;mainMenu&#8221; which was the name I saved my sitemap file as. Note that you do not include a file extension here.</li>
<li>Next find the MaximumDynamicDisplayLevels element and change it from the default of 1 to 4. This will allow you to display links 4 levels deep. Be aware that taking your navigation too many levels deep can adversely effect your servers performance.</li>
<li>Next find and copy the &#8220;SharePoint:DelegateControl&#8221; node. Paste the code you&#8217;ve copied directly under the &lt;/SharePoint:DelegateControl&gt; closing tag.</li>
<li>
<div>In the code you just pasted in change the following 3 items.</div>
<ol>
<li>Change the ControlId to CustomNavigationDataSource</li>
<li>Change the SiteMapProvider to CustomXmlContentMapProvider</li>
<li>Change the id to mainMenu</li>
</ol>
</li>
</ol>
</li>
<li>
<div>Save the file to your desktop. I chose to call it MyCustom.master</div>
<p style="margin-left: 63pt;"> </p>
</li>
</ol>
<p> </p>
<p>The following 2 screenshots show the changes along with notes.</p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/051110_0427_Implementin4.jpg" alt="" /></p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/051110_0427_Implementin5.jpg" alt="" /></p>
<p><span style="font-size: 12pt;"><strong>Create the feature to implement our custom master page<br />
</strong></span></p>
<p>Lastly we are going to create the custom feature necessary to push the custom master page we just created across our site collections. A feature is simply a small piece of codethat adds additional functionality to SharePoint. The feature consists of at least 2 xml files, feature.xml and elements.xml, our feature will also include a folder called MasterPages.</p>
<p>Take the following steps to create your feature;</p>
<ol>
<li>Navigate to the features folder in the 12 hive of your SharePoint server \12\template\features\</li>
<li>Create a new folder in the features folder. Call it CustomMasterPage</li>
<li>Within your new CustomMasterPage folder create another folder named MasterPages and add the MyCustom.master master page you just created to it.</li>
<li>
<div>Using your text editor of choice create the feature.xml file and add the following:</div>
<ol>
<li>Feature Id – this is a GUID or Global Unique Identifier. This can be done using Visual Studio or if you don&#8217;t have VS you can use GUIDGen.com. Each feature MUST have a UNIQUE identifier.</li>
<li>Title – &#8220;Custom Master Pages&#8221; this is the title of your feature and is what you&#8217;ll see in the site collection features list.</li>
<li>Description – do yourself a favor and add a description so you know exactly what this feature is being used for.</li>
<li>Version – the SharePoint version in this case 12.0.0.0</li>
<li>Scope – this is the scope that the feature will be deployed at. It could be Farm (the entire farm), Site (this is the Site Collection level) or Web (the site level). We&#8217;ll do &#8220;Site&#8221;</li>
<li>Hidden – is the feature hidden or viewable by site collection and farm administrators. You could hide it and activate using stsadm if you wanted to. We are going to leave it viewable.</li>
<li>DefaultResourceFile – my understanding that this attribute references the core.css file</li>
<li>Xmlns – what xml schema is being used.</li>
<li>ElementsManifest – the location of the Elemnts.xml file we will create in the next step.</li>
</ol>
</li>
<li>
<div>Using your text editor of choice create the feature.xml file and add the following:</div>
<ol>
<li>ModuleName – the ModuleName element allows you to add one or more files to a SharePoint website</li>
<li>URL – where the fileis going to be added, in this case _catalogs/masterpage</li>
<li>Path – the location where the file is located within the file system</li>
<li>RootWebOnly – should the file or page only be available in the root SharePoint site. In this case no.</li>
<li>File Url – your filename in this case MyCustom.master</li>
<li>Type – GhostableInLibrary this specifies that SharePoint store the file in a Document Library.</li>
</ol>
</li>
<li>
<div>Now that the files have been created you will need to use stsadm to install your new feature. From the command prompt run the following command:</div>
<ol>
<li>Stsadm –o installfeature –name custommasterpage</li>
<li>I always run an IIS reset as a matter of practice after I have done anything using stsadm.</li>
</ol>
</li>
</ol>
<p> </p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/051110_0427_Implementin6.jpg" alt="" /></p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/051110_0427_Implementin7.jpg" alt="" /></p>
<p>Provided that your fetaure has installed correctly when you go to your SharePoint site and navigate to the Site Collection Features link in your Adminitrative UI you should see &#8220;Custom Master Pages&#8221; as one of your features. Click the &#8220;Activate&#8221; button to activate the feature (you could do this using stsadm as well if you wanted to).</p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/051110_0427_Implementin8.jpg" alt="" /></p>
<p>After the fetaure has been activated go back to site settings and then click on Master page. Click the drop down and you should now see MyCustom.master as an option. Set both the Site Master and System Master pages to MyCustom.master and click &#8220;OK&#8221;.</p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/051110_0427_Implementin9.jpg" alt="" /></p>
<p>Navigate back to the main page of your site and you should now see your custom navigation.</p>
<p>Navigation before our changes</p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/051110_0427_Implementin10.jpg" alt="" /></p>
<p>Navigation after our changes</p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/051110_0427_Implementin11.jpg" alt="" /></p>
<p>And that&#8217;s all there is to it. Now someone is going to say that this isn&#8217;t really a &#8220;non-developer&#8221; solution, I would argue that to a certain extent. It&#8217;s just my opinion but every SharePoint Administrator should have the ability to write some basic XML and that&#8217;s really all we have done here. One note; don&#8217;t forget <strong>XML IS CASE SENSITIVE</strong> and are the cause of most of the errors I saw when working through this solution.</p>
<p>Now, is this the right solution for you? Well, I think the answer there is the standard SharePoint answer when you&#8217;re taking about capabilities or requirement solutions; &#8220;It all depends&#8221;. I think that for a small to medium environment that this solution would work well. If you&#8217;re managing a large environment that has several hundred site collections and/or sites I would strongly suggest you look into the solution that Peter covers in his article. My requirement was complicated by the fact that I am not allows to take code, scripts or any kind of .NET code, off the internet and implement it without going through a long drawn out vetting process. Add to that my obvious lack of programming skills and you see what I came up with.</p>
<p>I hope you&#8217;ve found this solution at least interesting and hopefully usefull. If you have any questions please don&#8217;t hesitate to ask!</p>
<p>As promised here is a link to a .zip file that has the custom master page, my feature files, the mainMenu.sitemap file and a copy of my web.config. While you can add my custom master page to your implementation don&#8217;t try to replace your web.config with mine. Use mine as a reference.</p>
<p><a href="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/SP-Saturday-Huntsville.zip">Consistent Navigation Files</a></p>
<p>Until the next time…</p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointmechanic.com/?feed=rss2&amp;p=439</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>MOSS 2007, CSS, and you, the Non-Developer – Part 7, Pulling It All Together</title>
		<link>http://www.sharepointmechanic.com/?p=403</link>
		<comments>http://www.sharepointmechanic.com/?p=403#comments</comments>
		<pubDate>Tue, 11 May 2010 03:11:26 +0000</pubDate>
		<dc:creator>jsimcox</dc:creator>
				<category><![CDATA[Branding]]></category>
		<category><![CDATA[Non-Developer]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.sharepointmechanic.com/?p=403</guid>
		<description><![CDATA[<p>We&#8217;ve walked through just about every part of the main page of a SharePoint site so now it&#8217;s time to bring it all together. In this article we&#8217;re going to discuss what best practices to follow, how .css files are applied in a SharePoint environment, some of the lessons I&#8217;ve learned along the way and <p>Continue reading <a href="http://www.sharepointmechanic.com/?p=403">MOSS 2007, CSS, and you, the Non-Developer – Part 7, Pulling It All Together</a></p>]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve walked through just about every part of the main page of a SharePoint site so now it&#8217;s time to bring it all together. In this article we&#8217;re going to discuss what best practices to follow, how .css files are applied in a SharePoint environment, some of the lessons I&#8217;ve learned along the way and look at where we started and our &#8220;finished&#8221; product. We&#8217;ll start out by going over some best practices for working with .css files both in general and in SharePoint.</p>
<p><span style="font-size: 12pt;"><strong>CSS Best Practices (includes reference links) </strong></span>– these lists are primarily intended for any classes of your own that you may add as part of a customization or for better organization of your custom CSS file. Some of these are simply common sense from my standpoint, some are from <a href="http://www.smashingmagazine.com">Smashing Magazine</a> and some are from Microsoft (references are noted).</p>
<p>From <a href="http://www.smashingmagazine.com/2007/05/10/70-expert-ideas-for-better-css-coding/">Smashing Magazine &#8211; 70 Expert Ideas for Better CSS Coding</a>:</p>
<ul>
<li>Organize your CSS-styles. You can do this using comment blocks or by breaking the style sheet down into 3 or 4 specific sections (Navigation, Body, Web Parts and Headers perhaps).</li>
<li>Keep style properties to a minimum. If you don&#8217;t need it and it&#8217;s already there remove it. If it isn&#8217;t there and you don&#8217;t need it don&#8217;t add it. This will be especially true in those classes where you have removed an image file. There will likely be additional properties that should be removed for efficiencies sake.</li>
<li>Use a common naming system for any classes you may add. Being consistent will make your life (or your successors) much easier somewhere down the road.</li>
<li>Where you&#8217;ve changed colors consider using &#8220;shorthand&#8221;. In CSS when you use a hexadecimal color notation you can write that notation in a more efficient manner by omitting every second digit. For example #000 is the same as #000000</li>
<li>Any CSS classes you add MUST be unique. It is also important to know that if you are styling a class your selector will start with a period, if you are styling an Id the selector will start with a # sign. An example would be if you were attempting to style the sblink class your selector would start as follows; .ms-sblink. If you were attempting to apply styling to a specific navigational tab in the globaltopnav your selector might start as follows; #zz1_TopNavigationMenu0.</li>
</ul>
<p>From <a href="http://msdn.microsoft.com/en-us/library/bb727371.aspx">Microsoft &#8211; How to Optimize a SharePoint Server 2007 WCM Site for Performance</a></p>
<ul>
<li>Elements should be positioned using CSS2 and not tables</li>
<li>All ornamental lines, borders, background colors and -images, underlines and other decorational elements should be rendered with CSS2.</li>
<li>Text should be formatted with CSS1, not with font tags.</li>
<li>All style sheets should be included in reusable, centrally maintainable, and cacheable external CSS files, not as redundant code within the HTML files.</li>
</ul>
<p>Simply common sense as I see it</p>
<ul>
<li>Never, <span style="text-decoration: underline;"><strong>ever</strong></span> make any changes to the core.css file. Either make or get a copy of the core.css and make your changes to the copy.</li>
<li>In your copy of the core.css any classes or Ids you are not making a change to should be removed. The core.css file is some 4300+ lines of code; you don&#8217;t want SharePoint to have to run through all that code twice. By removing anything that has not been edited from your custom.css file you will make the file more manageable for both SharePoint and yourself.</li>
<li>If you make a change add a comment documenting what the effect of the change is. This will help you as well as anyone that may take over for you while you are on vacation, travel or after you have moved on to other responsibilities. Aside from that most folks would consider doing so common courtesy, I know I would.</li>
<li>If you have more than one custom.css file come up with a naming convention for your CSS files and stick with it. I use <em>SiteName_Custom.css</em> for my custom CSS files.</li>
</ul>
<p>This is just a short list but you get the idea. We assume that Microsoft is following generally accepted best practices and make sure that any classes we add follow them as well. As I mentioned above I would strongly recommend organizing your CSS files if at all possible. I think you&#8217;ll find that it makes it much easier to locate a class you are looking for in the style sheet.</p>
<p><span style="font-size: 12pt;"><strong>How CSS Style Sheets are applied to a SharePoint Master Page<br />
</strong></span></p>
<p>This section is best described by Heather Solomon. Her write up is far better than anything I can put together. I&#8217;m going to add a short version of her breakdown on how styles are pulled into SharePoint and a link to her page at the end of this section. I <strong>strongly</strong> recommend taking a few minutes to read over, and understand it.</p>
<ul>
<li>If your master page links to a custom CSS file the custom file will be pulled before the core.css</li>
<li>If your master page links to a custom css file and core.css has been unghosted for the site the custom.css will be pulled after the core.css</li>
<li>If you specify your custom.css through the Administrative UI (Site Actions &gt; Site Settings &gt; Master Pages) your custom.css file will be pulled after the core.css. You should note that any styles defined in your custom.css that apply to _layout pages will be applied successfully.</li>
<li>Any styles listed or linked to in the PlaceHolderAdditionalPageHead ASP content placeholder will get pulled after the core.css file. There are problems to be noted per Heathers article about using this approach.</li>
<li>Styles listed in the master page file (not linked to but actually listed out in a set of STYLE tags) will be pulled after all css files including the core.css</li>
<li>Any master pages deployed via a feature will pull the core.css after your custom.css file.</li>
<li>Note that inline styles (styles embedded into the master page) will override any other CSS.</li>
</ul>
<p><a href="http://www.heathersolomon.com/blog/archive/2006/10/27/sp07cssoptions.aspx">Heather Solomon &#8211; CSS Options with Master Pages</a></p>
<p><span style="font-size: 12pt;"><strong>How can you apply your custom.css file?<br />
</strong></span></p>
<p>There are a number of different ways to apply your custom.css file. One other thing you will have to take into consideration is where do you want to store your CSS files? As with anything else we have done there will be advantages and drawbacks to whichever option you choose, you&#8217;ll have to decide which option best fits your environment.</p>
<ul>
<li>Reference your custom.css via a link in the master page also known in some circles as &#8220;relative CSS&#8221;. The obvious drawback here is that you will be customizing your master page. That may, or may not, be allowable in your environment. One thing to take into consideration here would be how many different custom.css files are you deploying? If it&#8217;s a significant number this might not be an option you want to consider.</li>
<li>
<div>Reference your custom.css file through the Master pages setting of the Administrative UI. There is a mix of advantages and drawbacks to using this method. For me the advantages outweighed the drawbacks and this was the method I chose for my most recent deployment.</div>
<ul>
<li>
<div>Advantages</div>
<ul>
<li>No server access is required</li>
<li>Because the custom.css file is stored in the styles library for your site collection it is also stored in the content database for your site collection.</li>
<li>You can turn versioning on in the styles library and if you manage to mess something up you do have the ability to revert to an earlier version.</li>
<li>Because files are not stored on the server itself they are easily modified or replaced.</li>
</ul>
</li>
<li>
<div>Drawbacks</div>
<ul>
<li>Because files are not stored on the server itself they are easily modified or replaced. This can be a two-edged sword if you don&#8217;t have good governance or change control processes in place.</li>
<li>Could be labor intensive if you have lots of sites that will use different custom style sheets.</li>
<li>Requires MOSS with the publishing feature activated. This is something I normally do anyway but there are those that don&#8217;t see a need to have the publishing feature activated unless it is absolutely necessary. For a WSS instance or a MOSS instance with no publishing activated you&#8217;ll need to select a different method of applying your style sheets.</li>
</ul>
</li>
</ul>
</li>
<li>I haven&#8217;t tested this yet but fully intend to over the next few weeks but I think you could probably take your custom.css and convert it to a custom theme. If that&#8217;s the case while you would need server access or the assistance of your server team you would be able to push your theme to any site you wished regardless of activated features or version of SharePoint being used in your organization. More on that in a few weeks<span style="font-family: Wingdings;">J</span>.</li>
</ul>
<p><span style="font-size: 12pt;"><strong>Some of the lessons I&#8217;ve learned along the way<br />
</strong></span></p>
<ul>
<li>Working with CSS in SharePoint can, and will, frustrate you to the point of pulling handfuls of your hair out. You will find that when it gets especially frustrating the best thing you can do is put everything down and walk away for a bit. Of course that could be said of a lot of things couldn&#8217;t it? It just seems more apparent lately for me I guess.</li>
<li>Document, document, document, I hate writing documentation but it is absolutely essential in this case. Several times while I was working through all this I struggled with getting something to work and when I finally did get it right found that I had neglected to add comments to my code so I would know what I had done and where I had done it. Those tend to be those &#8220;I&#8217;m not smarter than a 5<sup>th</sup> grader&#8221; moments.</li>
<li>There are going to be instances where the order of your classes <span style="text-decoration: underline;"><strong>WILL</strong></span> make a difference. You will find this to be true especially when working with modifying the behavior of your links, in particular the &#8220;Hover&#8217;&#8221; property.</li>
<li>Plan ahead! Put some thought and planning into color schemes, how you&#8217;ll handle navigation, font colors and behaviors, and how you&#8217;ll structure your custom.css file.</li>
<li>The Internet Explorer Developer tools are your best friend. Todd Bleeker&#8217;s CEWP script works very, very well in those environments where the IE Developer tools are not allowed but if you can get them, use them!</li>
</ul>
<p><span style="font-size: 12pt;"><strong>Article References<br />
</strong></span></p>
<p><a href="http://www.smashingmagazine.com/2007/05/10/70-expert-ideas-for-better-css-coding/">Smashing Magazine &#8211; 70 Expert Ideas for Better CSS Coding</a></p>
<p><a href="http://msdn.microsoft.com/en-us/library/bb727371.aspx">Microsoft &#8211; How to Optimize a SharePoint Server 2007 WCM Site for Performance</a></p>
<p><a href="http://www.heathersolomon.com/blog/archive/2006/10/27/sp07cssoptions.aspx">Heather Solomon &#8211; CSS Options with Master Pages</a></p>
<p><span style="font-size: 12pt;"><strong>A Little Before and After<br />
</strong></span></p>
<p><span style="font-size: 12pt;"><strong>    <span style="font-size: 12pt;"><strong><a href="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/Before_FullScreen.jpg"><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/051110_0311_MOSS2007CSS1.jpg" border="0" alt="" align="left" /></a></strong></span></strong></span></p>
<p><span style="font-size: 12pt;"><strong><br />
 </strong></span><a href="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/Before_FullScreen.jpg"></a></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"><a href="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/After_FullScreen.jpg"><img class="alignleft" src="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/051110_0311_MOSS2007CSS2.jpg" border="0" alt="" align="left" /></a></span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;"> </span></p>
<p><span style="font-size: 12pt;">And as promised a copy of my commented CSS file for you. You&#8217;ll need to remove/change images where appropriate but other than that it should work. Also, you should note that I have not organized this file in any way as I mention above in the Best Practices section. Nor have I removed any unnecessary code, I wanted you to see what is there by default for the most part.</span></p>
<p><span style="font-size: 12pt;"> </span><a href="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/MyCustom.css"><span style="font-size: 12pt;">MyCustom.CSS</span></a><br />
<span style="font-size: 12pt;"><br />
</span><span style="font-size: 12pt;">Well friends and neighbors that&#8217;s it for now. I don&#8217;t claim that this series is the work of a know all, end all, expert. These are my experiences documented in hopes that they will be helpful to someone else. As I mentioned early on, please, PLEASE, make sure that you test anything you pull off the web before dropping it into production.</span></p>
<p><span style="font-size: 12pt;"><br />
</span><span style="font-size: 12pt;">More to come very soon…<br />
</span><span style="font-size: 12pt;"><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointmechanic.com/?feed=rss2&amp;p=403</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Saturday – Huntsville, What a Blast!</title>
		<link>http://www.sharepointmechanic.com/?p=397</link>
		<comments>http://www.sharepointmechanic.com/?p=397#comments</comments>
		<pubDate>Tue, 04 May 2010 00:12:13 +0000</pubDate>
		<dc:creator>jsimcox</dc:creator>
				<category><![CDATA[Conferences/Training]]></category>
		<category><![CDATA[SPSHSV]]></category>

		<guid isPermaLink="false">http://www.sharepointmechanic.com/?p=397</guid>
		<description><![CDATA[<p>What a great day of speaking, socializing and learning this past Saturday in Huntsville. Cathy Dew (@catpaint1), Lori Gowin (@LoriGowin) and the Summit 7 Systems team put together an absolutely awesome event. It was great to see some familiar faces there as well as make some new acquaintances. I can&#8217;t say I enjoyed being a <p>Continue reading <a href="http://www.sharepointmechanic.com/?p=397">SharePoint Saturday – Huntsville, What a Blast!</a></p>]]></description>
			<content:encoded><![CDATA[<p>What a great day of speaking, socializing and learning this past Saturday in Huntsville. Cathy Dew (@catpaint1), Lori Gowin (@LoriGowin) and the Summit 7 Systems team put together an absolutely awesome event. It was great to see some familiar faces there as well as make some new acquaintances. I can&#8217;t say I enjoyed being a small part of the day enough.</p>
<p>All things considered my session was pretty well attended (I was speaking opposite Bill English, Mark Rackley and Laura Rogers, pretty steep competition) and everyone that was there was engaged, interested and had excellent questions. Unfortunately my plan to record the session and post the audio was nixed by the owners of the facility so I will not be able to post the audio files. Hopefully there will be another opportunity for me to present this session and record it for those that want it. Because I wasn&#8217;t able to get it recorded I&#8217;ll make a point of converting the session into a blog post and will get it posted by Saturday night.</p>
<p>In the meantime I have uploaded the slide deck and &#8220;solution&#8221; files from the session for anyone that wants them. As always, make sure you implement them in a test environment so you have a full understanding of the process.</p>
<p>Thanks again to everyone involved in putting on the day, a great job by all! To my old and new friends I enjoyed spending the day with you and taking home knowledge I did not possess before and finally to those that attended my session, thanks for spending an hour with me. I hope you found it entertaining and informative.</p>
<p><a href="http://www.sharepointmechanic.com/wp-content/uploads/2010/05/SP-Saturday-Huntsville.zip">SharePoint Saturday &#8211; Huntsville Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointmechanic.com/?feed=rss2&amp;p=397</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MOSS 2007, CSS, and you, the Non-Developer – Part 6 Banners and Administrative pages</title>
		<link>http://www.sharepointmechanic.com/?p=390</link>
		<comments>http://www.sharepointmechanic.com/?p=390#comments</comments>
		<pubDate>Wed, 28 Apr 2010 06:05:37 +0000</pubDate>
		<dc:creator>jsimcox</dc:creator>
				<category><![CDATA[Branding]]></category>
		<category><![CDATA[Customization]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.sharepointmechanic.com/?p=390</guid>
		<description><![CDATA[<p>In my last <a href="http://www.sharepointmechanic.com/?p=326/">ARTICLE</a> we changed the way that our TopNavigation and SiteActions menus looked and displayed on our main page. In today&#8217;s article we&#8217;ll make some changes to the GlobalTitleArea, add a banner to our page and make some changes to classes that are tied to pages that reside in the _layouts directory. <p>Continue reading <a href="http://www.sharepointmechanic.com/?p=390">MOSS 2007, CSS, and you, the Non-Developer – Part 6 Banners and Administrative pages</a></p>]]></description>
			<content:encoded><![CDATA[<p>In my last <a href="http://www.sharepointmechanic.com/?p=326/">ARTICLE</a> we changed the way that our TopNavigation and SiteActions menus looked and displayed on our main page. In today&#8217;s article we&#8217;ll make some changes to the GlobalTitleArea, add a banner to our page and make some changes to classes that are tied to pages that reside in the _layouts directory. Making changes to those classes will allow us to completely &#8220;skin&#8221; or &#8220;brand&#8221; our site and not have pages that appear to be incompletely altered or customized (the &#8220;Site Settings&#8221; page for example).
</p>
<p>We&#8217;ll start by adding a header image to our main page. There are a couple of ways to do this; add the header image directly to the cells that hold the site title, the titlegraphic.gif, search boxes and &#8220;Advanced Search&#8221; link or you could customize your master page and add a table directly above those items and add your header image to that table. I don&#8217;t want to customize my master page so I am going to take the first approach. We&#8217;ll begin by hiding the existing elements of this row in the page, make some changes to the row height and then add our image.
</p>
<p>As a reminder here is how our GlobalTitleArea currently looks.
</p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/042810_0605_MOSS2007CSS1.jpg" alt=""/>
	</p>
<p>
 </p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/042810_0605_MOSS2007CSS2.jpg" alt=""/>
	</p>
<p>Now let&#8217;s make the changes necessary to display a header image as a background to the site title.
</p>
<ol>
<li>
<div>We&#8217;ll start by hiding the title graphic image that appears at the left hand side of the header area. We&#8217;ll do that by adding a declaration telling the browser not to display the td.ms-titleimagearea class on our SharePoint page.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/042810_0605_MOSS2007CSS3.jpg" alt=""/>
			</p>
</li>
<li>
<div>Now that we&#8217;ve hidden the graphic we&#8217;ll hide the site title. We&#8217;ll add a declaration to the .ms-sitetitle class telling the browser not to display that class. This will actually take care of 2 things for us, it will hide the site title and it will also hide the cell that runs across the width of the page and will show up in the middle of your header image after you add it.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/042810_0605_MOSS2007CSS4.jpg" alt=""/>
			</p>
</li>
<li>
<div>The next piece is a little tricky. Once you tell the browser not to display the .ms-sitetitle class the search boxes will all re-align to the left hand side of the page. A post by Heather Solomon on her blog pointed me in the right direction (<a href="http://www.heathersolomon.com/blog/archive/2007/01/16/6070.aspx">SharePoint CSS Trick: Align your Search Inputs</a>). We&#8217;ll start by setting the width of the .ms-sblastcell, .ms-rightbodysectionsearchbox class to &#8220;0&#8243;. By default the width here is set to 100% which pushes all the search box components to the left of the page.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/042810_0605_MOSS2007CSS5.jpg" alt=""/>
			</p>
</li>
<li>
<div>In order to get the search boxes back where they belong we&#8217;ll change the width setting of the .ms-sbtable-ex class to &#8220;0&#8243; as well. In addition we are going to set the position of the search box here by using a &#8220;position&#8221; declaration and setting the &#8220;position&#8221; declaration to &#8220;absolute&#8221; and the &#8220;right&#8221; declaration to &#8220;0&#8243;. If you wanted to move the search boxes up or down you could add an additional declaration for &#8220;top: 20px;&#8221; or similar. This declaration will actually move the search boxes to the top of the page directly below the Welcome and My Site links.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/042810_0605_MOSS2007CSS6.jpg" alt=""/>
			</p>
</li>
<li>
<div>In the last step we&#8217;ll add a reference to our header image. We&#8217;ll do this where we had earlier removed a reference to one of Microsoft&#8217;s background images in the GlobalTitleArea. You&#8217;ll notice that I changed the font color of the &#8220;Advanced Search&#8221; link to make it more visible against the background image I&#8217;ve added.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/042810_0605_MOSS2007CSS7.jpg" alt=""/>
			</p>
</li>
</ol>
<p>With the header out of the way we&#8217;ll go back and tie up a few loose ends. If you&#8217;ve been working through this on your own you&#8217;ve probably noticed that in some of the administrative pages or in the &#8220;All Site Content&#8221; page there are cells that have not been customized but should have been. We did change those on the main page didn&#8217;t we?
</p>
<p>Well, we did and we didn&#8217;t. There are some separate css classes for some of the administrative pages. This is where the IE Developer tools come in really, really handy because you can&#8217;t add Todd&#8217;s script to any of these pages. Anyway, let&#8217;s get those fixed up so we&#8217;re consistent across the site.
</p>
<ol>
<li>
<div>If you look at the &#8220;Site Settings&#8221; page now you&#8217;ll notice that the vertical pagemargin cell we had changed way back in part 2of this series hasn&#8217;t been changed. That&#8217;s because it uses a different class to determine the color of the cell. To fix this we&#8217;ll need to make 2 changes, one to the .ms-areaseparatorleft class and another to the div.ms-areaseparatorleft class. These changes will consist of removing the background images and then setting a background-color for each class.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/042810_0605_MOSS2007CSS8.jpg" alt=""/>
			</p>
</li>
<li>
<div>Now we&#8217;ll make the same changes to fix the other side of the page. The only difference will be the classes we are applying those changes to. In this case it will be .ms-titlearearight .ms-areaseparatorright and div.ms-areaseparatorright.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/042810_0605_MOSS2007CSS9.jpg" alt=""/>
			</p>
</li>
</ol>
<p>Now there may be other places that changes didn&#8217;t trickle down or classes may have changed. These are the only two that I saw that were obvious. If you do find some you should have the ability to figure out what needs to be changed now.
</p>
<p>Next time we&#8217;ll wrap it all up and talk about how SharePoint handles style sheets, some best practices, how to deploy the changes we&#8217;ve made and some lessons I&#8217;ve learned as part of this process. Additionally I&#8217;ll provide you with a copy of my customized .css file complete with comments and markup.
</p>
<p>As always if you have any questions or comments please don&#8217;t hesitate to ask!
</p>
<p>Until next time…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointmechanic.com/?feed=rss2&amp;p=390</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Saturday – Atlanta all wrapped up!</title>
		<link>http://www.sharepointmechanic.com/?p=359</link>
		<comments>http://www.sharepointmechanic.com/?p=359#comments</comments>
		<pubDate>Mon, 19 Apr 2010 05:54:38 +0000</pubDate>
		<dc:creator>jsimcox</dc:creator>
				<category><![CDATA[Conferences/Training]]></category>
		<category><![CDATA[SharePoint Saturday]]></category>

		<guid isPermaLink="false">http://www.sharepointmechanic.com/?p=359</guid>
		<description><![CDATA[<p>WOW…………what an event Dan Attis, Lee Reed, Brendon Schwartz, and crew put on this weekend. A great staff, highly involved and motivated sponsors, an exceptional group of speakers and of course the reason for it all a great group of attendees all came together and had an awesome time. Thanks to Dan, Lee, Brendon and <p>Continue reading <a href="http://www.sharepointmechanic.com/?p=359">SharePoint Saturday – Atlanta all wrapped up!</a></p>]]></description>
			<content:encoded><![CDATA[<p>WOW…………what an event Dan Attis, Lee Reed, Brendon Schwartz, and crew put on this weekend. A great staff, highly involved and motivated sponsors, an exceptional group of speakers and of course the reason for it all a great group of attendees all came together and had an awesome time. Thanks to Dan, Lee, Brendon and crew for inviting me. It was an honor to be involved and have the opportunity to share my knowledge with the folks in Atlanta. It was also very nice to meet the other speakers, most of them I knew by name but had never had the opportunity to actually meet. I had a great time meeting and chatting with everyone.
</p>
<p>My session was well attended and with the exception of one of those &#8220;I am apparently NOT smarter than a 5<sup>th</sup> grader&#8221; moments went pretty well. I apologize to the folks that attended for dropping the ball on recording the session. I will get that taken care of in Huntsville on May 1<sup>st</sup> and will post the audio as soon afterwards as I can. In the meantime you can download the slide deck, sitemap file, and CustomMasterPage feature files from the link at the end of this post. If there is something you don&#8217;t understand or can&#8217;t get to work please feel free to email me and I&#8217;ll do my best to help you out. Additionally I will be putting the session into a blog post format but that may not be until next week sometime. I&#8217;ll try and get it done before then but can&#8217;t make any promises.
</p>
<p>Thanks again to those that attended my session, I really enjoyed it. I had forgotten how much I enjoy that kind of thing!
</p>
<p>Remember………………..SharePoint Saturday – Huntsville on May 1<sup>st</sup>. Registration is open now, get in before it gets full!
</p>
<p><a href="http://spshsv.eventbrite.com/">SharePoint Saturday &#8211; Huntsville Registration</a>
	</p>
<p><a href="http://www.sharepointsaturday.org/huntsville/default.aspx">SharePoint Saturday &#8211; Huntsville Home Page</a>
	</p>
<p><a href="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/SP-Saturday-Atlanta.zip">SharePoint Saturday &#8211; Atlanta Download</a>
	</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointmechanic.com/?feed=rss2&amp;p=359</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designate which Content Database your new Site Collection is created in.</title>
		<link>http://www.sharepointmechanic.com/?p=340</link>
		<comments>http://www.sharepointmechanic.com/?p=340#comments</comments>
		<pubDate>Fri, 09 Apr 2010 05:42:34 +0000</pubDate>
		<dc:creator>jsimcox</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Configuration]]></category>

		<guid isPermaLink="false">http://www.sharepointmechanic.com/?p=340</guid>
		<description><![CDATA[<p>According to an article I read this evening and statements that I have seen at least 3 other places just this week the only way to designate which content database your new site collection is going to be created in is to use stsadm and create the content database and site collection at the same time.</p>
<p>Not so <p>Continue reading <a href="http://www.sharepointmechanic.com/?p=340">Designate which Content Database your new Site Collection is created in.</a></p>]]></description>
			<content:encoded><![CDATA[<p>According to an article I read this evening and statements that I have seen at least 3 other places just this week the only way to designate which content database your new site collection is going to be created in is to use stsadm and create the content database and site collection at the same time.</p>
<p>Not so say I! It is possible to use the Central Administration GUI to determine which content database your new site collection will be created in. The solution is not elegant but it does work for creating site collections in new and existing content databases and does not require using stsadm.</p>
<p>If you follow the steps I&#8217;m going to outline you can pick the content database you want to create your new site collection in from the Web Application Management and Site Management sections of your Central Administration page. For the last 3 years I have been using the following process when I create my site collections and it works quite well.</p>
<ol>
<li>Under the Application Management section access the &#8220;Content Databases&#8221; link.</li>
<li>In the upper right hand corner make sure you are in the correct Web Application. If you aren&#8217;t then change to the correct one.</li>
<li>Click the link for each Content Database you have listed under the &#8220;Database Name&#8221; heading.</li>
<li>When the &#8220;Manage Content Database Settings&#8221; page opens set the &#8220;Database Status&#8221; to &#8220;Offline&#8221; and then click &#8220;OK&#8221;. After you click ok you&#8217;ll be taken back to the &#8220;Manage Content Databases page where the database you just changed should now show as &#8220;Stopped&#8221;.</li>
<li>Click the &#8220;Add a Content Database&#8221; link and create a new content database. Do not make any changes to the &#8220;Database Status&#8221; setting. It will show as &#8220;Started&#8221; in the list of Content Databases. You will also notice that the &#8220;Current Number of Sites&#8221; will be equal to 0.</li>
<li>Navigate to the SharePoint Site Management section and create your new site collection.</li>
<li>Go back to the Manage Content Databases list and you will now see that the Content Database you just created now shows that the Current Number of Sites is equal to 1.</li>
</ol>
<p>You have just created a new site collection in the content database of your choice.</p>
<p>As long as a content database is in the &#8220;Stopped&#8221; state no new site collections can be created within that content database. You can still create sites, or more accurately I suppose &#8220;Webs&#8221; but not site collections.</p>
<p>If you had 15 content databases in the list and all were in the stopped state and you tried to create a new site collection SharePoint would throw an error message (that doesn&#8217;t say anything about there not being a content database available to create the new site collection in). Pick the content database you want your new site collection to reside in, set the state to &#8220;Started&#8221; and then you will be able to create the site collection in the database you want.</p>
<p>I&#8217;ll update this with screenshots as soon as I finish putting the final touches on my presentation for SharePoint Saturday in Atlanta next weekend and Huntsville on May 1<sup>st</sup>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointmechanic.com/?feed=rss2&amp;p=340</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>SharePoint Saturday – Atlanta Style</title>
		<link>http://www.sharepointmechanic.com/?p=331</link>
		<comments>http://www.sharepointmechanic.com/?p=331#comments</comments>
		<pubDate>Wed, 07 Apr 2010 04:43:46 +0000</pubDate>
		<dc:creator>jsimcox</dc:creator>
				<category><![CDATA[Conferences/Training]]></category>
		<category><![CDATA[General Info]]></category>
		<category><![CDATA[SharePoint Saturday]]></category>

		<guid isPermaLink="false">http://www.sharepointmechanic.com/?p=331</guid>
		<description><![CDATA[<p>SharePoint Saturday – Atlanta is just around the corner and approaching fast. <a href="http://www.sharepointsaturday.org/atlanta/pages/meetings.aspx">Speaker Sessions</a> and the <a href="http://sharepointsaturday.org/atlanta/Shared%20Documents/SPSATL.pdf">Session Schedule</a> were posted tonight on at the <a href="http://www.sharepointsaturday.org/atlanta/default.aspx">SharePoint Saturday &#8211; Atlanta homepage</a>.
</p>
<p>There&#8217;s a very strong lineup of speakers scheduled including Gary LaPointe, Todd Klindt, Todd Bleeker, Lori Gowin, Becky Isserman and many others. It should <p>Continue reading <a href="http://www.sharepointmechanic.com/?p=331">SharePoint Saturday – Atlanta Style</a></p>]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Tahoma; font-size: 9pt;"><span style="color: black;">SharePoint Saturday – Atlanta is just around the corner and approaching fast. <a href="http://www.sharepointsaturday.org/atlanta/pages/meetings.aspx"></span><span style="color: #157eeb;"><strong>Speaker Sessions</strong></span></a> and the <a href="http://sharepointsaturday.org/atlanta/Shared%20Documents/SPSATL.pdf"></span><span style="color: #157eeb;"><strong>Session Schedule</strong></span></a> were posted tonight on at the <a href="http://www.sharepointsaturday.org/atlanta/default.aspx"></span><span style="color: #157eeb;"><strong>SharePoint Saturday &#8211; Atlanta homepage</strong></span></a>.<br />
</span></span></p>
<p><span style="color: black; font-family: Tahoma; font-size: 9pt;">There&#8217;s a very strong lineup of speakers scheduled including Gary LaPointe, Todd Klindt, Todd Bleeker, Lori Gowin, Becky Isserman and many others. It should be a highly informative and entertaining day!<br />
</span></p>
<p><span style="color: black; font-family: Tahoma; font-size: 9pt;">I&#8217;ll be there presenting a session on Implementing a Consistent Navigation Scheme across Multiple Site Collections for &#8220;Non-Developers&#8221;.<br />
</span></p>
<p><span style="color: black; font-family: Tahoma; font-size: 9pt;">Hurry up and register if you&#8217;re in the area. Spots are filling up fast!<br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointmechanic.com/?feed=rss2&amp;p=331</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MOSS 2007, CSS, and you, the “Non-Developer” – Part 5: the TopNavigation and the SiteActions Menus</title>
		<link>http://www.sharepointmechanic.com/?p=326</link>
		<comments>http://www.sharepointmechanic.com/?p=326#comments</comments>
		<pubDate>Wed, 07 Apr 2010 04:11:40 +0000</pubDate>
		<dc:creator>jsimcox</dc:creator>
				<category><![CDATA[Branding]]></category>
		<category><![CDATA[Non-Developer]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.sharepointmechanic.com/?p=326</guid>
		<description><![CDATA[<p>The last time we met we continued the modification of our SharePoint main page by making changes to the main body area of our page as well as changing the title font and border colors of some of our default web parts. As I said in that <a href="http://www.endusersharepoint.com/2010/03/24/moss2007-css-and-you-the-non-developer-%e2%80%93-part-4-the-bodyarea/">ARTICLE</a> if you don&#8217;t count making changes <p>Continue reading <a href="http://www.sharepointmechanic.com/?p=326">MOSS 2007, CSS, and you, the “Non-Developer” – Part 5: the TopNavigation and the SiteActions Menus</a></p>]]></description>
			<content:encoded><![CDATA[<p>The last time we met we continued the modification of our SharePoint main page by making changes to the main body area of our page as well as changing the title font and border colors of some of our default web parts. As I said in that <a href="http://www.endusersharepoint.com/2010/03/24/moss2007-css-and-you-the-non-developer-%e2%80%93-part-4-the-bodyarea/">ARTICLE</a> if you don&#8217;t count making changes to your web parts there really wasn&#8217;t a lot to change on that page via CSS. Today&#8217;s article will definitely make up for that. I had originally planned on covering the top navigation menu, site actions menu and adding a banner to the page but I think that is a lot for one article so I am going to cover just the siteactions and topnavigation menus today. Next time we&#8217;ll come back to the banner as well as make some changes that need to be applied to some of the underlying pages of our site in order to remain consistent.
</p>
<p>I would like to mention that I have made a change in how I am identifying the classes I am making changes to. If you read the <a href="http://www.endusersharepoint.com/2010/03/04/sharepoint-2007-css-and-you-the-non-developer-%e2%80%93-the-intro/">Intro Article</a> to this series I recommended a script that Todd Bleeker had written some time ago that can be embedded in a CEWP and will identify the classes of your page when you hover your mouse cursor over a specific location on the page. After reading some comments by Eric Schrader on <a href="http://www.endusersharepoint.com/2010/03/15/moss2007-css-and-you-the-non-developer-%e2%80%93-part-3-the-globaltitlearea/">Part 3</a> of this series I decided I would give the developers tools for Internet Explorer another try. I had tried it before at work but apparently there are some security settings on our workstations at work that prevent it from working so I went with Todd&#8217;s script at the time. After trying the IE Developers tools at home I would strongly suggest you try to use them if at all possible.
</p>
<p>Now, with all that said we&#8217;ll move along to the important part of today&#8217;s article. We&#8217;re going to start by working with the navigation tabs for our site. If you look at these you&#8217;ll notice that I have made a couple of changes to the tabs and you should be able to see the drop down arrows to the right hand side of several of them. There are a couple of reasons for that and I&#8217;ll make sure to point those out as we get to them. Before we do that a quick look at the top navigation tabs before we make any changes to it.
</p>
<p style="text-align: center"><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS1.jpg" alt=""/>
	</p>
<ol>
<li>
<div>Our first change is going to be to change the background color of our tabs. As with many other classes we have seen throughout this series we will need to remove a background image before we can set a background color via .css so we&#8217;ll locate the .ms-topnav class and remove the background-image declaration by setting the url portion of the background-image declaration to &#8220;none&#8221;.
</div>
<p>
 </p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS2.jpg" alt=""/>
			</p>
<p>
 </p>
</li>
<li>
<div>Now that we have made the appropriate changes you can see that the background color of the top navigation tabs did indeed change, with one exception; the &#8220;Portal Home&#8221; tab did not change. The other thing you&#8217;ll notice is that the font color of the navigation tabs did not change either. Let&#8217;s fix both of those things. First we&#8217;ll make two additional changes to the .ms-topnav class, we&#8217;ll change the color declaration and add a font-weight declaration.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS3.jpg" alt=""/>
			</p>
</li>
<li>
<div>Now to fix the background color, font color and font weight of the first tab we&#8217;ll make 2 changes to the .ms-topnavselected class and 1 change to the .ms-topnavselected a{ class. First we&#8217;ll remove the background-image by setting the url to &#8220;none&#8221; again, then we&#8217;ll change the background-color declaration to set our background color. Once we have done that we&#8217;ll change the color declaration of the .ms-topnavselected a{ class to the font color of our choice. You should be able to see that I have inverted my color selection for the font and background so the selected tab displays differently than any other tab.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS4.jpg" alt=""/>
			</p>
</li>
<li>
<div>As I mentioned earlier I changed the tabs a little for a couple of reasons. One is that I wanted to make sure we talk about how to make changes to the drop downs using CSS and the other is for an upcoming article I am writing and presentation I&#8217;ll be doing at SharePoint Saturday – Atlanta in a couple of weeks. So in the following screenshot you can see that none of our colors for backgrounds or font colors have been changed on the drop downs or when we hover our mouse over a navigation tab. Let&#8217;s look at the hover aspect first and see what we can do with that. In order to make our changes we&#8217;ll have to find the .ms-topnavhover class and remove the background-image and then we&#8217;ll change the background-color declaration to fit our needs. In order to change the font color of the cell when we hover a mouse cursor over it we&#8217;ll change the color declaration of the .ms-topnavhover a{ class.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS5.jpg" alt=""/>
			</p>
</li>
<li>
<div>Now we&#8217;ll make the changes necessary so that our drop down menus show the background color we want. Keep in mind that there are really two states we are looking at here, the &#8220;Hover&#8221; state for when a mouse cursor hovers over a link and the &#8220;Static&#8221; state where the dropdown cell displays with no interaction from the user or the mouse. We&#8217;ll change the &#8220;Static&#8221; state first by changing the background-color declaration of the .ms-topnavflyouts class. We&#8217;ll also change the font color and weight here.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS6.jpg" alt=""/>
			</p>
</li>
<li>
<div>Next we&#8217;ll change the &#8220;Hover&#8221; state of the drop down menu so that it shows a white background and keeps the dark green font color and bold font-weight we want. We&#8217;ll change the background and font colors in the .ms-topnavflyoutshover class. The font-weight will propagate from the .ms-topnavflyouts class.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS7.jpg" alt=""/>
			</p>
</li>
<li>
<div>Now here we run into a bit of a problem. If you look at the following screenshot you&#8217;ll see that our drop down menu shows a blue box to the far right hand side of the cell. I had originally stated that the only way I could find to fix this problem was to make some changes to the master page. Apparently I need to work on my &#8220;Google&#8221; skills as it was pointed out by Ben (no last name given or I would give better credit for the answer) that the solution could be achieved in .css and had been blogged about by Shane Perran (<a href="http://www.graphicalwonder.com/?p=636">Customizing the MOSS 2007 Drop Down Menu</a>).
</div>
<p>What we&#8217;ll need to do is make some additional changes to the .ms-topnavflyouts a { class, we&#8217;ll add a color for the font, change the width declaration to a percentage rather than a static value and remove the min-width declaration.
</p>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS8.jpg" alt=""/>
			</p>
<p>
 </p>
</li>
</ol>
<p>    <img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS9.jpg" alt=""/>
	</p>
<p>Well now that we have the top navigation tabs displaying to our liking. Let&#8217;s take on the Site Actions Menu. It should be noted here that making any of the following changes will affect all menus throughout our SharePoint site, <span style="text-decoration:underline"><strong>not</strong></span> just the Site Actions menu.
</p>
<ol>
<li>
<div>True to form we will need to remove another image before we can make any changes to the background color of the site action menu. Let&#8217;s find the .ms-siteactionsmenu div div div { class and remove the background-image url and then setting the background-color attribute to the color of our choice.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS10.jpg" alt=""/>
			</p>
</li>
<li>
<div>Next we&#8217;ll change the background color the Site Actions Menu displays when a mouse cursor hovers over it. We&#8217;ll do this by removing the image from the .ms-siteactionsmenu div div div .ms-siteactionsmenuhover class and setting our background-color declaration. It should be noted here that if you wanted to you could also change the border color and weight if you wanted to. I chose not to do this in this particular case.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS11.jpg" alt=""/>
			</p>
</li>
<li>
<div>Now we&#8217;ll change the font colors of the Site Actions Menu labels (Create Page, Edit Site, etc…). We are going to do this by adding a color declaration to the .ms-MenuUILabel, .ms-menuuilabelcompact class. If you look at your copy of core.css you&#8217;ll notice that there are two additional classes with the two here both of which are appended with RTL. These are classes that are specific to implementations where text is read from right to left. Also, in this example you&#8217;ll notice that one class ends in &#8220;compact&#8221;, this class is for menus specific to web parts, lists and libraries etc…
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS12.jpg" alt=""/>
			</p>
</li>
<li>
<div>I want to change the font color of the descriptions of my menu items so next I&#8217;ll change the color declaration of the .ms-menuitemdescription class. Additionally if you wanted you could change the font-family, font-weight, font size etc… in this same class.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS13.jpg" alt=""/>
			</p>
</li>
<li>
<div>What I&#8217;d like to do now is change the background of the site actions drop down menu. If you look at that menu you will see that there are really two parts to it. There is the main table which contains all the item labels and their associated descriptions and there is a vertical column on the left hand side of the menu that holds any images associated with the items being displayed. We could change that main body, or right hand column, of the menu first by changing the color declaration of the .ms-menuUI, .ms-menuUILarge, .ms-menuUIRtl, .me-menuUILargeRtl classes (note that these are all grouped together in the copy of the core.css file we are modifying) but I cannot for the life of me figure out how to set a background color for the column that runs vertically on the left hand side of that menu. If you look at everything else we have done you would think that there is an image there but I have tried every combination of removing images and adding background-color declarations to no avail. So we&#8217;ll go with a single color for the background of our Site Actions Menu drop down. We&#8217;ll do that by adding a background-color declaration to the .ms-MenuUIPopupBody TABLE class.
</div>
<p><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS14.jpg" alt=""/>
			</p>
</li>
</ol>
<p>Here&#8217;s a screenshot of our SharePoint home page with the modified .css file applied. It still looks like SharePoint but at least it&#8217;s looking like what we want rather than what Microsoft gives us. Next time we&#8217;ll add a banner to our home page and make a few changes to classes that aren&#8217;t displaying on the main page, but that do need to be modified so that we have a consistent look across the entire site.
</p>
<p style="text-align: center"><img src="http://www.sharepointmechanic.com/wp-content/uploads/2010/04/040710_0410_MOSS2007CSS15.jpg" alt=""/>
	</p>
<p><span style="color:black; font-family:Tahoma; font-size:9pt">I hope you have found this useful! As always if you have any questions or comments please let me know.<br />
</span></p>
<p><span style="color:black; font-family:Tahoma; font-size:9pt">Until next time…<br />
</span></p>
<p>
 </p>
<p><span style="color:black; font-family:Tahoma; font-size:9pt"><br />
		</span> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sharepointmechanic.com/?feed=rss2&amp;p=326</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
