Это моя первая попытка кодирования для SugarCRM/suiteCRM.
Должен сказать, что я программирую для Wordpress уже почти 10 лет, но теперь я полностью потерялся, когда начинаю копаться в suiteCRM.
Я читал, что вы можете добавить логический хук для изменения данных после их сохранения в базе данных, но я не знаю, с чего начать...
Представьте, что я создаю задачу на сегодня, 7 июля, связанную с клиентом, которого я использую для посещения каждые 2 месяца, поэтому в учетных записях есть поле под названием «Частота посещения». Я хотел бы добавить будущую дату (7 июля + 60 дней = примерно 7 сентября) в поле задачи «Дата будущего посещения», чтобы я мог использовать ее для создания этой конкретной будущей задачи через рабочий процесс.
Что я пытаюсь сделать, так это рассчитать поле в задачах (будущая дата посещения), которое равно количеству дней в поле модуля учетных записей (частота посещения), добавленному к собственному полю даты задачи.
Я смог заставить его работать, используя следующий макет:
Внутри \custom\modules\Tasks\logic_hooks.php
<?php
$hook_version = 1;
$hook_array['before_save'] = Array();
$hook_array['before_save'][] = Array(
1, //Processing index. For sorting the array.
'future_task_date_on_task_creation', //Label. A string value to identify the hook.
'custom/modules/Tasks/future_visit_date.php', //The PHP file where your class is located.
'before_save_class', //The class the method is in.
'future_visit_date' //The method to call.
);
?>
Внутри \custom\modules\Tasks\future_visit_date.php
<?php
if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
class before_save_class {
function future_visit_date($bean, $event, $arguments) {
$bean->rhun_fecha_sig_c = date("Y-m-d H:i:s", $date);
}
}
?>
При такой настройке дата будущего посещения заполняется расчетной датой.
Я также читал, что эта установка не рекомендуется и что я должен использовать Extension Framework и поместить первый файл по этому пути:
/custom/Extension/modules/Tasks/Ext/LogicHooks/<file>.php
Но я не могу заставить его работать.
Нужно ли создавать папку LogicHooks, если ее там нет? Какое имя файла я должен присвоить этому файлу? Должен ли я изменить что-то еще внутри кода?