モバイル ホーム ページをカスタマイズする

最終更新日: 2011年2月2日

適用対象: SharePoint Foundation 2010

このトピックでは、モバイル デバイスを使用してアクセス可能な Microsoft SharePoint Foundation ホーム ページをカスタマイズする基本的な手順の概要を説明します。手順の詳細については、「[ウォークスルー] モバイル ホーム ページをカスタマイズする」を参照してください。リスト ビューとリスト フォーム ページをカスタマイズする方法の概要については、「[方法] モバイル リスト ビュー ページおよびフォーム ページをカスタマイズする」を参照してください。

モバイル ページのレンダリング システム」で説明されているように、モバイル ホーム ページのヘッダー (タイトル)、本文 (コンテンツ)、およびフッター (ナビゲーション) の各領域のコントロールがそれぞれ一連の呼び出しを行い、これが最終的にはモバイル ページの対応する領域をレンダリングする RenderingTemplate オブジェクトを呼び出すことになります。ほとんどの場合、これはセグメント付き ID を持つ RenderingTemplate です。名前が一致する RenderingTemplate が見つからない場合は、既定のテンプレートが使用されます。つまり、ランタイムの検索対象となる ID を持つ RenderingTemplate を作成すると、ヘッダー、本文、またはフッターをカスタマイズできます。

特に、ランタイムは次のフォーマットの RenderingTemplate ID を検索します。

IntendedPageUse_SiteTypeID_HomePage_PageArea

プレースホルダーである IntendedPageUse、SiteTypeID、および PageArea は、「セグメント化されたレンダリング テンプレート ID」で定義されます。モバイル ページのセクションの詳細については、「モバイル ページのレイアウトと改ページ」を参照してください。

特定の IntendedPageUse、SiteTypeID、および PageArea については、名前が一致する RenderingTemplate が見つからない場合は、SiteTypeID の代わりに "Default" が指定されたものが使用されます。

IntendedPageUse_Default_HomePage_PageArea

たとえば、ID WebPartMobile_STS_HomePage_Title が指定された RenderingTemplate をランタイムが検索している場合、その名前のカスタム テンプレートが追加されていない限り、この要素は見つかりません。この場合、ランタイムは実際に存在する WebPartMobile_Default_HomePage_Title を使用して、STS サイトのモバイル ホーム ページのヘッダー (タイトル) 領域をレンダリングします。

したがって、STS サイトのモバイル ホーム ページのヘッダーのレンダリングをカスタマイズするには、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates に展開する .ascx ファイルに ID WebPartMobile_STS_HomePage_Title を持つ RenderingTemplate 要素を作成します。MobileDefaultTemplates.ascx ファイルまたは GbwMobileDefaultTemplates.ascx ファイルを変更することはできません。モバイル ページのカスタム レンダリング テンプレートを作成する方法の詳細については、このトピックで後述する手順および「[ウォークスルー] モバイル ホーム ページをカスタマイズする」を参照してください。

既存のレンダリング テンプレート

SharePoint Foundation をインストールしたときに MobileDefaultTemplates.ascx または GbwMobileDefaultTemplates.ascx にあらかじめ含まれているモバイル ホーム ページの RenderingTemplate を以下に示します。

  • Mobile_STS_HomePage_Title

  • Mobile_STS_HomePage_Contents

  • WebPartMobile_SGS_HomePage_Contents

  • WebPartMobile_STS_HomePage_Contents

これらの既存のレンダリング テンプレートと同じ ID を使用して新しい RenderingTemplate 要素を (独自の .ascx ファイルに) 作成することができます。ただし、この場合、元の RenderingTemplate オブジェクトに依存する SharePoint Foundation に展開されたその他のソリューションを破損するリスクがあります。

注意

SharePoint Foundation に含まれるレンダリング テンプレートは、カスタム テンプレートを読み込む前に読み込まれます。したがって、任意の既存のレンダリング テンプレートと同じ ID を持つカスタム テンプレートが読み込まれると、元のテンプレートが上書きされます。複数のカスタム レンダリング テンプレートが同じ ID を持つ場合、ファイル名がアルファベット順で最後のテンプレートが残りのすべてのテンプレートを上書きします。特定のファイルに同じ ID を持つ複数のレンダリング テンプレートがある場合、これらはどれも読み込まれません。

次の RenderingTemplate オブジェクトは MobileDefaultTemplates.ascx ファイルまたは GbwMobileDefaultTemplates.ascx ファイルでも定義されます。これらのオブジェクトは、現在のサイトの種類の RenderingTemplate オブジェクトが定義されていない場合に、ランタイムで使用されます (このため、これらのテンプレートは、ID IntendedPageUse_ CustomSiteID#_HomePage_PageArea を持つカスタム レンダリング テンプレートが作成されていない限り、カスタム サイト定義に基づいた Web サイトの任意のページのホーム ページ レンダリングを制御します)。これらの ID のどれかを持つ新しい RenderingTemplate オブジェクトを作成する場合、同じリスクが発生します。

  • Mobile_Default_HomePage_Title

  • Mobile_Default_HomePage_Contents

  • Mobile_Default_HomePage_Navigation

  • WebPartMobile_Default_HomePage_Title

  • WebPartMobile_Default_HomePage_Contents

  • WebPartMobile_Default_HomePage_Navigation

  • WebPartMobileDetail_Default_HomePage_Contents

  • WebPartMobileDetail_Default_HomePage_Navigation

RenderingTemplate オブジェクトをネストすることができます。次のセクションの例を参照してください。

モバイル ホーム ページのセクションをカスタマイズするには

  1. Microsoft Visual Studio で、空の SharePoint プロジェクトを作成し、そのプロジェクトをサンドボックス ソリューションではなくファーム ソリューションにします。

  2. [SharePoint のマップされたフォルダー] を TEMPLATE\ControlTemplates に追加します。

  3. 新しいフォルダーを右クリックし、SharePoint ユーザー コントロールを追加します。.ascx ファイルに、他のソリューション プロバイダーの名前と簡単に区別できる名前 (ContosoMobileRenderingTemplates.ascx など) を付けます。Visual Studio により、ファイルが SharePoint Solution マニフェストに自動的に追加され、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates に展開されるように設定されます。

    ヒントヒント

    ソリューション エクスプローラーでプロジェクトを右クリックしてユーザー コントロールを追加しないでください。この方法でユーザー コントロールを追加すると、Visual Studio は、そのコントロールを TEMPLATE\ControlTemplates のサブフォルダーに追加します。その後、Visual Studio は、移動されなかったコントロールを、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates の対応するサブフォルダーに展開します。サブフォルダー内のモバイル版のレンダリング テンプレートは読み込まれません。

  4. .ascx.cs ファイルと .ascx.designer.cs (または .ascx.vb および .ascx.designer.vb) ファイルを削除します。これらのファイルはこのプロジェクトでは必要ありません。

  5. .ascx ファイルのディレクティブ セクション全体を次のマークアップで置き換えます。

    <%@ Register TagPrefix="GroupBoardMobile"   Namespace="Microsoft.SharePoint.Applications.GroupBoard.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Control Language="C#"   %> 
    <%@ Assembly Name="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %> 
    <%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="SPMobile" Namespace="Microsoft.SharePoint.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="WPMobile" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    
  6. レンダリング テンプレートを .ascx ファイルに追加し、次のフォーマットで ID を指定します。IntendedPageUse_SiteTypeID_HomePage_PageArea

    • IntendedPageUse は、Mobile、WebPartMobile、または WebPartMobileDetail です。

    • SiteTypeID には、任意のカスタム サイト定義の STS、BLOG、または ID 番号 (名前ではありません) を指定できます (サイト定義の ID は、WebTemp.xml ファイルの Template 要素の ID 属性を使用して設定されます。サイト定義の ID 属性の詳細については、「WebTemp.xml」を参照してください)。

    • PageArea には、Title、Contents、または Navigation を指定できます。

  7. [ビルド] メニューで [ソリューションの展開] を選択します。これにより, .ascx ファイルが自動的に保存され、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates に展開され、Web アプリケーションがリサイクルされるので、そのフォルダーにあるすべての .ascx ファイルが再度読み込まれます。

RenderingTemplate の次の例では、RenderingTemplate をネストする方法を示します。この場合、カスタム テンプレートは、Microsoft のモバイル ページへのリンクをフッターに追加し、テンプレートをレンダリングする既定のフッターを呼び出して、残りのフッターをレンダリングします。

モバイル デバイスがリッチ テキストをレンダリングできない場合、モバイル STS ホーム ページは mblwp.aspx で、フッターの上部に新しいリンクが追加されます。

デバイスがリッチ テキストをレンダリングできない場合、モバイル STS ホーム ページは mblwiki.aspx です。このページのフッター (ナビゲーション) 領域のコントロールでは、セグメント付きの名前のレンダリング テンプレートは間接的にも呼び出されません。特に、WebPartMobile_STS_HomePage_Navigation が呼び出されません。この理由から、mblwiki.aspx のフッターは、このトピックで説明した方法ではカスタマイズできません。したがって、この例で示したカスタマイズは、リッチ テキストをレンダリングできるモバイル デバイスには最初はまったく影響しないように見えます。(モバイル ブラウザーのアドレス ボックスで) mblwiki.aspx の "wiki" を "wp" に置き換えると、このデバイスがホーム ページとして mblwp.aspx を使用するように強制的に設定することができます。mblwiki.aspx のヘッダー (タイトル) および本文 (コンテンツ) 領域は、mblwp.aspx の対応する領域と同じレンダリング テンプレートを使用するので、このトピックの手順に従って、リッチ テキストをレンダリングできるデバイスとレンダリングできないデバイス両方のヘッダーおよび本文領域をカスタマイズできます。

モバイル ホーム ページをカスタマイズする別の例については、「[ウォークスルー] モバイル ホーム ページをカスタマイズする」を参照してください。

<SharePoint:RenderingTemplate ID="WebPartMobile_STS_HomePage_Navigation" RunAt="Server">
  <Template>
    <mobile:Link Text="Microsoft Mobile" href="http://mobile.microsoft.com/" RunAt="Server" />
    <SPMobile:SPMobileComponent TemplateName="WebPartMobile_Default_HomePage_Navigation" RunAt="Server" />
  </Template>
</SharePoint:RenderingTemplate>

関連項目

タスク

[ウォークスルー] モバイル ホーム ページをカスタマイズする

[方法] モバイル リスト ビュー ページおよびフォーム ページをカスタマイズする

概念

モバイル ページのレイアウトと改ページ

[方法] リダイレクションを使用してモバイル ホーム ページをカスタマイズする

モバイル ページのレンダリング システム