1

「サイト設定」を使用して「サイトをテンプレートとして保存」し、そのカスタム サイト テンプレートを使用していくつかのサイトを作成します (または、ソリューションと呼ぶべきでしょうか?)

このカスタム サイト テンプレートから作成されたサイトを C# で調べるにはどうすればよいですか?

サイトがこのカスタム テンプレートを使用して作成されたかどうかに関係なく、SPWeb の .WebTemplate、.WebTemplateId、および .Configuration はすべて「STS」、1 および 1 を返すことに注意してください。これは、基礎となる SharePoint のすぐに使えるテンプレートについて報告しているためだと思います。

前もって感謝します。

4

3 に答える 3

1

Web の PropertyBag にエントリを追加してみませんか? 「web_template_id」のキーとテンプレートの ID または名前を値として使用します。これは SharePoint Designer を使用して簡単に行うことができ、PropertyBag は Web テンプレート WSP の一部として含まれています。

または、テンプレートを Visual Studio にインポートする場合は、次のように、Web のプロパティ バッグにエントリを宣言的に追加できます。

<Property Name="web_template_id" Value="SiteTemplates.TemplateName" Type="string" />

これは、コード内の SPWeb オブジェクトの AllProperties コレクションからカスタム テンプレート名を取得する単純なケースです。

于 2014-07-17T14:33:23.463 に答える
0

http://www.go4sharepoint.com/Forum/determine-site-template-site-11323.aspxから

SPWebオブジェクトのWebTemplateプロパティとConfigurationプロパティの組み合わせを使用して、サイトが最初に構築されたテンプレートを見つけることができます。WebTemplateには、サイト定義を含む12個のハイブTemplate/sitetemplatesディレクトリ内のサブディレクトリの名前である「STS」のようなものが含まれます。構成は、そのサブディレクトリのonet.xml内の構成IDに対応します。ただし、これにはいくつかの問題があります。

これはSharePoint2007に関連する参照ですが、「12」ハイブへの参照を除いて、コアコンセプトは引き続き適用され、「14」ハイブを参照する必要があります。

于 2013-03-06T03:09:21.760 に答える
0

何が起こっているのかを理解するには、SharePoint でのサイト定義と Web テンプレートの違いを理解する必要があります。

多くの場合、同じ意味で使用されますが、それらは異なり、SharePoint 内での扱いも異なります。すぐに使用できるかカスタムかに関係なく、サイト定義は 14 個の hive\TEMPLATE\SiteTemplates にあります。一方、Web テンプレートは、サイト定義のインスタンスに対するカスタマイズを .stp または .wsp ファイルに保存します。これにより、そのサイトを他のサイト インスタンスにレプリケートできます。

ここに本当の問題があります。Microsoft でさえ、サイト定義と Web テンプレートの違いに混乱しています。彼らが WebTemplate プロパティに名前を付けたとき、Web テンプレートではなく、サイト定義を意味していたからです。

MSDN の記述に注意してください。

SPWeb.WebTemplate プロパティ

サイトをテンプレートとして保存してカスタム サイト テンプレートを作成し、そのテンプレートから新しいサイトを作成すると、WebTemplate プロパティには、カスタム テンプレートの名前ではなく、カスタム テンプレートの派生元のサイト定義の名前が含まれます。したがって、カスタム テンプレートの作成に使用されたサイト自体が標準のチーム サイト定義から作成された場合、新しいテンプレートから作成されたすべてのサイトの WebTemplate プロパティは "STS" を返します。

SPWeb.Configuration プロパティ

サイトをテンプレートとして保存してサイト テンプレートを作成し、そのテンプレートからサイトを作成すると、Configuration プロパティ には、サイト テンプレートの派生元であるサイト定義構成の ID が含まれます。

(私のものを強調)

これは、質問で発見したことを裏付けています。では、サイトの作成に使用されたカスタム Web テンプレートをどのように判断するのでしょうか? それが可能かどうかはわかりません。可能であれば、MSDN が、これらのプロパティではできないことを説明したことを達成する方法を説明する文をもう 1 つか 2 つ提供してくれることを願っています。また、いろいろ調べてみると、この質問が数回聞かれていることがわかりましたが、満足のいく答えはありませんでした。

于 2013-03-06T16:41:07.493 に答える