また、サイトレイアウト全体を作成するのではなく、個々の機能としてページレイアウトを展開することもできます。そうすれば、ページレイアウトを任意のSharePoint公開サイトに展開できます。 VS 2010を使用している場合は、まずSharePointモジュールプロジェクトを開始します。レイアウトのaspxファイルをプロジェクトに追加します。 elements.xmlファイルを次のように変更します。
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="Page Layouts" Url="_catalogs/masterpage" RootWebOnly="True">
<File Path="Page Layouts\Layout1.aspx" Url="Layout1.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="True">
<Property Name="Title" Value="My Layout 1" />
<Property Name="ContentType" Value="$Resources:cmscore,contenttype_pagelayout_name;" />
</File>
</Module>
</Elements>
これはレイアウトを展開し、新しい公開ページとして利用できるようにします。 Webパーツが新しいページでインスタンス化されるようにするには、webpart定義で<File>
要素を変更します。例えば、私はこのようなゾーン1内の新しいページに作成するコンテンツエディタWebパーツを定義することができます。
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="Page Layouts" Url="_catalogs/masterpage" RootWebOnly="True">
<File Path="Page Layouts\Layout1.aspx" Url="Layout1.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="True">
<Property Name="Title" Value="My Layout 1" />
<Property Name="ContentType" Value="$Resources:cmscore,contenttype_pagelayout_name;" />
<AllUsersWebPart WebPartZoneID="Zone1" WebPartOrder="1">
<![CDATA[
<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2">
<Assembly>Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
<TypeName>Microsoft.SharePoint.WebPartPages.ContentEditorWebPart</TypeName>
<Title>Content Editor</Title>
<FrameType>Default</FrameType>
<FrameState>Normal</FrameState>
<Description></Description>
<Height />
<Width />
<AllowRemove>true</AllowRemove>
<AllowZoneChange>true</AllowZoneChange>
<AllowMinimize>true</AllowMinimize>
<AllowConnect>true</AllowConnect>
<AllowEdit>true</AllowEdit>
<AllowHide>true</AllowHide>
<IsVisible>true</IsVisible>
<DetailLink />
<HelpLink />
<HelpMode>Modeless</HelpMode>
<Dir>Default</Dir>
<PartImageSmall />
<MissingAssembly>Cannot import this Web Part.</MissingAssembly>
<PartImageLarge>/_layouts/images/homepage.gif</PartImageLarge>
<IsIncludedFilter />
<ExportControlledProperties>true</ExportControlledProperties>
<ContentLink xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />
<Content xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor">
</Content>
<PartStorage xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />
</WebPart>
]]>
</AllUsersWebPart>
</File>
</Module>
</Elements>
これは全く新しいサイト定義を作成するよりも実用的でなければなりません。お役に立てれば。
私は例を挙げてください。私はそれほどフォローしていません。また、私は5つの異なるページレイアウトがあり、編集可能なWebパーツのさまざまな組み合わせがあります。 – ScottE
http://msdn.microsoft.com/en-us/vcsharp/ff623012.aspxビデオリンク –
ありがとうございます。でも、それは本当に役に立ちました。ユーザーがそのWebパーツを削除したり、そのプロパティを変更したりするにはどうすればよいですか? – ScottE