Sharepoint-features-and-elements
この章では、機能と要素について見ていきます。 機能は、いくつかの点でSharePointのコンポーネントモデルです。 機能の論理ユニットを定義できます。
たとえば、あなたはサイト内の能力を持ちたいかもしれません-
- 特定のスキーマでリストを作成するには、
- そのリストのデータを表示するページを用意してから、
- サイト内のどこかに、そのページに移動するためのリンクまたはメニューオプションがあります。
機能の論理グループを定義する機能を作成できます。 個々の機能は要素によって定義されます。
だから要素があるだろう-
- リストを作成し、スキーマを設定します。
- SharePointサイトにページをプロビジョニングし、
- メニューオプションまたはリンクを作成します。
機能はユニットを定義し、要素はそのユニット内の個々の機能を定義します。 私たちは3種類の要素について議論しました-
- リストを作成するリストインスタンス。
- ページをプロビジョニングするモジュール。
- メニューオプションまたはリンクを作成するカスタムアクション。
ただし、SharePoint内で作成できる要素には他にも多くの種類があります。 機能について理解すべきもう1つの重要な概念は、アクティブ化と非アクティブ化です。
たとえば、エンドユーザーが上記の機能を自分のサイトに追加する場合、リストを作成する対応する機能をアクティブにし、メニューオプションまたはリンクを追加して、サイトにページをプロビジョニングします。 後で彼は機能を無効にして機能を削除できます。
機能を無効にすると、一部の要素が自動的に削除されることに注意することが重要です。 たとえば、SharePointは、カスタムアクションによって定義されているメニューオプションまたはリンクを自動的に削除します。
その他は自動的に削除されません。 したがって、この場合、リストインスタンスとページは自動的に削除されません。
したがって、開発者は、自動的に削除される要素と削除されない要素を理解する必要があります。 自動的に削除されないものを削除したい場合は、*機能レシーバー*でコードを書くことができます。
機能と要素の操作を見てみましょう。 機能のエンドユーザービューから始めます。
- ステップ1 *-SharePointサイトを開きます。
- ステップ2 *-サイト設定に移動するには、機能を管理できる2つのリンクがあります。
- 最初のリンク*サイト機能の管理*はサイトアクションの下にあり、サイトスコープ機能を管理できます。
- サイトコレクション管理の下のもう1つのリンク*サイトコレクション機能*。これにより、サイトコレクションの範囲機能を管理できます。
- ステップ3 *-これらのリンクのいずれかをクリックすると、現在アクティブな機能と非アクティブな機能を示すページが表示されます。 機能ごとに、機能を有効または無効にするオプションがあります。
新しいSharePoint Solutions Empty Projectを作成して、簡単な例を見てみましょう。
ステップ1 *-これを *FeaturesAndElements と呼び、[OK]をクリックします。
ステップ2 *-使用するサイトを指定し、[*ファームソリューションとして展開]オプションを選択して、[完了]をクリックします。
最初に作成するのは機能です。 ソリューションエクスプローラーには、現在空の機能フォルダーが表示されます。
ステップ3 *- *Features フォルダーを右クリックして、 Add Feature を選択します。 Feature1 という名前のフィーチャーを作成し、フィーチャーデザイナーを開きます。 デフォルトのタイトルは、プロジェクトのタイトルにフィーチャーのタイトルを加えたものです。
- ステップ4 *-機能の名前をFeature1からSampleに変更します。
タイトルと説明は、ユーザーが機能を有効または無効にするページに表示されるものです。
タイトルを*サンプル機能*に、説明を*連絡先リストを追加し、ページを使用してリストを表示します*。 他に設定する必要があるのは、機能の有効範囲である機能の有効範囲です。
ファーム、WebApplication、サイトコレクション、またはサイトになります。 この場合、リストとページをプロビジョニングします。 どちらもSharePointサイトにあるため、ここではWebを選択します。
- ステップ5 *-要素に機能を追加してみましょう。 最初の要素はリストであり、連絡先リストを作成します。 プロジェクトを右クリックし、[追加]→[新しいアイテム]を選択します…
- ステップ6 *-中央のペインで[リスト]を選択し、名前フィールドに連絡先を入力します。 追加をクリックします。
- ステップ7 *-リスト作成ウィザードが表示されます。 連絡先リストに基づいて、連絡先というリストを作成します。 [完了]をクリックしてリストを作成するか、少なくとも要素を作成します。これにより、最終的にリストが作成されます。
以下にリストデザイナーのスクリーンショットを示します。
- ステップ8 *-このデザイナーは単なるXMLエディターです。 Contactsの下のElements.xmlファイルを開き、次のデータを追加します。
<?xml version = "1.0" encoding = "utf-8"?>
<Elements xmlns = "http://schemas.microsoft.com/sharepoint/">
<ListInstance Title = "Contacts" OnQuickLaunch = "TRUE" TemplateType = "105"
FeatureId = "00bfea71-7e6d-4186-9ba8-c047ac750105"
Url = "Lists/Contacts" Description = "">
<Data>
<Rows>
<Row>
<Field Name = "ID">1</Field>
<Field Name = "Last Name">Anders</Field>
<Field Name = "First Name">Maria</Field>
<Field Name = "Company">Alfreds Futerkiste</Field>
<Field Name = "Business Phone">030-0074321</Field>
</Row>
<Row>
<Field Name = "ID">2</Field>
<Field Name = "Last Name">Hardy</Field>
<Field Name = "First Name">Thomas</Field>
<Field Name = "Company">Around the Horn</Field>
<Field Name = "Business Phone">(171) 555-7788</Field>
</Row>
<Row>
<Field Name = "ID">3</Field>
<Field Name = "Last Name">Lebihan</Field>
<Field Name = "First Name">Laurence</Field>
<Field Name = "Company">Bon app'</Field>
<Field Name = "Business Phone">91.24.45.40</Field>
</Row>
<Row>
<Field Name = "ID">4</Field>
<Field Name = "Last Name">Ashworth</Field>
<Field Name = "First Name">Victoria</Field>
<Field Name = "Company">B's Beverages</Field>
<Field Name = "Business Phone">(171) 555-1212</Field>
</Row>
<Row>
<Field Name = "ID">5</Field>
<Field Name = "Last Name">Mendel</Field>
<Field Name = "First Name">Roland</Field>
<Field Name = "Company">Ernst Handel</Field>
<Field Name = "Business Phone">7675-3425</Field>
</Row>
</Rows>
</Data>
</ListInstance>
</Elements>
次のことに注意してください-
- ListInstance 要素内には、 Data という要素があり、その中にいくつかの行があります。
- クイック起動で表示するかどうかにかかわらず、ListInstanceには Contacts 属性があります。
- 連絡先テンプレートに基づいたリストが必要です。 ここでは、 TemplateType は 105 に設定されています。 これは乱数ではなく、意味のある数字です。
- お知らせリスト、タスクリスト、連絡先リストなど、SharePointで使用できるデフォルトのリストにはそれぞれ、番号が関連付けられています。 したがって、105から107に変更すると、異なる種類のリストが表示されます。
- FeatureId は、連絡先リストの定義に関連付けられたガイドです。
- ステップ9 *-このリストのデータを表示するページが必要です。 プロジェクトを右クリックし、*追加→新規アイテム… *を選択します。中央のペインでモジュールを選択し、名前フィールドにSitePageと入力して、*追加*をクリックします。
*SitePage* というノードが表示されます。このノードには、 *Elements.xml* および *Sample.txt* ファイルの2つのファイルがあります。 このsample.txtファイルをプロビジョニングしたくないのですが、SitePageをプロビジョニングしたいのです。
ステップ10 *-テキストファイルの名前を *Contacts.aspx に変更し、次のコードを置き換えます-
<%@ Assembly Name = "Microsoft.SharePoint, Version = 14.0.0.0, Culture = neutral,
PublicKeyToken = 71e9bce111e9429c" %>
<%@ Page MasterPageFile = "~masterurl/default.master"
meta:progid = "SharePoint.WebPartPage.Document" %>
<%@ Register TagPrefix = "SharePoint"
Namespace = "Microsoft.SharePoint.WebControls"
Assembly = "Microsoft.SharePoint, Version = 14.0.0.0, Culture = neutral,
PublicKeyToken = 71e9bce111e9429c" %>
<asp:Content ID = "Content2" runat = "server" ContentPlaceHolderID = "PlaceHolderMain">
<SharePoint:SPDataSource runat = "server"
ID = "ContactsDataSource" DataSourceMode = "List"
UseInternalName = "false">
<SelectParameters>
<asp:Parameter Name = "ListName" DefaultValue = "Contacts"/>
</SelectParameters>
</SharePoint:SPDataSource>
<SharePoint:SPGridView runat = "server"
ID = "ContactsGridView" DataSourceID = "ContactsDataSource"
AutoGenerateColumns = "false" RowStyle-BackColor = "#DDDDDD"
AlternatingRowStyle-BackColor = "#EEEEEE">
<Columns>
<asp:BoundField HeaderText = "Company"
HeaderStyle-HorizontalAlign = "Left" DataField = "Company"/>
<asp:BoundField HeaderText = "First Name"
HeaderStyle-HorizontalAlign = "Left" DataField = "First Name"/>
<asp:BoundField HeaderText = "Last Name"
HeaderStyle-HorizontalAlign = "Left" DataField = "Last Name"/>
<asp:BoundField HeaderText = "Phone"
HeaderStyle-HorizontalAlign = "Left" DataField = "Business Phone"/>
</Columns>
</SharePoint:SPGridView>
</asp:Content>
<asp:Content ID = "PageTitle" ContentPlaceHolderID = "PlaceHolderPageTitle"
runat = "server">
Contacts
</asp:Content>
<asp:Content ID = "PageTitleInTitleArea"
ContentPlaceHolderID = "PlaceHolderPageTitleInTitleArea" runat = "server" >
Contacts
</asp:Content>
SitePageには SP.DataSource ファイルがあり、これを使用して連絡先リストデータを作成します。これはページでバインドできます。 SP.GridView には、連絡先情報が表示されます。
これがSitePageであり、機能を見てみましょう。
- Featureの Items では、SitePageの連絡先リストインスタンスとモジュールプロビジョニングが要素として追加されていることに注意してください。
Visual Studioは、独自の要素では何もできないことを理解しています。 要素はフィーチャーの一部である必要があります。 したがって、要素を追加するときは、その要素を機能に追加する必要があります。
ステップ11 *-プロジェクトに移動して右クリックし、*追加→新規アイテム …を選択します
ここでは、CustomActionを追加するため、中央のペインで[空の要素]を選択し、このアクションを呼び出して[追加]をクリックします。
フィーチャーに戻ると、下のスクリーンショットに示すように、エレメントがフィーチャーに追加されていることがわかります。
ステップ12 *-アクションの下の *Elements.xml に戻り、次のコードを置き換えます-
<?xml version = "1.0" encoding = "utf-8"?>
<Elements xmlns = "http://schemas.microsoft.com/sharepoint/">
<CustomAction
Id = "SiteActionsToolbar"
GroupId = "SiteActions"
Location = "Microsoft.SharePoint.StandardMenu"
Sequence = "100"
Title = "Contacts"
Description = "A page showing some sample data">
<UrlAction Url = "~site/SitePages/Contacts.aspx"/>
</CustomAction>
</Elements>
リンクまたはメニューオプションを追加する場合、追加する場所を定義する必要があります。これは、それらを定義するLocationとGroupIdの組み合わせです。 この値の組み合わせは、メニューオプションをSiteActionsメニューに追加する必要があることを示します。
他の多くの値の組み合わせがあり、SharePointサイト内の他の場所にリンクまたはメニューを追加します。 これは、SharePoint内のどこかにメニューオプションを追加するときに必要な値の適切な組み合わせを調べるために調査する必要があるものです。
- ステップ13 *-*機能*をダブルクリックすると、機能デザイナーが表示されます。 機能デザイナーは、XMLドキュメントである機能マニフェストの洗練されたエディターです。
重要なポイント-
- この機能は、要素の論理的なグループ化を定義します。 ここで、機能は、作成したばかりの3つの要素マニフェストを参照しています。
- 機能をアクティブにすると、SharePointは個々の要素マニフェストを見て、リスト、ページ、およびリンクをSharePointサイトに追加します。
- Visual Studioを使用して展開すると、プロジェクト内のすべての機能が自動的にアクティブになります。 フィーチャーをアクティブ化するプロセスを実行したいので、Visual Studioにそれを行わないように指示します。
- ステップ14 *-[SharePoint]タブに移動して、[プロジェクトのプロパティ]に移動します。 デプロイメント構成を*アクティベーションなし*に変更します。
これをテストしましょう。
- ステップ15 *-ソリューションエクスプローラーでプロジェクトを右クリックし、[展開]を選択します。 プロジェクト内のすべてのものをパッケージ化し、SharePoint開発ファームに展開します。
正常にデプロイされると、「出力」ウィンドウに表示されます。
- ステップ16 *-SharePointサイトに移動して更新します。 * [サイトの設定]→[サイトのアクション]に移動します。
- ステップ17 *-カスタムフィーチャーがWebスコープであり、*サンプルフィーチャー*が表示されるため、[サイトフィーチャーの管理]を選択します。 この機能が有効になっていないことがわかります。先に進んで有効にしてください。
左側のペインに連絡先リストが表示されます。
- ステップ18 *-[連絡先]をクリックすると、リストにあったデータが表示されます。
- ステップ19 *-[サイトの操作]メニューに移動します。 連絡先ページに移動するオプションがあります。 それがCustomActionです。
- ステップ20 *-連絡先をクリックすると、SitePageが表示され、連絡先リストのデータが表示されます。