В SugarCRM для уведомления о назначениях используются стандартные шаблоны.
Зачастую возникает задача редактирования стандартного уведомления для стандартных модулей, либо же написания уведомления для своего разработанного модуля.
Данную задачу мы и рассмотрим в данной статье.
Для начала важно понимать, что это не задача отправки уведомления, это задача изменения всего лишь самого уведомления. Если у пользователя включена опция: получать уведомления о назначении (профиль пользователя — вкладка дополнительно), то при назначении пользователю записи, ему придет уведомление, кастомизированием которого мы сейчас и займемся.
Так же не забывайте, что при изменении записи, без изменения отечественного лица, уведомление приходить не будет.
В статье я подразумеваю, что у вас стоит русская локализация. В случае если вы работаете с английской версией, просто заменяйте все вхождения в названиях файлов с ru_ru на en_us.
Итак сами шаблоны уведомлений хранятся в include/language/ru_ru.notify_template.html
Для upgrade safe изменения скопируем данный шаблон по следующему пути custom/include/language/ru_ru.notify_template.html (все отсутствующие папки необходимо создать)
Весь файл состоит из подобных блоков :
<!-- BEGIN: Contact_Subject --> SugarCRM - Контакт: {CONTACT_NAME} <!-- END: Contact_Subject --> <!-- BEGIN: Contact --> {ASSIGNER} назначил(а) контакт пользователю: {ASSIGNED_USER}. Имя: {CONTACT_NAME} Описание: {CONTACT_DESCRIPTION} Вы можете просмотреть информацию по этому контакту здесь: <{URL}> <!-- END: Contact -->
Это шаблоны для шаблонизатора Xtemplate. Как видите переменные выделяются в фигурных скобках. В php коде для того чтобы объявить такую переменную используется метод assign.
Например: $xtpl->assign («ASSIGNER», $current_user->name);
<!-- BEGIN: Contact_Subject --> <!-- END: Contact_Subject -->
Эти конструкции ограничивают шаблон для темы письма.
<!-- BEGIN: Contact --> <!-- END: Contact -->
Эти конструкции ограничивают само тело письма. Где Contact — это название модуля.
Если вы хотите изменить тело какого то уведомления SugarCRM, то просто редактируете необходимый текст для нужного модуля. Посмотреть используемые переменные и добавить их можно в методе set_notification_body bean класса нужного вам модуля.
Для того чтобы добавить свой шаблон для кастомного модуля. Создадим метод set_notification_body нашего bean класса.
Для примера приведу такую же функцию для нашего bean класса модуля Newmodule.
function set_notification_body($xtpl, $bean) { global $mod_strings, $app_list_strings; $xtpl->assign("NEWMODULE_SUBJECT", $bean->name); $xtpl->assign("NEWMODULE_TYPE", $app_list_strings['newmodule_type_dom'][$bean->type]); $xtpl->assign("NEWMODULE_PRIORITY", $app_list_strings['newmodule_priority_dom'][$bean->priority]); $xtpl->assign("NEWMODULE_NUMBER", $bean->number); return $xtpl; }
Так же добавляем шаблон в наш файл custom/include/language/ru_ru.notify_template.html
<!-- BEGIN: Newmodule_Subject --> SugarCRM — Сообщение от вашего модуля: {NEWMODULE_SUBJECT} <!-- END: Newmodule_Subject --> <!-- BEGIN: Newmodule --> {ASSIGNER} назначил(а) запись пользователю: {ASSIGNED_USER}. Номер: {NEWMODULE_NUMBER} Тема: {NEWMODULE_SUBJECT} Тип записи: {NEWMODULE_TYPE} Приоритет: {NEWMODULE_PRIORITY} Вы можете просмотреть более подробную информацию по этой записи здесь: <{URL}> Сообщение отправлено из SugarCRM <!-- END: Newmodule -->
На этом все. Шаблон уведомления для вашего модуля готов.
Высказать своё мнение о статье Вы можете в комментариях. Если Вас интересуют какие либо вопросы или дополнения, то обсуждение по данной теме доступно на нашем форуме.