カスタムロジックの呼出
出典: SugarForum.jp
既存のモジュールに、追加のロジックを組み込みたい場合、ロジックフックを使うことができます。ロジックフックは、「before_save(データベースに保存する直前)」といった所定のタイミングで、既存ロジックに割り込みをかけます。
たとえば、日本語では入力文字の半角全角が問題になることがありますが、これはロジックフックを利用するとデータベースに保存される前に調整しておくことが可能です。
目次 |
フックを使うメリット
既存モジュールの挙動を変更するにあたって、直接モジュール内のファイルを書き換えても、バージョンアップすれば折角の変更が上書きされてしまいます。それに対して、フックはcustomフォルダ内に置くことになっているので、バージョンアップ後もそのまま使い続けることができます。
定義の場所
SugarRoot/custom/modules/@モジュール名/logic_hooks.php
フック可能なイベント
- before_delete (after_delete) : 削除の前(後)
- before_restore (after_restore) : レストアの前(後) ※レストアとはdeletedにマークされたレコードを復活することです。
- after_retrieve : データベースから値を取得した後
- before_save : 保存の前
- after_ui_frame : SugarViewでサブパネルを表示する直前
- after_ui_footer : SugarViewwでフッターが表示された直後 (show_footerオプションがfalseでも実行される)
- server_round_trip :
- before_logout (after_logout) : ログアウトの前(後)
- after_login : ログインの後
- login_failed : ログインが失敗した時
- process_record :
関連するSugarのコード
- data/SugarBean.php - SugarBeanクラス - call_custom_logicメソッド
- include/utils/LogicHook.php - LogicHookクラス