Upgrading your existing master page to Beta 2 Technical Refresh

Hi all,

One of things we've tried to do this release was to make it easy for a designer to take a SharePoint site and make it look… not like a SharePoint site. Many of our early adopters have eagerly started branding their internal or Internet-facing sites (and we’ve seen some amazing ones!) by customizing master pages on the Beta 2 bits. If that applies to you, make sure you read this.

 

In Beta 2, we shipped 3 alternate master pages to use as a starting point for your branding effort. Since then, these have been replaced respectively by:

Beta 2

B2TR equivalent

TopNavFlyouts.master

BlueBand.master

LeftNavFlyouts.master

BlueVertical.master

Stacked.master

BlueTabs.master

 

Besides the name changes, the updated master pages contain many markup and style fixes.

So if you haven't started branding seriously on Beta 2, then by all means, start from one of the new master pages in B2TR. Just make sure you specify the new master page in Site settings --> Master page. There are 8 of them, with different colors and navigation schemes. Give them a look! You may find one that is close to your desired branding.

But if you have already invested time customizing your master page based on the Beta2 version of the markup, switching to the updated master page is probably not much of an option... Fortunately, you can still apply the most relevant markup fixes manually.

Here are a few fixes and improvements that will let you get the most out of your existing master page:

- Making sure the master page renders
In most cases, your Beta 2 master page will not even render after upgrade, and give you an asp.net error about a property that doesn’t exist. Fortunately, the fix is easy.

Open your master page in SharePoint Designer, search for the <PublishingNavigation:PortalSiteMapDataSource> control with id=SiteMapDS and replace its property :

TrimNonCurrentHeadings="true"

with

TrimNonCurrentTypes="Heading"

- Improving latency

Some of the Jscript references present in Beta 2 master pages have been deprecated in B2TR and beyond, and while removing them is not a requirement, it will improve latency (particularly on the 1st page hit).

Search and replace:

<SharePoint:ScriptLink language="javascript" name="core.js" runat="server"/>

<SharePoint:ScriptLink language="javascript" name="ows.js" runat="server"/>

with

<SharePoint:ScriptLink language="javascript" name="init.js" runat="server"/>

- Adding the search robots tag

Right after the <meta> tags, in the <head> section, add <SharePoint:RobotsMetaTag runat="server" />
This is important to secure SharePoint search indexing on Web sites that use fine grained permissions.

 

- Positioning the toolpane

Find the <div> in your master page that wraps the content area of the page. On the OOB master page it is has the class "mainContainer" and contains the placeholders PlaceHolderPageTitleInTitleArea and PlaceHolderMain. Add the id “MSO_ContentDiv" and the runat="server" attribute such as:

<div class="mainContainer" id="MSO_ContentDiv" runat="server">

This will tell the Web part toolpane to position itself directly to the right side of that content area, where it is most usable, similar to the SharePoint default master page.

- Restyling the searchbox control
Depending on what styling you applied to the search box, the search box will probably look funky after upgrade. This is because the control has different default styles and markup your styles won't be applied properly anymore. You could use a tool such as the IE developer toolbar to figure out what styles need to be fixed up in your CSS.

The most straightforward fix would be to replace your markup within the "PlaceholderSearchArea" content placeholder with the equivalent in BlueBand.master and similarly replace your search box styles in your CSS with the styles from Band.css. Here they are for your convenience:

Markup (e.g TopNavFlyouts.master):

<SPSWC:SearchBoxEx id="SearchBox" RegisterStyles="false" TextBeforeDropDown="" TextBeforeTextBox="<%$Resources:cms,masterpages_searchbox_label%>" TextBoxWidth="100"
GoImageUrl="<% $SPUrl:~sitecollection/Style Library/Images/Search_Arrow.jpg %>"
GoImageUrlRTL="<% $SPUrl:~sitecollection/Style Library/Images/Search_Arrow_RTL.jpg %>"
GoImageActiveUrl="<% SPUrl:~sitecollection/Style Library/Images/Search_Arrow.jpg %>"
GoImageActiveUrlRTL="<% SPUrl:~sitecollection/Style Library/Images/Search_Arrow_RTL.jpg %>" UseSiteDefaults="true" DropDownMode = "HideScopeDD" SuppressWebPartChrome="true" runat="server" />

Style (e.g. topNavFlyouts.css):

.search
{
margin:6px 2px 20px 2px;
}
.search .ms-sbcell .ms-sbplain
{
margin-right:2px;
margin-left:2px;
border:1px #555555 solid;
height:14px;
}
.search .ms-sbcell
{
border:none;
font-weight:normal;
font-size:8pt;
color: #3A4663;
padding:0px;
}
.search .ms-sbgo
{
background:none;
}

 

Hope that helps!

 

Ben Schmitlin

Program Manager, WCM