[方法] 最低限のマスタ ページを作成する
Microsoft Office SharePoint Server 2007 Web サイトの構成時に完了する必要がある最初のタスクの 1 つは、1 つ以上のマスタ ページを作成することです。マスタ ページには、Office SharePoint Server 2007 サイトの複数のページにわたって共有することができる、ナビゲーション、検索コントロール、ログオン コントロール、バナー イメージなど、要素への参照を含めます。マスタ ページには、サイト全体の外観を定義するカスケード スタイル シート (CSS) および ECMAScript (JScript、JavaScript) への参照も含めます。一般に、サイト コレクション内のすべてのサイト、つまりすべてのページは同じマスタ ページを使用し、サイト コレクション全体にわたって一貫性のある操作性を提供します。必要に応じてサイト階層内の 1 つまたはすべてのサイトで異なるマスタ ページを使用し、ポータルのさまざまなエリアを区別することもできます。
マスタ ページ ギャラリー
Office SharePoint Server 2007 でサイト コレクションを準備するときには、そのサイト コレクション用のマスタ ページとページ レイアウトをすべて含むマスタ ページ ギャラリーが、システムによって作成されます。サイト コレクションで、発行ポータル テンプレートまたはグループ作業ポータル テンプレートのどちらかが使用されている場合、マスタ ページ ギャラリーには、Office SharePoint Server 2007 に付属するマスタ ページがいくつか含まれます (BlueBand.master など)。これらのマスタ ページは、他のサンプル .master ページと共に、パス C:\Program%20Files\Common%20Files\Microsoft%20Shared\web%20server%20extensions\12\TEMPLATE\FEATURES\PublishingLayouts\MasterPages\ に置かれています。これらのマスタ ページはすべて、そのまま使用することも、細部までカスタマイズしてサイトの独自のブランド イメージを作ることもできます。
最低限のマスタ ページから始める理由
SharePoint サイトのカスタマイズを始めるためにマスタ ページを作成して完成させるには、計画と時間が必要です。マスタ ページの書き直しや不要なコードを削除する手間を省くことができます。このトピックでは、Office SharePoint Server 2007 が必要とする最低限の機能だけを備えた最低限のマスタ ページを作成し、独自のマスタ ページを構築する安定したプラットフォームを用意する方法について説明します。最低限のマスタ ページを作成すると、BlueBand.master などの既存の .master ページからコードを削除したり、機能を削除した後、カスタマイズを再度変更するときにその機能を再度構築するという時間のかかるプロセスを回避できます。
注意
このトピック では、サイト マスタ ページとして記述された最低限のマスタ ページを Office SharePoint Server 2007 で使用する方法について説明します。このトピックで説明する最低限のマスタ ページを、Office SharePoint Server 2007 のシステム マスタ ページとして使用する方法は、ここでは説明しません。このトピックの内容は、Windows SharePoint Services 3.0 には適用されません。
マスタ ページは、もちろん最初から作成することができます。ただし通常は、この方法はお勧めしません。これは、まったく空白のマスタ ページには、Office SharePoint Server 2007 ページ モデルが正常に動作するために必要なコンテンツ プレースホルダがすべて含まれているわけではないからです。
次の手順で使用するサンプル コードには、Office SharePoint Server 2007 ページ モデルが必要とするもの、つまり、Office SharePoint Server 2007 の既定のインストールで用意されたページ レイアウトを操作するために必要なコンテンツ プレースホルダとコントロールだけが含まれています。Office SharePoint Server 2007 では、マスタ ページに、タイトル、ブランド、ログオン機能、検索機能、ブレッドクラム機能、および基本構造要素 (ページ領域、セパレータ、境界、コンソール、説明プレースホルダなど) を用意する必要があります。
次の手順では、マスタ ページ設計環境として Office SharePoint Designer 2007 を使用します。ただし、テキスト エディタ、Microsoft Office SharePoint Designer 2007 などの Web エディタ、または Microsoft Visual Studio 2005 などの統合開発環境 (IDE) を使用して、マスタ ページを作成できます。
Office SharePoint Server 2007 に付属しているマスタ ページは、Windows SharePoint Services の [SPWeb] クラスの [SPWeb.CustomMasterUrl] プロパティに基づいています。
最低限のマスタ ページを作成するには
SharePoint Designer を開きます。
[ファイル] メニューの [新規作成] をクリックし、[SharePoint コンテンツ] をポイントして [ページ] タブをクリックします。
[マスタ ページ] をダブルクリックし、新しいマスタ ページを作成します。
[デザイン] をクリックし、マスタ ページをデザイン ビューで表示します。マスタ ページには、ヘッダー領域、左余白領域、およびさまざまなコンテンツ プレースホルダが表示されます。
[コード] をクリックし、マスタ ページをコード ビューで表示します。
次のコードをコピーして、マスタ ページに貼り付けます。
<%-- Identifies this page as a .master page written in Microsoft Visual C# and registers tag prefixes, namespaces, assemblies, and controls. --%> <%@ Master language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ Import Namespace="Microsoft.SharePoint" %> <%@ Register Tagprefix="SPSWC" Namespace="Microsoft.SharePoint.Portal.WebControls" Assembly="Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="PublishingWebControls" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="PublishingNavigation" Namespace="Microsoft.SharePoint.Publishing.Navigation" Assembly="Microsoft.SharePoint.Publishing, Version=12.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="PublishingVariations" TagName="VariationsLabelMenu" src="~/_controltemplates/VariationsLabelMenu.ascx" %> <%@ Register Tagprefix="PublishingConsole" TagName="Console" src="~/_controltemplates/PublishingConsole.ascx" %> <%@ Register TagPrefix="PublishingSiteAction" TagName="SiteActionMenu" src="~/_controltemplates/PublishingActionMenu.ascx" %> <%-- Uses the Microsoft Office namespace and schema. --%> <html> <WebPartPages:SPWebPartManager runat="server"/> <SharePoint:RobotsMetaTag runat="server"/> <%-- The head section includes a content placeholder for the page title and links to CSS and ECMAScript (JScript, JavaScript) files that run on the server. --%> <head runat="server"> <asp:ContentPlaceHolder runat="server" id="head"> <title> <asp:ContentPlaceHolder id="PlaceHolderPageTitle" runat="server" /> </title> </asp:ContentPlaceHolder> <Sharepoint:CssLink runat="server"/> <asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server" /> </head> <%-- When loading the body of the .master page, SharePoint Server 2007 also loads the SpBodyOnLoadWrapper class. This class handles .js calls for the master page. --%> <body onload="javascript:_spBodyOnLoadWrapper();"> <%-- The SPWebPartManager manages all of the Web part controls, functionality, and events that occur on a Web page. --%> <form runat="server" onsubmit="return _spFormOnSubmitWrapper();"> <wssuc:Welcome id="explitLogout" runat="server"/> <PublishingSiteAction:SiteActionMenu runat="server"/> <PublishingWebControls:AuthoringContainer id="authoringcontrols" runat="server"> <PublishingConsole:Console runat="server" /> </PublishingWebControls:AuthoringContainer> <%-- The PlaceHolderMain content placeholder defines where to place the page content for all the content from the page layout. The page layout can overwrite any content placeholder from the master page. Example: The PlaceHolderLeftNavBar can overwrite the left navigation bar. --%> <asp:ContentPlaceHolder id="PlaceHolderMain" runat="server" /> <asp:Panel visible="false" runat="server"> <%-- These ContentPlaceHolders ensure all default SharePoint Server pages render with this master page. If the system master page is set to any default master page, the only content placeholders required are those that are overridden by your page layouts. --%> <asp:ContentPlaceHolder id="PlaceHolderSearchArea" runat="server"/> <asp:ContentPlaceHolder id="PlaceHolderTitleBreadcrumb" runat="server"/> <asp:ContentPlaceHolder id="PlaceHolderPageTitleInTitleArea" runat="server"/> <asp:ContentPlaceHolder id="PlaceHolderLeftNavBar" runat="server"/> <asp:ContentPlaceHolder ID="PlaceHolderPageImage" runat="server"/> <asp:ContentPlaceHolder ID="PlaceHolderBodyLeftBorder" runat="server"/> <asp:ContentPlaceHolder ID="PlaceHolderNavSpacer" runat="server"/> <asp:ContentPlaceHolder ID="PlaceHolderTitleLeftBorder" runat="server"/> <asp:ContentPlaceHolder ID="PlaceHolderTitleAreaSeparator" runat="server"/> <asp:ContentPlaceHolder ID="PlaceHolderMiniConsole" runat="server"/> <asp:ContentPlaceHolder id="PlaceHolderCalendarNavigator" runat ="server" /> <asp:ContentPlaceHolder id="PlaceHolderLeftActions" runat ="server"/> <asp:ContentPlaceHolder id="PlaceHolderPageDescription" runat ="server"/> <asp:ContentPlaceHolder id="PlaceHolderBodyAreaClass" runat ="server"/> <asp:ContentPlaceHolder id="PlaceHolderTitleAreaClass" runat ="server"/> <asp:ContentPlaceHolder id="PlaceHolderBodyRightMargin" runat="server" /> </asp:Panel> </form> </body> </html>
[ファイル] メニューの [名前を付けて保存] をクリックし、拡張子 .master 付きの一意のファイル名を指定し、サイト コレクション内のマスタ ページ ギャラリー (/_catalogs/masterpage) にファイルを保存します。