開発(PHP):イベント発火時のきっかけとリソース情報の取得
イベント発火時のきっかけとリソース情報の取得するには、$modx->event->params
プロパティを使用します。
リソース情報はイベントによって異なります。
構文
戻り値
連想配列で返します。
次のようにイベントにより内容が異なります。
(一部のみ掲載しています)
イベント | 戻り値 | 補足 |
---|---|---|
OnBeforeDocFormSave | Array ( [mode] => きっかけ [ 'new' ... 新規作成 'upd' ... 更新 ] [id] => 対象のリソースID [doc] => Array ( 変更後のリソース変数 ) ) |
・リソース変数のみでテンプレート変数は含まれない。 ・更新の場合、更新前の情報はこの戻り値で得ることができない。 $modx->getDocument メソッドなどで得ることが可能。 |
OnDocFormSave | Array ( [mode] => きっかけ [ 'new' ... 新規作成 'upd' ... 更新 ] [id] => 対象のリソースID [doc] => Array ( 変更後のリソース変数 ) ) |
・リソース変数のみでテンプレート変数は含まれない。 ・更新の場合、更新前の情報はこの戻り値で得ることができない。 |
OnDocDuplicate | Array ( [mode] => きっかけ [ 'new' ... 新規作成 ] [new_id] => 複製(作成)されたリソースID ) |
・複製されたリソースごとにイベントが発火、new_id キーはその複製した1つのリソースID。例えば配下のリソース3つを含む場合、4回のイベントが発火する。 |
OnDocFormDelete | Array ( [id] => 削除されたリソースID [children] => Array ( 削除された子孫リソースID ) ) |
・配下のリソースがある場合id キーは、親のリソースID。 |
OnEmptyTrash | Array ( [ids] => Array ( 消去されたリソースID ) ) |
サンプルコード
次のコードはリソースを編集した際にOnDocFormSave
イベントが発火した時の例です。
結果
Array (
[mode] => upd
[id] => 3
[doc] => Array (
[introtext] =>
[content] => Hello World !
[pagetitle] => Welcome
[longtitle] =>
[type] => document
[description] =>
[alias] => hello
[link_attributes] =>
[isfolder] => 0
[richtext] => 1
[published] => 1
[parent] => 0
[template] => 1
[menuindex] => 0
[searchable] => 1
[cacheable] => 1
[pub_date] => 0
[unpub_date] => 0
[contentType] => text/html
[content_dispo] => 0
[hide_from_tree] => 0
[menutitle] =>
[hidemenu] => 0
[alias_visible] => 1
[publishedon] => 1130304721
[publishedby] => 1
)
)