Модификация уведомления о назначении в SugarCRM

В 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 -->

На этом все. Шаблон уведомления для вашего модуля готов.

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

Написать комментарий

Вы должны войти чтобы комментировать.