SugarTalk - ресурс для администраторов и разработчиков системы SugarCRM.

Расширение логики модулей или Logic Hooks. Часть 3

Добрый день всем читателям блога.

После долго перерыва в работе блога, я снова возвращаюсь к написанию статей, и надеюсь, теперь уже буду радовать вас новой информацией намного чаще. Хоть я это обещаю уже не в первый раз .
И так сегодня мы поговорим опять о logic hooks (логических хуках) в SugarCRM. Если вы еще случайно не знакомы с тем, что это такое, для начала рекомендую ознакомиться с этой статьей: Расширение логики модулей или Logic Hooks



Как я понял из практики, многие достаточно быстро понимают, что это такое, и как им пользоваться. Но все время путаются в таких вопросах как: где надо создавать файл, как этот файл называть, где его и как подключать? Вот и новый наш стажер столкнулся с такими же трудностями. Чтобы помочь ему, а заодно и вам, я взял старенький модуль editLogicHooks от Marnus van Niekerk, модифицировал его для работы с SugarCRM 6, немного переписал код для корректной работы c php 5.3 (всякие eregi сейчас зло), добавил ссылку на описание хуков, ну и конечно русифицировал. При этом все авторство остается за Маркусом, мне чужого добра не надо )).

Хотя если честно модуль довольно простой и самому можно написать такой, а может и еще лучше, за пару часов.
Собственно сейчас я расскажу, что он из себя представляет, разберем конкретный пример, и если вас заинтересует, ссылка на закачку модуля размещена в конце статьи.

После инсталляции модуля через админку. В административном меню вы увидите новый пункт: Logic Hooks.Создание и редактирование Logic Hooks.

В этом модуле нам доступно создание новых хуков и редактирование ранее созданных хуков.
Для создания нового хука выбираем NEW, далее тип хука (для тех кто не знает или забыл, рядом ссылка в помощь с описанием). Так же выбираем модуль для которого будет работать данный хук и вводим имя (обязательно на английском языке, так как это имя будет участвовать при сохранении файла, и все русские символы будут заменены на _, и вы потом не разберетесь где какой хук).

Создание logic hooks

Отрывается новая страница, и вы можете редактировать код данного хука.
Код пишется между комментариями // Здесь начинается твой код для хука и // Здесь заканчивается твой код для хука.

Редактор Logic Hook

Для выбора ранее созданного хуку выбираем данный хук и нажимаем далее.
Разберем как всегда жизненный пример: необходимо в случае удаления контакта оповещать ответственное лицо за этот контакт, о произошедшем удалении и сообщать о том, кто такой нехороший его удалил.
Переходим в наш модуль редактирования хуков, выбираем тип before_delete, модуль контакты, и имя, например, BeforeDelete.
Наш код, который мы добавляем:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
global $current_user;
 
 if ($event != 'before_delete') return;
 // Insert your custom logic between these comments
 $user = new User();
 $user->retrieve($bean->assigned_user_id);
 if (!empty($user->email1))
 {
 $this->sendSugarPHPMail(array($user->full_name => $user->email1),
 'Удален контакт',
 'Был удален контакт. Полное имя контакта: ' . $bean->full_name . '<br>' .
 'Контакт был удален: ' . $current_user->full_name );
 }
 // Insert your custom logic between these comments

Внимание, в данном коде для отправки сообщения я использую вызов метода sendSugarPHPMail. Это собственная функция, которую я добавил в данный класс. Вы можете воспользоваться ею, либо же написать свою. Полный код получившегося класса, со всеми функциями:

Один из минусов модуля заключается в том, что нельзя удалить созданный хук, через администрирование. Удалять необходимо вручную из папки custom/modules /папка_модуля/название_вашего_хука.php и плюс удалить его подключение из файла logic_hooks.php в этой же папке.
Если вас заинтересовал данный модуль для SugarCRM, скачать его можно по данной ссылке: editLogicHooks-1.0.6.zip (370) или же со страницы загрузок.

P.S. Если вдруг данный модуль будет вас интересовать, могу прикрутить визуальный php редактор (а то в обычной textarea редактировать код неудобно) + сделать удаление хуков из админки. Вашу заинтересованность я узнаю из количества скачек модуля и комментариев к данной теме

P.P.S Добавил редактор с подсветкой php кода editarea. Модуль по ссылке обновлен. Теперь редактор выглядит следующим образом:

SugarCRM редактор

Высказать своё мнение о статье Вы можете в комментариях, если Вас интересуют какие либо вопросы или дополнения, то обсуждение по данной теме доступно на нашем форуме.

Последнее изменениеПонедельник, 10 июля 2017 18:12
  • Оцените материал
    (0 голосов)
  • Опубликовано в SugarCRM
  • Прочитано 26452 раз

7222 комментарии

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены

Наверх

Последние новости

  • 1
  • 2
  • 3
  • 4

Популярные новости