カスタマイズしたブログサイト定義用に、 Web スコープの機能をいくつか作成しました。すべての機能は正常に動作しますが、ブログだけでなく、サイト コレクション内のすべてのサイトの [サイトの機能] ページに表示されます。
明らかに、それらはブログにのみ関連しています (ブログ投稿で匿名のコメントを有効にするなどのことを行うため)。
特定の Web スコープ機能の可視性を特定のタイプのサイト (つまり、特定のサイト定義から作成されたもの) に制限する方法はありますか?
カスタマイズしたブログサイト定義用に、 Web スコープの機能をいくつか作成しました。すべての機能は正常に動作しますが、ブログだけでなく、サイト コレクション内のすべてのサイトの [サイトの機能] ページに表示されます。
明らかに、それらはブログにのみ関連しています (ブログ投稿で匿名のコメントを有効にするなどのことを行うため)。
特定の Web スコープ機能の可視性を特定のタイプのサイト (つまり、特定のサイト定義から作成されたもの) に制限する方法はありますか?
それは不可能だと思います。
人々がUIから機能をアクティブ化するのではないかと心配している場合は、機能を非表示にすることができます。
<Feature Hidden="TRUE"></Feature>
次に、カスタムBLOGサイトテンプレートのONET.xmlで、サイトの作成時に機能を強制的にアクティブ化できます。
<Configurations>
<Configuration>
<WebFeatures>
<Feature ID="[Insert GUID of your feature]"/>
</WebFeatures>
</Configuration>
</Configurations>
これにより、STSADMまたはPowerShellを介して機能がアクティブ化されるのを防ぐことはできません。ここまで行きたい場合は、機能レシーバーを機能に追加して、BLOG以外のサイトでアクティブ化されないようにすることができます...しかし、それは本当に必要ですか?