今回は、パブリッシュ時に自動で処理を発生させる方法についてご紹介します!
Sitecoreを操作していて「対象のコンテンツアイテムがパブリッシュされたら、他のアイテムやデータも更新されるようにしたい...」という要望がある場合、カスタマイズ機能を実装する必要があります。
そんなときにパブリッシュイベントを活用することで実装が可能になりますので、ぜひご覧ください!
Configファイル作成・イベント設定
まず初めに、新しいConfigファイルをApp_Config/Include配下に「Test.config」という名称で作成します。
次にTest.configの中身を修正します。
text/xml
「event role」のname属性に"publish:end"を追加することで、アイテムパブリッシュ時に自動で処理を発生させる設定が可能になります。
「handler type」ではパブリッシュイベントが発生した場合に動かすプログラムの場所を設定しています。この設定を行う事でアイテムがパブリッシュされる度に指定したプログラムが動くことになります。
実行されるプログラムイメージ
namespace Test.Website.Controllers
{
public class TestController : Controller
{
///
/// パブリッシュイベント発生処理
///
///
///
public void Execute(object sender, EventArgs args)
{
//Test.config設定によりアイテムがパブリッシュされるとこのプログラムが動くため、実現させたい処理を実装する。
}
}
}
※このイベントはどのアイテムがパブリッシュされても実行されるため、プログラムで処理を実行する場合と実行しない場合の条件分岐を追加する必要があります。条件を指定しないと管理画面のパフォーマンス低下に繋がるので注意してください。
最後に
Sitecoreのデフォルト機能で実現できないものはカスタマイズすることで実現可能になることもあります。
「アイテムがパブリッシュされたら自動でワークフローを進めたい」「アイテムが削除されたらログ出力させたい」など、仕様に合わせてイベントを追加実装してみてください!
*パブリッシュ以外にも事前定義されているイベントはたくさんあります。イベント名やインデックスパラメータについて詳しく載っているので知りたい方はこちらをご確認ください。
以上になります。
※エントリーの内容・画像等は、公開時点での情報に基づきます。
※Sitecoreのバージョンによって実装されている機能が異なります。