after_ui_frame after_ui_footer server_round_trip before_delete after_delete after_restore before_retrieve after_retrieve before_save after_save process_record before_logout after_logout before_login login_failed
Хуки подключаются к каждому модулю отедельно (ко всем может и можно через /custom/modules/logic_hooks.php), нужно только разместить файл определения хуков /custom/modules/module_name/logic_hooks.php
Структура файла следующая:
<?php
$hook_version = 1;
$hook_array['Место подключения0'] = Array();
$hook_array['Место подключения0'][] = Array(2, 'Имя именно этого хука',
'путь/к/файлу/c/классом.php', 'Имя_класса', 'имя_метода');$hook_array['Место подключения0'][] = Array(1, 'Имя именно этого хука',
'путь/к/файлу/c/классом2.php', 'Имя_класса2', 'имя_метода2');
$hook_array['Место подключения1'] = Array();
$hook_array['Место подключения1'][] = Array(2, 'Имя именно этого хука',
'путь/к/файлу/c/классом.php', 'Имя_класса', 'имя_метода');Тоесть понятно, что к одному месту можно подключать много хуков. При этом порядок подключения опеределяется первым элементом массива (именно по нем хуки для точки сортируются перед выполнением их, а не вызываются стразу, в порядке в котором их определили).
Метод класса должен иметь следующую структуру, чтобы хук сработал:
public function имя_метода(SugarBean $bean, $event, $arguments){}
Workflows
Это инструмент создания хуков с помошью студии, но он доступен только для ПРО и ЕКСТЕНДИД. Имеет ряд готовых вариантов вызова.
Мы можем создавать воркфлоу для модуля, потом добавить в него условий выполнения, сообщений(которые отправляются кому-то, если условия удовлетворены), действий (это уже правки в базе). Он реализует неплохой механизм сообщений, их можно снабжать данными из базы, которые касаются события и отображать в хорошовоспринимаемом виде.
Комментариев нет:
Отправить комментарий