2

バックグラウンド:

コンテンツタイプを展開するサイトもあり、このサイトには多くのサブサイトがあります。コンテンツタイプは、各サブサイトで使用されます。

機能がデプロイされてアクティブ化されたときに、カスタムの新規/編集/表示フォーム(Webパーツページ)をプッシュしたいモジュールがあります。

これらのフォームをコンテンツタイプ(FormUrls)に直接設定したいのですが、フォームを正しく参照できるように、フォームを展開する方法と場所がわかりません。

私は_layoutsでこれを行う方法を知っており、リスト定義スキーマ(セットアップパス)の使用方法も知っていますが、バージョン要件のためにこれらのいずれも使用できません(可能な場合は_layoutsを避けようとします)。リストとフォームの履歴は、作成時に維持する必要があります。リスト/フォームの新しいバージョンがリリースされると、新しいコンテンツタイプは以前のコンテンツタイプを継承し、新しいフォームは新しいコンテンツタイプに設定されます。

また、Infopath(ライセンスの問題)を使用することもできません。

モジュールを使用してフォームをコンテンツタイプ(_cts /コンテンツタイプ名)のURLにデプロイしようとしましたが、コンテンツタイプパスを正しく取得できないようです。これは簡単な例です(実際のコードを提供することはできません。申し訳ありません)。

モジュール

<Module Name="Module1" Url="_cts/Content Type" RootWebOnly="FALSE">
  <File Path="Module1\MyNewForm.aspx" Url="Module1/MyNewForm.aspx" />
</Module>

コンテンツタイプ

<FormUrls xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
      <New>Module1/MyNewForm.aspx</New>
</FormUrls>

上記の例は機能せず、Module-> Url属性を削除しようとしたので、ルートにデプロイされましたが、これも役に立ちませんでした。これに関する助けをいただければ幸いです。

4

1 に答える 1

1

ストアフォームには任意のSharePointライブラリを使用できます。まず、'Module'、elements.xmlによってページをライブラリ/フォルダにデプロイする必要があります。

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="Forms" Url="SiteAssets">
    <File Path="Forms\CustomDisplay.aspx"
     Url="CustomDisplay.aspx" 
     Type="GhostableInLibrary" />
  </Module>
</Elements>

次に、コンテンツタイプelements.xmlのフォームとして参照できます。

<?xml version="1.0" encoding="utf-8"?>

 <Elements xmlns="http://schemas.microsoft.com/sharepoint/">

 <ContentType ID="0x01080100AB22BE524D7344D89DBB2A27AAF5AB3C00924B45ABBDA240DA8C5B32541E9184AE"
           Name="CTName"
           Group="CustomCTypes"
           Description="Decription"
           Inherits="FALSE"
           Hidden="FALSE"
           Version="0">
<FieldRefs>
</FieldRefs>

<XmlDocuments>
  <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
    <FormUrls  xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
      <Display>SiteAssets/CustomDisplay.aspx</Display>
    </FormUrls>
  </XmlDocument>
</XmlDocuments>

于 2012-07-13T18:45:42.647 に答える