Friday, March 14, 2014

Custom Master Page for SharePoint 2010 using Visual Studio - Great reference by Đỗ Quốc Hùng (Vietnam)

I was looking for writing a blog on Developing and Deploying Custom Master Page and Page Layouts, but when I saw this post, I thought I wouldn't be able to write better than this and so I am referring to this blog. Thanks Do Quoc Hung for the nice post.

Reference URL:

http://www.microsofttechnology.net/2012/02/custom-master-page-and-page-layout.html


Thursday, March 13, 2014

MasterPage V4 with detailed explanation in comments CleanV4.master

This was copied from one other site, but wanted to keep a copy here in my blog for quick reference as I thought that it will be really helpful for understanding the v4.master file



<%@Master language="C#"%>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %> <%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="wssuc" TagName="Welcome" src="~/_controltemplates/Welcome.ascx" %>
<%@ Register TagPrefix="wssuc" TagName="MUISelector" src="~/_controltemplates/MUISelector.ascx" %>
<%@ Register TagPrefix="wssuc" TagName="DesignModeConsole" src="~/_controltemplates/DesignModeConsole.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="<%$Resources:wss,language_value%>" dir="<%$Resources:wss,multipages_direction_dir_value%>" runat="server" xmlns:o="urn:schemas-microsoft-com:office:office" __expr-val-dir="ltr">
<head runat="server">
<!-- Clean V4 MasterPage, by Thomas Daly (http://thomasdaly.net) Oct 13,2011 -->

    <!-- metadata -->
    <meta http-equiv="X-UA-Compatible" content="IE=8"/>
    <meta name="GENERATOR" content="Microsoft SharePoint"/>
    <meta name="progid" content="SharePoint.WebPartPage.Document"/>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta http-equiv="Expires" content="0"/>
   
    <!-- robots -->
    <SharePoint:RobotsMetaTag runat="server"/>
   
    <!-- page title -->
    <title id="onetidTitle">
        <asp:ContentPlaceHolder id="PlaceHolderPageTitle" runat="server"/>
    </title>
   
    <!-- CSS & Theme -->
    <SharePoint:CssLink runat="server" Version="4"/>
    <SharePoint:Theme runat="server"/>
   
    <!-- unifed logging service -->
    <SharePoint:ULSClientConfig runat="server"/>
   
    <!-- something -->
    <script type="text/javascript">
    var _fV4UI = true;
    </script>
   
    <!-- load SharePoint javascript -->
    <SharePoint:ScriptLink language="javascript" name="core.js" OnDemand="true" runat="server"/>
   
    <!-- adds reference to custom javascript files -->
    <SharePoint:CustomJSUrl runat="server"/>
   
    <!-- web service control object -->
    <SharePoint:SoapDiscoveryLink runat="server"/>
   
    <!-- additional header placeholder - overridden by asp:content on pages or page layouts -->
    <asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server"/>
    <SharePoint:DelegateControl runat="server" ControlId="AdditionalPageHead" AllowMultipleControls="true"/>
   
    <!-- favicon -->
    <SharePoint:SPShortcutIcon runat="server" IconUrl="/_layouts/images/favicon.ico"/>
   
    <!-- microsoft says these should always be inside the head tag. -->
    <asp:ContentPlaceHolder id="PlaceHolderBodyAreaClass" runat="server"/>
    <asp:ContentPlaceHolder id="PlaceHolderTitleAreaClass" runat="server"/>
   
    <!-- page manager interacts with script and the sharepoint object model -->
    <SharePoint:SPPageManager runat="server"/>
   
    <!-- SharePoint Help Component added script / css -->
    <SharePoint:SPHelpPageComponent Visible="false" runat="server"/>
</head>
<body scroll="no" onload="if (typeof(_spBodyOnLoadWrapper) != 'undefined') _spBodyOnLoadWrapper();" class="v4master">
  <form runat="server" onsubmit="if (typeof(_spFormOnSubmitWrapper) != 'undefined') {return _spFormOnSubmitWrapper();} else {return true;}">
 
  <!-- SharePoint script manager -->
  <asp:ScriptManager id="ScriptManager" runat="server" EnablePageMethods="false" EnablePartialRendering="true" EnableScriptGlobalization="false" EnableScriptLocalization="true" />
 
  <!-- SharePoint web part manager -->
  <WebPartPages:SPWebPartManager id="m" runat="Server"/>
 
  <!-- handles javascript disabled, adds error to top of page -->
  <SharePoint:SPNoScript runat="server"/>
 
<div id="TurnOnAccessibility" style="display:none" class="s4-notdlg noindex">
    <a id="linkTurnOnAcc" href="#" class="ms-TurnOnAcc" onclick="SetIsAccessibilityFeatureEnabled(true);UpdateAccessibilityUI();document.getElementById('linkTurnOffAcc').focus();return false;">
    <SharePoint:EncodedLiteral runat="server" text="<%$Resources:wss,master_turnonaccessibility%>" EncodeMethod="HtmlEncode"/></a>
</div>
<div id="TurnOffAccessibility" style="display:none" class="s4-notdlg noindex">
    <a id="linkTurnOffAcc" href="#" class="ms-TurnOffAcc" onclick="SetIsAccessibilityFeatureEnabled(false);UpdateAccessibilityUI();document.getElementById('linkTurnOnAcc').focus();return false;">
    <SharePoint:EncodedLiteral runat="server" text="<%$Resources:wss,master_turnoffaccessibility%>" EncodeMethod="HtmlEncode"/></a>
</div>
<div class="s4-notdlg s4-skipribbonshortcut noindex">
    <a href="javascript:;" onclick="javascript:this.href='#startNavigation';" class="ms-SkiptoNavigation" accesskey="<%$Resources:wss,skipribbon_accesskey%>" runat="server">
    <SharePoint:EncodedLiteral runat="server" text="<%$Resources:wss,skipRibbonCommandsLink%>" EncodeMethod="HtmlEncode"/></a>
</div>
<div class="s4-notdlg noindex">
    <a href="javascript:;" onclick="javascript:this.href='#mainContent';" class="ms-SkiptoMainContent" accesskey="<%$Resources:wss,maincontent_accesskey%>" runat="server">
    <SharePoint:EncodedLiteral runat="server" text="<%$Resources:wss,mainContentLink%>" EncodeMethod="HtmlEncode"/></a>
</div>
<a id="HiddenAnchor" href="javascript:;" style="display:none;"></a>
<SharePoint:DelegateControl runat="server" ControlId="GlobalNavigation"/>

<!-- === ribbon ====================================================================== -->
<!-- s4-ribbon row -->
<div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle">
   
    <!-- s4-ribboncont -->
    <div id="s4-ribboncont">
   
        <!-- ribbon control -->
        <SharePoint:SPRibbon
            runat="server"
            PlaceholderElementId="RibbonContainer"
            CssFile="">
            <SharePoint:SPRibbonPeripheralContent
                runat="server"
                Location="TabRowLeft"
                CssClass="ms-siteactionscontainer s4-notdlg">
                       <!-- site actions -->
                       <span class="ms-siteactionsmenu" id="siteactiontd">
                       <SharePoint:SiteActions runat="server" accesskey="<%$Resources:wss,tb_SiteActions_AK%>" id="SiteActionsMenuMain"
                        PrefixHtml=""
                        SuffixHtml=""
                        MenuNotVisibleHtml="&amp;nbsp;"
                        >
                        <CustomTemplate>
                        <SharePoint:FeatureMenuTemplate runat="server"
                            FeatureScope="Site"
                            Location="Microsoft.SharePoint.StandardMenu"
                            GroupId="SiteActions"
                            UseShortId="true"
                            >
                            <SharePoint:MenuItemTemplate runat="server" id="MenuItem_EditPage"
                                Text="<%$Resources:wss,siteactions_editpage%>"
                                Description="<%$Resources:wss,siteactions_editpagedescriptionv4%>"
                                ImageUrl="/_layouts/images/ActionsEditPage.png"
                                MenuGroupId="100"
                                Sequence="110"
                                ClientOnClickNavigateUrl="javascript:ChangeLayoutMode(false);"
                                />
                            <SharePoint:MenuItemTemplate runat="server" id="MenuItem_TakeOffline"
                                Text="<%$Resources:wss,siteactions_takeoffline%>"
                                Description="<%$Resources:wss,siteactions_takeofflinedescription%>"
                                ImageUrl="/_layouts/images/connecttospworkspace32.png"
                                MenuGroupId="100"
                                Sequence="120"
                                />
                            <SharePoint:MenuItemTemplate runat="server" id="MenuItem_CreatePage"
                                Text="<%$Resources:wss,siteactions_createpage%>"
                                Description="<%$Resources:wss,siteactions_createpagedesc%>"
                                ImageUrl="/_layouts/images/NewContentPageHH.png"
                                MenuGroupId="200"
                                Sequence="210"
                                UseShortId="true"
                                ClientOnClickScriptContainingPrefixedUrl="if (LaunchCreateHandler('Page')) { OpenCreateWebPageDialog('~site/_layouts/createwebpage.aspx') }"
                                PermissionsString="AddListItems, EditListItems"
                                PermissionMode="All" />
                            <SharePoint:MenuItemTemplate runat="server" id="MenuItem_CreateDocLib"
                                Text="<%$Resources:wss,siteactions_createdoclib%>"
                                Description="<%$Resources:wss,siteactions_createdoclibdesc%>"
                                ImageUrl="/_layouts/images/NewDocLibHH.png"
                                MenuGroupId="200"
                                Sequence="220"
                                UseShortId="true"
                                ClientOnClickScriptContainingPrefixedUrl="if (LaunchCreateHandler('DocLib')) { GoToPage('~site/_layouts/new.aspx?FeatureId={00bfea71-e717-4e80-aa17-d0c71b360101}&amp;ListTemplate=101') }"
                                PermissionsString="ManageLists"
                                PermissionMode="Any"
                                VisibilityFeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101" />
                            <SharePoint:MenuItemTemplate runat="server" id="MenuItem_CreateSite"
                                Text="<%$Resources:wss,siteactions_createsite%>"
                                Description="<%$Resources:wss,siteactions_createsitedesc%>"
                                ImageUrl="/_layouts/images/newweb32.png"
                                MenuGroupId="200"
                                Sequence="230"
                                UseShortId="true"
                                ClientOnClickScriptContainingPrefixedUrl="if (LaunchCreateHandler('Site')) { STSNavigate('~site/_layouts/newsbweb.aspx') }"
                                PermissionsString="ManageSubwebs,ViewFormPages"
                                PermissionMode="All" />
                            <SharePoint:MenuItemTemplate runat="server" id="MenuItem_Create"
                                Text="<%$Resources:wss,siteactions_create%>"
                                Description="<%$Resources:wss,siteactions_createdesc%>"
                                MenuGroupId="200"
                                Sequence="240"
                                UseShortId="true"
                                ClientOnClickScriptContainingPrefixedUrl="if (LaunchCreateHandler('All')) { STSNavigate('~site/_layouts/create.aspx') }"
                                PermissionsString="ManageLists, ManageSubwebs"
                                PermissionMode="Any" />
                            <SharePoint:MenuItemTemplate runat="server" id="MenuItem_ViewAllSiteContents"
                                Text="<%$Resources:wss,quiklnch_allcontent%>"
                                Description="<%$Resources:wss,siteactions_allcontentdescription%>"
                                ImageUrl="/_layouts/images/allcontent32.png"
                                MenuGroupId="300"
                                Sequence="302"
                                UseShortId="true"
                                ClientOnClickNavigateUrl="~site/_layouts/viewlsts.aspx"
                                PermissionsString="ViewFormPages"
                                PermissionMode="Any" />
                             <SharePoint:MenuItemTemplate runat="server" id="MenuItem_EditSite"
                                Text="<%$Resources:wss,siteactions_editsite%>"
                                Description="<%$Resources:wss,siteactions_editsitedescription%>"
                                ImageUrl="/_layouts/images/SharePointDesigner32.png"
                                MenuGroupId="300"
                                Sequence="304"
                                UseShortId="true"
                                ClientOnClickScriptContainingPrefixedUrl="EditInSPD('~site/',true);"
                                PermissionsString="AddAndCustomizePages"
                                PermissionMode="Any"
                            />
                            <SharePoint:MenuItemTemplate runat="server" id="MenuItem_SitePermissions"
                                Text="<%$Resources:wss,people_sitepermissions%>"
                                Description="<%$Resources:wss,siteactions_sitepermissiondescriptionv4%>"
                                ImageUrl="/_layouts/images/Permissions32.png"
                                MenuGroupId="300"
                                Sequence="310"
                                UseShortId="true"
                                ClientOnClickNavigateUrl="~site/_layouts/user.aspx"
                                PermissionsString="EnumeratePermissions"
                                PermissionMode="Any" />
                            <SharePoint:MenuItemTemplate runat="server" id="MenuItem_Settings"
                                Text="<%$Resources:wss,settings_pagetitle%>"
                                Description="<%$Resources:wss,siteactions_sitesettingsdescriptionv4%>"
                                ImageUrl="/_layouts/images/settingsIcon.png"
                                MenuGroupId="300"
                                Sequence="320"
                                UseShortId="true"
                                ClientOnClickNavigateUrl="~site/_layouts/settings.aspx"
                                PermissionsString="EnumeratePermissions,ManageWeb,ManageSubwebs,AddAndCustomizePages,ApplyThemeAndBorder,ManageAlerts,ManageLists,ViewUsageData"
                                PermissionMode="Any" />
                            <SharePoint:MenuItemTemplate runat="server" id="MenuItem_CommitNewUI"
                                Text="<%$Resources:wss,siteactions_commitnewui%>"
                                Description="<%$Resources:wss,siteactions_commitnewuidescription%>"
                                ImageUrl="/_layouts/images/visualupgradehh.png"
                                MenuGroupId="300"
                                Sequence="330"
                                UseShortId="true"
                                ClientOnClickScriptContainingPrefixedUrl="GoToPage('~site/_layouts/prjsetng.aspx')"
                                PermissionsString="ManageWeb"
                                PermissionMode="Any"
                                ShowOnlyIfUIVersionConfigurationEnabled="true" />
                        </SharePoint:FeatureMenuTemplate>
                        </CustomTemplate>
                      </SharePoint:SiteActions>
                      </span>
                       <!-- end site actions -->
               
                <!-- global nav -->
                <asp:ContentPlaceHolder id="PlaceHolderGlobalNavigation" runat="server">
                        <SharePoint:PopoutMenu
                            runat="server"
                            ID="GlobalBreadCrumbNavPopout"
                            IconUrl="/_layouts/images/fgimg.png"
                            IconAlt="<%$Resources:wss,master_breadcrumbIconAlt%>"
                            IconOffsetX=0
                            IconOffsetY=112
                            IconWidth=16
                            IconHeight=16
                            AnchorCss="s4-breadcrumb-anchor"
                            AnchorOpenCss="s4-breadcrumb-anchor-open"
                            MenuCss="s4-breadcrumb-menu">
                            <div class="s4-breadcrumb-top">
                                <asp:Label runat="server" CssClass="s4-breadcrumb-header" Text="<%$Resources:wss,master_breadcrumbHeader%>" />
                            </div>
                            <asp:ContentPlaceHolder id="PlaceHolderTitleBreadcrumb" runat="server">
                                <SharePoint:ListSiteMapPath
                                    runat="server"
                                    SiteMapProviders="SPSiteMapProvider,SPContentMapProvider"
                                    RenderCurrentNodeAsLink="false"
                                    PathSeparator=""
                                    CssClass="s4-breadcrumb"
                                    NodeStyle-CssClass="s4-breadcrumbNode"
                                    CurrentNodeStyle-CssClass="s4-breadcrumbCurrentNode"
                                    RootNodeStyle-CssClass="s4-breadcrumbRootNode"
                                    NodeImageOffsetX=0
                                    NodeImageOffsetY=353
                                    NodeImageWidth=16
                                    NodeImageHeight=16
                                    NodeImageUrl="/_layouts/images/fgimg.png"
                                    RTLNodeImageOffsetX=0
                                    RTLNodeImageOffsetY=376
                                    RTLNodeImageWidth=16
                                    RTLNodeImageHeight=16
                                    RTLNodeImageUrl="/_layouts/images/fgimg.png"
                                    HideInteriorRootNodes="true"
                                    SkipLinkText="" />
                                </asp:ContentPlaceHolder>
                        </SharePoint:PopoutMenu>
                        <div class="s4-die">
                            <asp:ContentPlaceHolder id="PlaceHolderGlobalNavigationSiteMap" runat="server" Visible="false">
                            </asp:ContentPlaceHolder>
                        </div>
                </asp:ContentPlaceHolder>
                <!-- end global nav -->
               
                <SharePoint:PageStateActionButton id="PageStateActionButton" runat="server" Visible="false" />
            </SharePoint:SPRibbonPeripheralContent>
            <SharePoint:SPRibbonPeripheralContent
                runat="server"
                Location="TabRowRight"
                ID="RibbonTabRowRight"
                CssClass="s4-trc-container s4-notdlg">
               
    <!-- GlobalSiteLink0 delegate - the variation selector / shows nothing by default otherwise -->
    <SharePoint:DelegateControl runat="server" ID="GlobalDelegate0" ControlId="GlobalSiteLink0" />
     <a href="#" tabindex="-1" style="display:none"></a><a href="#" tabindex="-1" style="display:none"></a>
     <div class="s4-trc-container-menu">
         <div>
            <!-- Welcome Control -->
            <wssuc:Welcome id="IdWelcome" runat="server" EnableViewState="false">
            </wssuc:Welcome>
           
            <!-- MultiLingual User Interface Menu -->
            <wssuc:MUISelector ID="IdMuiSelector" runat="server"/>
        </div>
    </div>
   
    <!-- GlobalSiteLink2 delegate default shows nothing -->
    <SharePoint:DelegateControl ControlId="GlobalSiteLink2" ID="GlobalDelegate2" Scope="Farm" runat="server" />
    <span>
   
        <!-- developer dashboard -->
        <span class="s4-devdashboard">
            <Sharepoint:DeveloperDashboardLauncher
                ID="DeveloperDashboardLauncher"
                NavigateUrl="javascript:ToggleDeveloperDashboard()"
                runat="server"
                ImageUrl="/_layouts/images/fgimg.png"
                Text="<%$Resources:wss,multipages_launchdevdashalt_text%>"
                OffsetX=0
                OffsetY=222
                Height=16
                Width=16 />
        </span>
        <!-- end developer dashboard -->
       
    </span>
            </SharePoint:SPRibbonPeripheralContent>
        </SharePoint:SPRibbon>
        <!-- end ribbon control -->
    </div>
    <!-- end s4-ribboncont -->
   
    <!-- dynamic notification area -->
    <div id="notificationArea" class="s4-noti">
    </div>
   
    <!-- old navigation delegate? -->
    <asp:ContentPlaceHolder ID="SPNavigation" runat="server">
            <SharePoint:DelegateControl runat="server" ControlId="PublishingConsole" Id="PublishingConsoleDelegate">
           </SharePoint:DelegateControl>
    </asp:ContentPlaceHolder>
   
    <!-- top web part panel -->
    <div id="WebPartAdderUpdatePanelContainer">
        <asp:UpdatePanel
            ID="WebPartAdderUpdatePanel"
            UpdateMode="Conditional"
            ChildrenAsTriggers="false"
            runat="server">
            <ContentTemplate>
                <WebPartPages:WebPartAdder ID="WebPartAdder" runat="server" />
            </ContentTemplate>
            <Triggers>
                <asp:PostBackTrigger ControlID="WebPartAdder" />
            </Triggers>
        </asp:UpdatePanel>
    </div>
   
</div>
<!-- end s4-ribbonrow -->
<!-- === end ribbon ================================================================== -->

<!-- === workspace =================================================================== -->
<div id="s4-workspace">
        <div id="s4-bodyContainer">
            <div id="s4-titlerow" class="s4-pr s4-notdlg s4-titlerowhidetitle">
                <div class="s4-title s4-lp">
                    <div class="s4-title-inner">
                        <table class="s4-titletable" cellspacing="0">
                            <tbody>
                                <tr>
                                    <td class="s4-titlelogo">
                                        <SharePoint:SPLinkButton runat="server" NavigateUrl="~site/" id="onetidProjectPropertyTitleGraphic">
                                            <SharePoint:SiteLogoImage name="onetidHeadbnnr0" id="onetidHeadbnnr2" LogoImageUrl="/_layouts/images/siteIcon.png" runat="server"/>
                                        </SharePoint:SPLinkButton>
                                    </td>
                                    <td class="s4-titletext">
                                        <h1 name="onetidProjectPropertyTitle">
                                            <!-- The name of the site where the current page resides. -->
                                            <asp:ContentPlaceHolder id="PlaceHolderSiteName" runat="server">
                                                <SharePoint:SPLinkButton runat="server" NavigateUrl="~site/" id="onetidProjectPropertyTitle"><SharePoint:ProjectProperty Property="Title" runat="server" /></SharePoint:SPLinkButton>
                                            </asp:ContentPlaceHolder>
                                        </h1>
                                        <span id="onetidPageTitleSeparator" class="s4-nothome s4-bcsep s4-titlesep">
                                        <SharePoint:ClusteredDirectionalSeparatorArrow runat="server"/> </span>
                                        <h2>
                                            <!-- page title -->
                                            <asp:ContentPlaceHolder id="PlaceHolderPageTitleInTitleArea" runat="server" />
                                        </h2>
                                        <div class="s4-pagedescription" tabindex="0" >
                                            <!-- page description -->
                                            <asp:ContentPlaceHolder id="PlaceHolderPageDescription" runat="server"/>
                                        </div>
                                    </td>
                                    <td class="s4-socialdata-notif">
                                        <SharePoint:DelegateControl ControlId="GlobalSiteLink3" Scope="Farm" runat="server"/>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        <!-- end s4-titletable -->
                    </div><!-- end s4-title-inner -->
                </div><!-- end s4-title -->
                <div id="s4-topheader2" class="s4-pr s4-notdlg">
                    <a name="startNavigation"></a>
                    <div id="s4-searcharea" class="s4-search s4-rp">
                        <!-- search box loads from delegate, style with CSS -->
                        <asp:ContentPlaceHolder id="PlaceHolderSearchArea" runat="server">
                            <SharePoint:DelegateControl runat="server" ControlId="SmallSearchInputBox" Version="4"/>
                        </asp:ContentPlaceHolder>
                        <span class="s4-help">
                                <!-- help button -->
                                <span style="height:17px;width:17px;position:relative;display:inline-block;overflow:hidden;" class="s4-clust">
                                    <a href="#" style="height:17px;width:17px;display:inline-block;" onclick="TopHelpButtonClick('HelpHome');return false" accesskey="<%$Resources:wss,multipages_helplink_accesskey%>" id="TopHelpLink" title="<%$Resources:wss,multipages_helplinkalt_text%>" runat="server"><img src="/_layouts/images/fgimg.png" alt="<%$Resources:wss,multipages_helplinkalt_text%>" style="left:-0px !important;top:-309px !important;position:absolute;" align="absmiddle" border="0" runat="server" /></a>
                                </span>
                        </span>
                    </div><!-- end s4-searcharea -->
                    <div class="s4-rp s4-app">
                    </div>
                    <div class="s4-lp s4-toplinks">
                        <!-- The top navigation where GlobalNavigationSiteMap is contained. Gets overridden by default. V4 uses it to change the top nav -->
                        <asp:ContentPlaceHolder id="PlaceHolderTopNavBar" runat="server">
                        <h2 class="ms-hidden">
                            <SharePoint:EncodedLiteral runat="server" text="<%$Resources:wss,topnav_pagetitle%>" EncodeMethod="HtmlEncode"/>
                        </h2>
                                <!-- The navigation menu that is inside the top navigation bar. -->
                                <asp:ContentPlaceHolder id="PlaceHolderHorizontalNav" runat="server">
    <SharePoint:AspMenu
      ID="TopNavigationMenuV4"
      Runat="server"
      EnableViewState="false"
      DataSourceID="topSiteMap"
      AccessKey="<%$Resources:wss,navigation_accesskey%>"
      UseSimpleRendering="true"
      UseSeparateCss="false"
      Orientation="Horizontal"
      StaticDisplayLevels="2"
      MaximumDynamicDisplayLevels="1"
      SkipLinkText=""
      CssClass="s4-tn"/>
    <SharePoint:DelegateControl runat="server" ControlId="TopNavigationDataSource" Id="topNavigationDelegate">
        <Template_Controls>
            <asp:SiteMapDataSource
              ShowStartingNode="False"
              SiteMapProvider="SPNavigationProvider"
              id="topSiteMap"
              runat="server"
              StartingNodeUrl="sid:1002"/>
        </Template_Controls>
    </SharePoint:DelegateControl>
                                </asp:ContentPlaceHolder>
                        </asp:ContentPlaceHolder><!-- end PlaceHoldertopNavBar -->
                    </div><!-- s4-lp s4-toplinks -->
                </div><!-- end s4-topheader2 -->
            </div><!-- end s4-titlerow -->

            <div id="s4-statusbarcontainer">
                <div id="pageStatusBar" class="s4-status-s1">
                </div>
            </div><!-- end s4-statusbarcontainer -->

            <!-- Visual Upgrade Status -->
            <SharePoint:VisualUpgradePreviewStatus runat="server"/>

                <div id="s4-mainarea" class="s4-pr s4-widecontentarea">
               
                    <div id="s4-leftpanel" class="s4-notdlg">
                        <div id="s4-leftpanel-content">
                            <!-- The placement of the data source used to populate the left navigation bar. -->
                            <asp:ContentPlaceHolder id="PlaceHolderLeftNavBarDataSource" runat="server" />
                           
                            <!-- The date picker used when a calendar is visible on the page. -->
                            <asp:ContentPlaceHolder id="PlaceHolderCalendarNavigator" runat="server" />
                           
                            <!-- The small menu attached Quick Launch bar. Used only on very specific pages -->
                            <asp:ContentPlaceHolder id="PlaceHolderLeftActions" runat="server"></asp:ContentPlaceHolder>
                           
                            <!-- The top section of the left navigation bar. -->
                            <asp:ContentPlaceHolder id="PlaceHolderLeftNavBarTop" runat="server"/>
                           
                            <!-- The quick launch bar / left navigation -->
                            <asp:ContentPlaceHolder id="PlaceHolderLeftNavBar" runat="server">
                    <div class="ms-quicklaunchouter">
                    <div class="ms-quickLaunch">
                    <Sharepoint:UIVersionedContent runat="server" UIVersion="4">
                        <ContentTemplate>
                            <h2 style="display:inline;" class="ms-hidden">
                                <SharePoint:EncodedLiteral runat="server" text="<%$Resources:wss,quiklnch_pagetitle%>" EncodeMethod="HtmlEncode"/>
                            </h2>
                        </ContentTemplate>
                    </SharePoint:UIVersionedContent>
                   
                    <!-- The top of the Quick Launch menu. -->
                    <asp:ContentPlaceHolder id="PlaceHolderQuickLaunchTop" runat="server">
                    <SharePoint:UIVersionedContent UIVersion="3" runat="server">
                        <ContentTemplate>
                            <h3 class="ms-standardheader">
                                <label class="ms-hidden">
                                    <SharePoint:EncodedLiteral runat="server" text="<%$Resources:wss,quiklnch_pagetitle%>" EncodeMethod="HtmlEncode"/>
                                </label>
                                <Sharepoint:SPSecurityTrimmedControl runat="server" PermissionsString="ViewFormPages">
                                    <div class="ms-quicklaunchheader">
                                        <SharePoint:SPLinkButton id="idNavLinkViewAll" runat="server" NavigateUrl="~site/_layouts/viewlsts.aspx" Text="<%$Resources:wss,quiklnch_allcontent%>" accesskey="<%$Resources:wss,quiklnch_allcontent_AK%>"/>
                                    </div>
                                </SharePoint:SPSecurityTrimmedControl>
                            </h3>
                        </ContentTemplate>
                    </SharePoint:UIVersionedContent>
                    </asp:ContentPlaceHolder>
                    <!-- end PlaceHolderQuickLaunchTop -->
                   
                    <!-- SPNavigationManager -->
                    <Sharepoint:SPNavigationManager
                    id="QuickLaunchNavigationManager"
                    runat="server"
                    QuickLaunchControlId="QuickLaunchMenu"
                    ContainedControl="QuickLaunch"
                    EnableViewState="false"
                    CssClass="ms-quicklaunch-navmgr">
                    <div>
                        <SharePoint:DelegateControl runat="server" ControlId="QuickLaunchDataSource">
                            <Template_Controls>
                            <asp:SiteMapDataSource SiteMapProvider="SPNavigationProvider" ShowStartingNode="False" id="QuickLaunchSiteMap" StartingNodeUrl="sid:1025" runat="server" />
                         </Template_Controls>
                        </SharePoint:DelegateControl>
                        <SharePoint:UIVersionedContent UIVersion="3" runat="server">
                            <ContentTemplate>
                                <SharePoint:AspMenu id="QuickLaunchMenu" runat="server" DataSourceId="QuickLaunchSiteMap" Orientation="Vertical" StaticDisplayLevels="2" ItemWrap="true" MaximumDynamicDisplayLevels="0" StaticSubMenuIndent="0" SkipLinkText="" CssClass="s4-die">
                                    <LevelMenuItemStyles>
                                        <asp:menuitemstyle CssClass="ms-navheader" />
                                        <asp:menuitemstyle CssClass="ms-navitem" />
                                    </LevelMenuItemStyles>
                                    <LevelSubMenuStyles>
                                        <asp:submenustyle CssClass="ms-navSubMenu1" />
                                        <asp:submenustyle CssClass="ms-navSubMenu2" />
                                    </LevelSubMenuStyles>
                                    <LevelSelectedStyles>
                                        <asp:menuitemstyle CssClass="ms-selectednavheader" />
                                        <asp:menuitemstyle CssClass="ms-selectednav" />
                                    </LevelSelectedStyles>
                                </SharePoint:AspMenu>
                            </ContentTemplate>
                        </SharePoint:UIVersionedContent>
                        <SharePoint:UIVersionedContent UIVersion="4" runat="server">
                            <ContentTemplate>
                                <SharePoint:AspMenu id="V4QuickLaunchMenu" runat="server" EnableViewState="false" DataSourceId="QuickLaunchSiteMap" UseSimpleRendering="true" UseSeparateCss="false" Orientation="Vertical" StaticDisplayLevels="2" MaximumDynamicDisplayLevels="0" SkipLinkText="" CssClass="s4-ql" />
                            </ContentTemplate>
                        </SharePoint:UIVersionedContent>
                    </div>
                    </Sharepoint:SPNavigationManager>
                    <!-- end SPNavigationManager -->
                   
                <Sharepoint:UIVersionedContent runat="server" UIVersion="3">
                    <ContentTemplate>
                        <Sharepoint:SPNavigationManager
                        id="TreeViewNavigationManager"
                        runat="server"
                        ContainedControl="TreeView"
                        >
                          <table class="ms-navSubMenu1" cellpadding="0" cellspacing="0" border="0">
                            <tr>
                              <td>
                                <table class="ms-navheader" width="100%" cellpadding="0" cellspacing="0" border="0">
                                  <tr>
                                    <td nowrap="nowrap" id="idSiteHierarchy">
                                      <SharePoint:SPLinkButton runat="server" NavigateUrl="~site/_layouts/viewlsts.aspx" id="idNavLinkSiteHierarchy" Text="<%$Resources:wss,treeview_header%>" accesskey="<%$Resources:wss,quiklnch_allcontent_AK%>"/>
                                    </td>
                                  </tr>
                                </table>
                              </td>
                            </tr>
                          </table>
                          <div class="ms-treeviewouter">
                            <SharePoint:DelegateControl runat="server" ControlId="TreeViewAndDataSource">
                              <Template_Controls>
                                <SharePoint:SPHierarchyDataSourceControl
                                 runat="server"
                                 id="TreeViewDataSource"
                                 RootContextObject="Web"
                                 IncludeDiscussionFolders="true"
                                />
                                <SharePoint:SPRememberScroll runat="server" id="TreeViewRememberScroll" onscroll="javascript:_spRecordScrollPositions(this);" style="overflow: auto;height: 400px;width: 150px; ">
                                  <Sharepoint:SPTreeView
                                    id="WebTreeView"
                                    runat="server"
                                    ShowLines="false"
                                    DataSourceId="TreeViewDataSource"
                                    ExpandDepth="0"
                                    SelectedNodeStyle-CssClass="ms-tvselected"
                                    NodeStyle-CssClass="ms-navitem"
                                    NodeStyle-HorizontalPadding="2"
                                    SkipLinkText=""
                                    NodeIndent="12"
                                    ExpandImageUrl="/_layouts/images/tvplus.gif"
                                    CollapseImageUrl="/_layouts/images/tvminus.gif"
                                    NoExpandImageUrl="/_layouts/images/tvblank.gif"
                                  >
                                  </Sharepoint:SPTreeView>
                                </Sharepoint:SPRememberScroll>
                              </Template_Controls>
                            </SharePoint:DelegateControl>
                          </div><!-- end ms-treeviewouter -->
                        </Sharepoint:SPNavigationManager>
                    </ContentTemplate>
                </SharePoint:UIVersionedContent>
                <Sharepoint:UIVersionedContent runat="server" UIVersion="4">
                    <ContentTemplate>
                        <Sharepoint:SPNavigationManager
                        id="TreeViewNavigationManagerV4"
                        runat="server"
                        ContainedControl="TreeView"
                        CssClass="s4-treeView"
                        >
                          <SharePoint:SPLinkButton runat="server" NavigateUrl="~site/_layouts/viewlsts.aspx" id="idNavLinkSiteHierarchyV4" Text="<%$Resources:wss,treeview_header%>" accesskey="<%$Resources:wss,quiklnch_allcontent_AK%>" CssClass="s4-qlheader" />
                              <div class="ms-treeviewouter">
                                <SharePoint:DelegateControl runat="server" ControlId="TreeViewAndDataSource">
                                  <Template_Controls>
                                    <SharePoint:SPHierarchyDataSourceControl
                                     runat="server"
                                     id="TreeViewDataSourceV4"
                                     RootContextObject="Web"
                                     IncludeDiscussionFolders="true"
                                    />
                                    <SharePoint:SPRememberScroll runat="server" id="TreeViewRememberScrollV4" onscroll="javascript:_spRecordScrollPositions(this);" style="overflow: auto;height: 400px;width: 155px; ">
                                      <Sharepoint:SPTreeView
                                        id="WebTreeViewV4"
                                        runat="server"
                                        ShowLines="false"
                                        DataSourceId="TreeViewDataSourceV4"
                                        ExpandDepth="0"
                                        SelectedNodeStyle-CssClass="ms-tvselected"
                                        NodeStyle-CssClass="ms-navitem"
                                        SkipLinkText=""
                                        NodeIndent="12"
                                        ExpandImageUrl="/_layouts/images/tvclosed.png"
                                        ExpandImageUrlRtl="/_layouts/images/tvclosedrtl.png"
                                        CollapseImageUrl="/_layouts/images/tvopen.png"
                                        CollapseImageUrlRtl="/_layouts/images/tvopenrtl.png"
                                        NoExpandImageUrl="/_layouts/images/tvblank.gif"
                                      >
                                      </Sharepoint:SPTreeView>
                                    </Sharepoint:SPRememberScroll>
                                  </Template_Controls>
                                </SharePoint:DelegateControl>
                              </div>
                        </Sharepoint:SPNavigationManager>
                    </ContentTemplate>
                </SharePoint:UIVersionedContent>
       
                    <!-- PlaceHolderQuickLaunchBottom -->
                    <asp:ContentPlaceHolder id="PlaceHolderQuickLaunchBottom" runat="server">
                    <SharePoint:UIVersionedContent UIVersion="3" runat="server" id="PlaceHolderQuickLaunchBottomV3">
                        <ContentTemplate>
                            <table width="100%" cellpadding="0" cellspacing="0" border="0" class="s4-die">
                                <tbody>
                                    <tr>
                                        <td>
                                            <table class="ms-recyclebin" width="100%" cellpadding="0" cellspacing="0" border="0">
                                                <tbody>
                                                    <tr>
                                                        <td nowrap="nowrap">
                                                            <SharePoint:SPLinkButton runat="server" NavigateUrl="~site/_layouts/recyclebin.aspx" id="v3idNavLinkRecycleBin" ImageUrl="/_layouts/images/recycbin.gif" Text="<%$Resources:wss,StsDefault_RecycleBin%>" PermissionsString="DeleteListItems" />
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                        </ContentTemplate>
                    </SharePoint:UIVersionedContent>
                    <SharePoint:UIVersionedContent UIVersion="4" runat="server" id="PlaceHolderQuickLaunchBottomV4">
                        <ContentTemplate>
                            <ul class="s4-specialNavLinkList">
                                <li>
                                    <SharePoint:ClusteredSPLinkButton
                                        runat="server"
                                        NavigateUrl="~site/_layouts/recyclebin.aspx"
                                        ImageClass="s4-specialNavIcon"
                                        ImageUrl="/_layouts/images/fgimg.png"
                                        ImageWidth=16
                                        ImageHeight=16
                                        OffsetX=0
                                        OffsetY=428
                                        id="idNavLinkRecycleBin"
                                        Text="<%$Resources:wss,StsDefault_RecycleBin%>"
                                        CssClass="s4-rcycl"
                                        PermissionsString="DeleteListItems" />
                                </li>
                                <li>
                                    <SharePoint:ClusteredSPLinkButton
                                        id="idNavLinkViewAllV4"
                                        runat="server"
                                        PermissionsString="ViewFormPages"
                                        NavigateUrl="~site/_layouts/viewlsts.aspx"
                                        ImageClass="s4-specialNavIcon"
                                        ImageUrl="/_layouts/images/fgimg.png"
                                        ImageWidth=16
                                        ImageHeight=16
                                        OffsetX=0
                                        OffsetY=0
                                        Text="<%$Resources:wss,quiklnch_allcontent_short%>"
                                        accesskey="<%$Resources:wss,quiklnch_allcontent_AK%>"/>
                                </li>
                            </ul>
                        </ContentTemplate>
                    </SharePoint:UIVersionedContent>
                    </asp:ContentPlaceHolder>
                    <!-- end PlaceHolderQuickLaunchBottom -->
                   
                    </div><!-- end ms-quicklaunch -->
                    </div><!-- end ms-quicklaunchouter -->
                            </asp:ContentPlaceHolder>
                            <!-- end PlaceHolderLeftNavBar -->
                           
                        </div><!-- end s4-leftpanel-content -->
                    </div><!-- end s4-leftpanel -->
   
                    <div class="s4-ca s4-ca-dlgNoRibbon" id="MSO_ContentTable">
                        <div class="s4-die">
                            <!-- Page icon in the upper-left area of the page -->
                            <asp:ContentPlaceHolder id="PlaceHolderPageImage" runat="server" Visible="false"/>
                            <!-- Left border of the title area -->
                            <asp:ContentPlaceHolder id="PlaceHolderTitleLeftBorder" runat="server" Visible="false">
                            </asp:ContentPlaceHolder>
                                <div id="onetidPageTitleAreaFrame" class='ms-pagetitleareaframe s4-pagetitle'></div>
                            <!-- mini console - supplementary buttons for pages like the wiki / history / incoming links -->
                            <asp:ContentPlaceHolder id="PlaceHolderMiniConsole" runat="server" Visible="false"/>
                            <span class="s4-die">
                                <!-- Right margin of the title area -->
                                <asp:ContentPlaceHolder id="PlaceHolderTitleRightMargin" runat="server" Visible="false"/>
                            </span>
                            <!-- Left border of the title area -->
                            <asp:ContentPlaceHolder id="PlaceHolderTitleAreaSeparator" runat="server" Visible="false"/>
                                <!-- The width of the left navigation area -->
                                <asp:ContentPlaceHolder id="PlaceHolderNavSpacer" runat="server" Visible="false">
                                    <img src="/_layouts/images/blank.gif" width='138' height='1' alt="" />
                                </asp:ContentPlaceholder>
                            <!-- The border of the left navigation area -->
                            <asp:ContentPlaceHolder id="PlaceHolderLeftNavBarBorder" runat="server" Visible="false"></asp:ContentPlaceHolder>
                            <!-- Border element for the main page body -->
                            <asp:ContentPlaceHolder id="PlaceHolderBodyLeftBorder" runat="server" Visible="false">
                            </asp:ContentPlaceHolder>
                        </div>
                        <SharePoint:VersionedPlaceHolder UIVersion="3" ID="DesignModeConsoleV3" runat="server">
                            <asp:ContentPlaceHolder id="WSSDesignConsole" runat="server">
                                <wssuc:DesignModeConsole id="IdDesignModeConsole" runat="server" />
                            </asp:ContentPlaceHolder>
                        </SharePoint:VersionedPlaceHolder>
                            <div class='s4-ba'>
                                <div class='ms-bodyareacell'>
                                    <div id="MSO_ContentDiv" runat="server">
                                        <a name="mainContent"></a>
                                       
                                        <!-- page content loads from the pages and pages layout -->
                                        <asp:ContentPlaceHolder id="PlaceHolderMain" runat="server">
                                        </asp:ContentPlaceHolder>
                                       
                                    </div>
                                </div>
                            </div>
                        <div class="s4-die">
                            <!-- Right margin of the main page body -->
                            <asp:ContentPlaceHolder id="PlaceHolderBodyRightMargin" runat="server">
                            </asp:ContentPlaceHolder>
                        </div>
                    </div><!-- end MSO_ContentTable -->
           
                </div><!-- end s4-mainarea -->
           
            <!-- the developer dashboard can be turned on by administrators and shows debuging and performance info for the page -->
            <SharePoint:DeveloperDashboard runat="server"/>
           
        </div><!-- end s4-bodyContainer -->
</div><!-- end s4-workspace -->
<!-- === end workspace =================================================================== -->

<!-- === hidden controls ================================================================= -->
<asp:Panel visible="false" runat="server">

</asp:Panel>
<!-- === end hidden controls ============================================================= -->

    <!-- The form digest security control used to for security validation on forms -->
    <asp:ContentPlaceHolder id="PlaceHolderFormDigest" runat="server">
        <SharePoint:FormDigest runat="server"/>
    </asp:ContentPlaceHolder>
 
   <!-- handle search "enter" key and back button -->
   <input type="text" name="__spText1" title="text" style="display:none;" />
   <input type="text" name="__spText2" title="text" style="display:none;" />
  
  </form>
 
    <!-- extra form for some instances -->
    <asp:ContentPlaceHolder id="PlaceHolderUtilityContent" runat="server"/>
   
    <!-- Warning for unsupported browsers (ie6) -->
    <SharePoint:WarnOnUnsupportedBrowsers runat="server"/>

</body>
</html>

Followers