[Sitecore][Insert From Template]テンプレートから挿入について

こちらの記事はSitecore Advent Calender 2014の12月17日の記事です。

今日は”テンプレートから挿入”について書いてみたいと思います。

20141215_01

”テンプレートから挿入”がバージョン7となって、テンプレートの”検索”タブが追加され、ユーザーに使いやすさを提供した一方で適切でないテンプレートを選択し、問題となる可能性が出てきます。

20141215_02

サイトコアの管理者また、CMSユーザが下記のアイテムへのアクセス権限を持っていればこの”テンプレートから挿入”が表示されます。20141215_03

基本的にテンプレートを作成する際にスタンダードバリューにて挿入オプションを設定するのはお勧めですが、忘れたりする場合を考えてこの”テンプレートから挿入”を隠す場合もあります。これを対処するにはいくつかの方法を書いてみたいと思います。

サイトコアの設定のみ対応する

コードを使用せず、設定のみで対応するにはサイトコアのCoreデーターベースにてこのInsert from Templateアイテムを隠すまたアクセスを制限すればいいです。

一番簡単なのはこのアイテムを別の場所へ移動して隠します。

20141215_009

20141215_008.png

このアイテムが移動されると、メニューから隠されます。

20141215_04

 このアイテムのアクセスを制限し、ユーザー別に管理することもできます。

20141215_007

サイトコアの設定とコードで対応する

もっと柔軟な制御をしたいなら、コマンドテンプレートを実装するします。ルールエンジンを使用し、ルールで制御したり、uiGetMastersパイプラインプロセッサを挿入し、挿入オプションを割り当てたりすることもできます。JohnWestさんがこれについて詳しい手順をの記事にて書いていますので参照してください。

20141215_05

上記に参照している日本語のドキュメントは下記になります:

直接関連しないですが、もし既存のメニューにてエントリをコマンドを追加されたいなら、この記事を目を通すことをお勧めします.

サイトコアが優れた拡張性を持っているので、この挿入するメニューをオーバーライトすることができないかと思って試してみました。

まず、右クリックして挿入するというのはおそらくコマンドアクションであろうと思って、Commands.Configをみたら、item:newというコマンドがありました。

20141215_06

DLLをみれば、ItemNew にあるGetSubmenuItems関数にてテンプレートから挿入が追加されています。この関数をオーバーライトすればいいかと思いました。

20141215_07

必要なコードをプロジェクトへコピーしコマンドアクションを変更します。20141215_08

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です