既存のマスター ページを SharePoint Foundation マスター ページに更新する

最終更新日: 2015年3月9日

適用対象: SharePoint Foundation 2010

この記事の内容
サーバー リボンのコントロール
コンテンツ プレースホルダーを追加する
サーバー リボンを追加する
スクロール中にサーバー リボンの位置を維持する
コントロールをマスター ページに追加する

Server リボンの追加を含む大幅な変更が Microsoft SharePoint Foundation 2010 のユーザー インターフェイス (UI) に加えられました。既定では、Server リボンは v4.master ページに含まれます。以前にメニューやツール バーに含まれていた多くのコマンドは、Server リボン内に含まれるようになりました。したがって、既存のマスター ページに Server リボンが含まれない場合、多くのコマンドが使用不可能になります。このトピックでは、Server リボンを追加する方法と、既存のマスター ページを SharePoint Foundation 2010 で正確にレンダリングするために必要な新しいコントロールとコンテンツ プレースホルダーを追加する方法について説明します。

前提条件

Microsoft SharePoint Foundation 2010

サーバー リボンのコントロール

新しい Server リボン UI に移動した既存のマスター ページに以前含まれていたいくつかのコントロールがあります。これらのコントロールは、現在、Server リボン内に存在するため、Server リボンの機能が含まれた既存のマスター ページを更新することを計画する場合、次のコントロールを既存のマスター ページから削除する必要があります。これらのコントロールは、Server リボンをマスターページに組み込むときに追加されます。

  • 発行コンソール - <PublishingConsole:Console>

  • [サイトの操作] メニュー - <PublishingSiteAction:SiteActionMenu>

  • サインインとログイン コントロール

重要重要

カスタム サインイン コントロールを使用している場合、そのコントロールを、レイアウトに基づいて、Server リボンの内側または外側に移動できます。

コンテンツ プレースホルダーを追加する

SharePoint Foundation 2010 との互換性が維持されるようにマスター ページを更新するには、新しい ContentPlaceHolder コントロールが存在することを確認する必要があります。次の表に、SharePoint Foundation 2010 との互換性が維持されるようにマスター ページを更新するために必要なすべてのプレースホルダーを示します。

重要重要

PlaceHolderTitleAreaClass プレースホルダーは、現在、head タグ内にあります。コンテンツ タグ内の WebPartZone をこのプレースホルダーに追加するカスタマイズがあると、ページでエラーが発生します。

プレースホルダー コントロール

説明

新規

<asp:ContentPlaceHolder id="PlaceHolderQuickLaunchTop" runat="server">

サイド リンク バー メニューの上部。

はい

<asp:ContentPlaceHolder id="PlaceHolderQuickLaunchBottom" runat="server">

サイド リンク バー メニューの下部。

はい

<asp:ContentPlaceHolder id="PlaceHolderPageTitle" runat="server"/>

サイトのタイトル。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server"/>

ページの head セクション内のプレースホルダー。これを使用して ECMAScript (JavaScript、JScript)、カスケード スタイル シート (CSS) などの追加コンポーネントをページに含めます。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderBodyAreaClass" runat="server"/>

body 領域のクラス。

いいえ

<asp:ContentPlaceHolder ID="SPNavigation" runat="server">

追加のページ編集コントロールに使用するコントロール。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderSiteName" runat="server">

現在のページが存在しているサイトの名前。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderPageTitleInTitleArea" runat="server" />

ページのタイトル。ページのタイトル領域に表示されます。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderPageDescription" runat="server"/>

現在のページの説明。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderSearchArea" runat="server">

検索コントロール用のページのセクション。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderGlobalNavigation" runat="server">

ページ上の階層リンク コントロール

いいえ

<asp:ContentPlaceHolder id="PlaceHolderTitleBreadcrumb" runat="server">

階層リンク コントロールの階層リンク テキスト。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderGlobalNavigationSiteMap" runat="server">

ページのグローバル ナビゲーション内のサブサイトと兄弟サイトのリスト。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderTopNavBar" runat="server">

上部のナビゲーション バーを保持するために使用するコンテナー。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderHorizontalNav" runat="server">

上部のナビゲーション バー内にあるナビゲーション メニュー。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderLeftNavBarDataSource" runat="server" />

左側のナビゲーション バーにデータを設定するために使用するデータ ソースの位置。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderCalendarNavigator" runat="server" />

ページに予定表を表示する場合に使用する日付の選択。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderLeftNavBarTop" runat="server"/>

左側のナビゲーション バーの上部セクション。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderLeftNavBar" runat="server">

サイド リンク バー。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderLeftActions" runat="server">

サイド リンク バーの上の追加オブジェクト。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderMain" runat="server">

ページのメイン コンテンツ。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderFormDigest" runat="server">

ダイジェスト コントロールからのページが含まれるコンテナー。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderUtilityContent" runat="server"/>

ページ下部の追加コンテンツ。これは、form タグの外側にあります。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderTitleAreaClass" runat="server"/>

タイトル領域のクラス。これは、現在、head タグ内にあります。コンテンツ タグ内の WebPartZone をこのプレースホルダーに追加するカスタマイズがあると、ページでエラーが発生します。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderPageImage" runat="server"/>

このプレースホルダーは UI の一部として表示されません。これは、下位互換性を維持するために必要です。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderTitleLeftBorder" runat="server">

このプレースホルダーは UI の一部として表示されません。これは、下位互換性を維持するために必要です。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderMiniConsole" runat="server"/>

このプレースホルダーは UI の一部として表示されません。これは、下位互換性を維持するために必要です。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderTitleRightMargin" runat="server"/>

このプレースホルダーは UI の一部として表示されません。これは、下位互換性を維持するために必要です。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderTitleAreaSeparator" runat="server"/>

このプレースホルダーは UI の一部として表示されません。これは、下位互換性を維持するために必要です。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderNavSpacer" runat="server">

このプレースホルダーは UI の一部として表示されません。これは、下位互換性を維持するために必要です。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderLeftNavBarBorder" runat="server">

このプレースホルダーは UI の一部として表示されません。これは、下位互換性を維持するために必要です。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderBodyLeftBorder" runat="server">

このプレースホルダーは UI の一部として表示されません。これは、下位互換性を維持するために必要です。

いいえ

<asp:ContentPlaceHolder id="PlaceHolderBodyRightMargin" runat="server">

このプレースホルダーは UI の一部として表示されません。これは、下位互換性を維持するために必要です。

いいえ

サーバー リボンを追加する

Server リボンは、新しく追加された SharePoint Foundation の UI です。v4.master ページ内の SPRibbonPeripheralContent コントロールは、Server リボン領域の内部をレンダリングするコンテンツを含みます。このコンテンツは、必要に応じて、Server リボンの外側に移動できます。以下の手順は、ページに Server リボンを追加するコードを示しています。

サーバー リボンを追加するには

  1. マスター ページ ファイル (.master) を開きます。

  2. 次のコードをコピーし、form タグ内に貼り付けて、Server リボンをページに追加します。

    重要重要

    以下のコード サンプルにはコメントが付けられたセクションがあります。そのセクションに、カスタム マスター ページまたは v4.master マスター ページからコントロールをコピーして貼り付けます。Server リボン内に追加しない、[グローバル ナビゲーション] セクション内の ContentPlaceholder コントロールは、他の場所のページに追加する必要があります。

    <div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle">
      <div id="s4-ribboncont">
        <SharePoint:SPRibbon
         runat="server"
         PlaceholderElementId="RibbonContainer"
         CssFile="">
          <SharePoint:SPRibbonPeripheralContent
      runat="server"
      Location="TabRowLeft"
      CssClass="ms-siteactionscontainer s4-notdlg">
         <%-- Insert the Site Actions Menu Here --%>
         </SharePoint:SPRibbonPeripheralContent>
    
         <%-- Insert the Global Navigation Here --%>
         <SharePoint:SPRibbonPeripheralContent
           runat="server"
           Location="TabRowRight"
           ID="RibbonTabRowRight"
           CssClass="s4-trc-container s4-notdlg">
         <%-- Insert the Top-Right Corner Controls Here --%>
         </SharePoint:SPRibbonPeripheralContent>
    
        </SharePoint:SPRibbon>
      </div>
      <div id="notificationArea" class="s4-noti">
        <%-- Notifications will appear in this div element. --%> 
      </div>
      <asp:ContentPlaceHolder ID="SPNavigation" runat="server">
        <SharePoint:DelegateControl runat="server" ControlId="PublishingConsole">
        </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>
    
  3. マスター ページ ファイルを保存します。

スクロール中にサーバー リボンの位置を維持する

Server リボンを追加する場合、次の変更をマスターページに加えて、Server リボン ページがページをスクロールしないようにします。

スクロール中にサーバー リボンの位置を維持するには

  1. サイトのコンテンツを次の div 要素内に移動します。

    重要重要

    s4-workspace div 要素は、編集シナリオで必要です。この要素が存在しない場合は、スクリプト エラーが発生します。

    <div id="s4-workspace">
      <div id="s4-bodyContainer">
        Content
      </div>
    </div>
    

    注意

    ページが固定幅の場合、クラス s4-nosetwidth を s4-workspace の div 要素に追加します。更新された div 要素は次のようになります。<div id="s4-workspace" class="s4-nosetwidth">

  2. サイトのタイトル領域を、次の ID の div 要素に移動します。

    <div id="s4-titlerow"> 
      Title Area
    </div>
    
  3. スクロールしないように、body タグとカスケード スタイル シート (CSS) ルールを更新します。body タグとルールは次のようになります。

    <body scroll="no" ...>
      Body Content
    </body>
    
    body { overflow: hidden; ... }
    

コントロールをマスター ページに追加する

SharePoint Foundation を正常に機能するために必要な一連のコントロールがあります。それは、SPPageManagerScriptManager、および ScriptLink コントロールです。

SPPageManager コントロールは、ページ上の通信を制御します。このコントロールは、ページ上の Server リボン、ツール バー、他のコントロールとのコマンドのルーティングを行います。

ScriptManager オブジェクトは、Microsoft ASP.NET のコントロールです。これを使用して、ページ上のすべての ECMAScript (JavaScript、JScript) を管理します。SharePoint Foundation では JavaScript が幅広く使用されているため、ページに ScriptManager のインスタンスを含める必要があります。

ページで、JavaScript への参照の追加を処理するには、ScriptLink コントロールが必要です。このコントロールは、ページで、JavaScript へのリンクをレンダリングします。

コントロールをページに追加するには

  1. マスター ページ ファイルを開きます。

  2. 以下のコードをコピーして貼り付けて、ScriptManager コントロールをページに追加します。これは、form タグ内の、Server リボンの前に追加する必要があります。

    <asp:ScriptManager id="ScriptManager" runat="server" EnablePageMethods="false" EnablePartialRendering="true" EnableScriptGlobalization="false" EnableScriptLocalization="true" />
    
  3. 以下のコードをコピーして貼り付けて、SPPageManager コントロールをページに追加します。これは、head タグ内に追加する必要があります。

    <SharePoint:SPPageManager runat="server" />
    
  4. 以下のコードをコピーして貼り付けて、ScriptLink コントロールをページに追加します。これは、head タグ内に追加する必要があります。

    <SharePoint:ScriptLink defer= "true" runat="server"/>
    
  5. マスター ページ ファイルを保存します。

関連項目

概念

マスター ページ