MG2:Unity Using Broadcasts, Results and Views in Scaffolds
今回は、Scaffoldタグで、Broadcasts、Results、Viewsタグを使用することについてご紹介します。
■Scaffoldsで、Broadcats, Results及びViewを使用する
"Scaffoldを追加する"で見てきたように、単なるscaffoldタグは複数のイベントハンドラーを定義するだけです。Model-Glue XMLフォーマットを容易に学習するために、scaffoldタグはイベントハンドラーと同じ子タグ(broadcasts, views, and results)をサポートします。
scaffoldタグ配下に追加されたbroadcasts, views, もしくは resultsタグは、与えられたscaffoldが作成する全てのイベントハンドラーに適用されます。(broadcasts, views, 及び resultsの作成方法を学習するには、クイックスタートガイドを参照してください。)
このことによって、よりパワフルにScaffold機能を拡張できます。
たとえば、Model-Glue Application Templateから、所定のScaffoldから作成される全てのイベントハンドラーにサイト全般のテンプレートを使用するためには、単にresultタグを追加するだけです。
<scaffold object="Contact">
<results>
<result do="view.template" />
</results>
</scaffold>
同一オブジェクトに対して、複数のscaffoldタグを作成し、scaffoldのTYPE属性で分割することによって、メッセージのブロードキャストを特定のscaffoldが生成するイベントハンドラーに適用することもできます。
誰でもcontacsを参照可能で、管理者だけがcontactを更新可能なアプリケーションがある場合、非認証アクセスからEdit、Commit及びDeleteイベントハンドラーを保護するため、ModelGlue.xml内に次のXML(セキュリティ機能と果たす"UserMustBeAdministrator"というメッセージをリスンし、イベントへの不正アクセスに対して"SecurityViolation"と呼ぶresult結果を追加する)を使用します。
<scaffold object="contact" type="list,view" />
<scaffold object="contact" type="edit,commit,delete">
<broadcasts>
<message name="UserMustBeAdministrator" />
</broadcasts>
<results>
<result name="SecurityViolation" do="SecurityViolation" redirect="true" />
</results>
</scaffold>
コメント