December 22, 2011

Custom master page


Custom MasterPage in Sharepoint 2010

Step1:Create a Empty Sharepoint Project
Step2:Create a module in that project
Step3:Create Folders in structure(_catalogs/masterpage/)in that Module
Step4:Add a Materpage file(by renaming a txt or xml file and extention)
Step5:In the Element.xml of that module, create module and file
by pasting the following code
<Module Name="SampleMaster"
     Url="_catalogs/masterpage">
      <File Path="SampleMaster\_catalogs\masterpage\SampleMater.master"
          Url="SampleMater.master"
          Type="GhostableInLibrary" />
    </Module>


Step6: paste following code in materpage(.master)(Note:This is a template of a masterpage)
<%@ Master Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls"
    Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ 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="DesignModeConsole" Src="~/_controltemplates/DesignModeConsole.ascx" %>
<%@ Register TagPrefix="wssuc" TagName="MUISelector" Src="~/_controltemplates/MUISelector.ascx" %>
<%@ Register TagPrefix="PublishingNavigation" Namespace="Microsoft.SharePoint.Publishing.Navigation"
    Assembly="Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>


<html id="Html1" lang="<%$Resources:wss,language_value%>" dir="<%$Resources:wss,multipages_direction_dir_value%>" runat="server" xmlns:o="urn:schemas-microsoft-com:office:office">
<head id="Head1" runat="server">
 <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"/>
 <SharePoint:RobotsMetaTag runat="server"/>
 <title id="onetidTitle"><asp:ContentPlaceHolder id="PlaceHolderPageTitle" runat="server"/></title>
 <SharePoint:CssLink runat="server" Version="4"/>
 <SharePoint:Theme runat="server"/>
 <SharePoint:ULSClientConfig runat="server"/>
 <script type="text/javascript">
     var _fV4UI = true;
      
 </script>
    <script src="/_layouts/Styles/DRAMIS/jquery-1.7.min.js" type="text/javascript"></script>
  
    <script>        $(document).ready(function () {
            window.setTimeout(
function () {
    ie
= (document.all) ?
true : false;
    if (ie) { document.execCommand('ClearAuthenticationCache', false); }
    var pathname = window.location.pathname;
    window.location = '/_layouts/AccessDenied.aspx?loginasanotheruser=true&amp;Source='
    pathname;
}, 3000000);
        });
    </script>
    <link href="/_layouts/Styles/DRAMIS/DramisMaster.css" rel="stylesheet" type="text/css" />
    <sharepoint:cssregistration ID="Cssregistration1" name="/_layouts/Styles/DRAMIS/Blog.css" after="corev4.css"
        runat="server" />
   <style type="text/css">
  
        body.v4master
        {
            overflow: visible;
            background-color: #ffffff;
        }
        #s4-bodyContainer
        {
            position: relative;
        }
        body #s4-ribbonrow
        { color: #000000;
            background-color: silver;
        }
        .s4-trc-container-menu
        {
            margin: 0;
            padding: 0;
            border: none;
            color: #ffffff;
        }
        body
        {
            overflow: auto;
        }
        form
        {
            width: 100%;
            margin-left: auto;
            margin-right: auto;
        }
        .ms-dialog body #s4-workspace
        {
            overflow: auto !important;
            background-color: #ffffff;
        }      
        #wel-si *
        {
            color: #000000; background-color: #ebebeb;
        }      
    </style>
    <script type="text/C#" runat="server">
        void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (IsDramisSiteAdmin()) pnlRibbon.Visible = true; else pnlRibbon.Visible = false;
            }
        }
        public static bool IsDramisSiteAdmin()
        {
            SPContext currentContext;
            try
            {
                //Getting the current context         
                currentContext = SPContext.Current;
            }
            catch (InvalidOperationException)
            {
                currentContext = null;
            }
            if (currentContext != null && currentContext.Web.CurrentUser != null)
            {
                if (SPContext.Current.Web.CurrentUser.IsSiteAdmin)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
    </script>
 <SharePoint:ScriptLink language="javascript" name="core.js" OnDemand="true" runat="server" />
 <SharePoint:CustomJSUrl runat="server" />
 <SharePoint:SoapDiscoveryLink runat="server" />
 <asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server">  
    </asp:ContentPlaceHolder>
 <SharePoint:DelegateControl runat="server" ControlId="AdditionalPageHead" AllowMultipleControls="true"/>
 <SharePoint:SPShortcutIcon runat="server" IconUrl="/_layouts/images/favicon.ico" />
 <asp:ContentPlaceHolder id="PlaceHolderBodyAreaClass" runat="server"/>
 <asp:ContentPlaceHolder id="PlaceHolderTitleAreaClass" runat="server"/>
 <SharePoint:SPPageManager runat="server" />
 <SharePoint:SPHelpPageComponent Visible="false" runat="server" />
</head>
<body onload="if (typeof(_spBodyOnLoadWrapper) != 'undefined') _spBodyOnLoadWrapper();" class="v4master">
  <form id="Form1" runat="server" onsubmit="if (typeof(_spFormOnSubmitWrapper) != 'undefined') {return _spFormOnSubmitWrapper();} else {return true;}">
  <asp:ScriptManager id="ScriptManager" runat="server" EnablePageMethods="false" EnablePartialRendering="true" EnableScriptGlobalization="false" EnableScriptLocalization="true" />
 <WebPartPages:SPWebPartManager id="m" runat="Server" />
<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 id="A1" 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 id="A2" 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" />
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
          <td>
              <div id="eis-header" class="s4-notdlg">
                  <!-- NOTE: any time you see s4-notdlg, this element will be hidden from SharePoint dialog windows  -->
                  <SharePoint:SPLinkButton ID="Splinkbutton1" runat="server"  NavigateUrl="~sitecollection/">
                  
                  </SharePoint:SPLinkButton>
              </div>
              <!-- search box loads from delegate, style with CSS -->
              <div id="eis-searchbar"  class="s4-notdlg">
                <asp:ContentPlaceHolder ID="PlaceHolderSearchArea" runat="server" visible="false">
                    <SharePoint:DelegateControl ID="DelegateControl1" runat="server" ControlId="SmallSearchInputBox"
                          Version="4" />
                  </asp:ContentPlaceHolder>                
                  <!-- Welcome / Login control -->                    
                  <div id="eis-login"  class="s4-trc-container-menu">
                      <div id="wel-si">
                          <br />
                          <wssuc:welcome id="IdWelcome" runat="server" enableviewstate="false">
                          </wssuc:welcome>
                      </div>
                  </div>
              </div>
          </td>
      </tr>
      <tr>
          <td>
              <div style="width: 100%">
              
              </div>
          </td>
      </tr>
      <tr>
          <td style="width: 100%">
          <SharePoint:SPSecurityTrimmedControl ID="SPSecurityTrimmedControl1" PermissionsString="ManagePermissions" runat="server">
          <asp:Panel ID="pnlRibbon" Visible="false" runat="server">
           <div id="s4-ribbonrow"  class="s4-pr s4-ribbonrowhidetitle">
             
                  <div id="s4-ribboncont">
                      <SharePoint:SPRibbon ID="SPRibbon1" runat="server" PlaceholderElementId="RibbonContainer" CssFile="">
                          <SharePoint:SPRibbonPeripheralContent ID="SPRibbonPeripheralContent1" runat="server" Location="TabRowLeft" CssClass="ms-siteactionscontainer s4-notdlg">
                              <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 ID="FeatureMenuTemplate1" 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>
                              <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 ID="Label1" runat="server" CssClass="s4-breadcrumb-header" Text="<%$Resources:wss,master_breadcrumbHeader%>" />
                                      </div>
                                      <asp:ContentPlaceHolder ID="PlaceHolderTitleBreadcrumb" runat="server">
                                          <SharePoint:ListSiteMapPath ID="ListSiteMapPath1" 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>
                              <SharePoint:PageStateActionButton ID="PageStateActionButton" runat="server" Visible="false" />
                          </SharePoint:SPRibbonPeripheralContent>
                          <SharePoint:SPRibbonPeripheralContent runat="server" Location="TabRowRight" ID="RibbonTabRowRight"
                              CssClass="s4-trc-container s4-notdlg">
                              <SharePoint:DelegateControl runat="server" ID="GlobalDelegate0" ControlId="GlobalSiteLink0" />
                              <a href="#" tabindex="-1" style="display: none"></a><a href="#" tabindex="-1" style="display: none">
                              </a>
                              <SharePoint:DelegateControl ControlId="GlobalSiteLink2" ID="GlobalDelegate2" Scope="Farm"
                                  runat="server" />
                              <span><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></span>
                          </SharePoint:SPRibbonPeripheralContent>
                      </SharePoint:SPRibbon>
                  </div>
                  <div id="notificationArea" class="s4-noti">
                  </div>
                  <asp:ContentPlaceHolder ID="SPNavigation" runat="server">
                      <SharePoint:DelegateControl runat="server" ControlId="PublishingConsole" ID="PublishingConsoleDelegate">
                      </SharePoint:DelegateControl>
                  </asp:ContentPlaceHolder>
                  <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> </asp:Panel>
           </SharePoint:SPSecurityTrimmedControl>
              <div id="s4-workspace" class="s4-nosetwidth">
                  <div id="s4-bodyContainer" style="width: 100%">
                      <div id="s4-titlerow" style="display: none" 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="/Pages/LandingPage.aspx" 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">
                                                      <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>
                                                      <asp:ContentPlaceHolder ID="PlaceHolderPageTitleInTitleArea" runat="server" />
                                                  </h2>
                                                  <div class="s4-pagedescription" tabindex="0">
                                                      <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>
                              </div>
                          </div>
                          <div id="s4-topheader2" class="s4-pr s4-notdlg">
                              <a name="startNavigation"></a>
                              <div class="s4-rp s4-app">
                              </div>
                              <div class="s4-lp s4-toplinks">
                                  <asp:ContentPlaceHolder ID="PlaceHolderTopNavBar" runat="server">
                                      <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>
                              </div>
                          </div>
                      </div>
                      <div id="s4-statusbarcontainer">
                          <div id="pageStatusBar" class="s4-status-s1">
                          </div>
                      </div>
                      <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">
                                  <asp:ContentPlaceHolder ID="PlaceHolderLeftNavBarDataSource" runat="server" />
                                  <asp:ContentPlaceHolder ID="PlaceHolderCalendarNavigator" runat="server" />
                                  <asp:ContentPlaceHolder ID="PlaceHolderLeftActions" runat="server">
                                  </asp:ContentPlaceHolder>
                                  <asp:ContentPlaceHolder ID="PlaceHolderLeftNavBarTop" runat="server" />
                                  <asp:ContentPlaceHolder ID="PlaceHolderLeftNavBar" runat="server">
                                      <div class="ms-quicklaunchouter">
                                          <div class="ms-quickLaunch">
                                              <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>
                                              <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>
                                              <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>
     </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>
                                              <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">
      <tr><td>
      <table class="ms-recyclebin" width="100%" cellpadding="0" cellspacing="0" border="0">
      <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>
      </table>
      </td></tr>
      </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>
                                          </div>
                                      </div>
                                  </asp:ContentPlaceHolder>
                              </div>
                          </div>
                          <div class="s4-ca s4-ca-dlgNoRibbon" id="MSO_ContentTable">
                              <div class="s4-die">
                                  <asp:ContentPlaceHolder ID="PlaceHolderPageImage" runat="server" Visible="false" />
                                  <asp:ContentPlaceHolder ID="PlaceHolderTitleLeftBorder" runat="server" Visible="false">
                                  </asp:ContentPlaceHolder>
                                  <div id="onetidPageTitleAreaFrame" class='ms-pagetitleareaframe s4-pagetitle'>
                                  </div>
                                  <asp:ContentPlaceHolder ID="PlaceHolderMiniConsole" runat="server" Visible="false" />
                                  <span class="s4-die">
                                      <asp:ContentPlaceHolder ID="PlaceHolderTitleRightMargin" runat="server" Visible="false" />
                                  </span>
                                  <asp:ContentPlaceHolder ID="PlaceHolderTitleAreaSeparator" runat="server" Visible="false" />
                                  <asp:ContentPlaceHolder ID="PlaceHolderNavSpacer" runat="server" Visible="false">
                                      <img src="/_layouts/images/blank.gif" width='138' height='1' alt="" /></asp:ContentPlaceHolder>
                                  <asp:ContentPlaceHolder ID="PlaceHolderLeftNavBarBorder" runat="server" Visible="false">
                                  </asp:ContentPlaceHolder>
                                  <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>
                                          <asp:ContentPlaceHolder ID="PlaceHolderMain" runat="server">                                            
                                          </asp:ContentPlaceHolder>
                                      </div>
                                  </div>
                              </div>
                              <!-- footer - this is purely optional -->
                              <div id="eis-footer" class="s4-notdlg" style="clear: both;">
                                 
                              </div>
                              <div class="s4-die">
                                  <asp:ContentPlaceHolder ID="PlaceHolderBodyRightMargin" runat="server">
                                  </asp:ContentPlaceHolder>
                              </div>
                          </div>
                      </div>
                      <SharePoint:DeveloperDashboard runat="server" />
                  </div>
              </div>
          </td>
      </tr>
  </table>
<asp:ContentPlaceHolder id="PlaceHolderFormDigest" runat="server">
   <SharePoint:FormDigest runat="server"/>
  </asp:ContentPlaceHolder>
   <input type="text" name="__spText1" title="text" style="display:none;" />
   <input type="text" name="__spText2" title="text" style="display:none;" />
  </form>
  <asp:ContentPlaceHolder id="PlaceHolderUtilityContent" runat="server"/>
 <SharePoint:WarnOnUnsupportedBrowsers runat="server"/>
</body>
</html>




Step7:Create Desired Usercontrols in that project and register thatin masterpage ,and use in place where we need.




Step8:if you want apply the masterpage to the site when activating feature:
add an event receiver in Mastrepage Feature, and Use following code in that.


  public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            SPSite CurSite = (SPSite)properties.Feature.Parent;
            SPWeb CurWeb = CurSite.RootWeb;
            //Create Full master URL
            Uri MasterUri = new Uri(CurWeb.Url + "/_catalogs/masterpage/DramisMoss.master");
            CurWeb.MasterUrl = MasterUri.AbsolutePath;
            CurWeb.CustomMasterUrl = MasterUri.AbsolutePath;
            CurWeb.Update();
           
        }


       
        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            SPSite CurSite = (SPSite)properties.Feature.Parent;
            SPWeb CurWeb = CurSite.RootWeb;
            //Create Full master URL
            Uri MasterUri = new Uri(CurWeb.Url + "/_catalogs/masterpage/V4.master");
            CurWeb.MasterUrl = MasterUri.AbsolutePath;
            CurWeb.CustomMasterUrl = MasterUri.AbsolutePath;
            CurWeb.Update();
        }
Step9:Deploy this project to desired Site