Кастомизация календаря Битрикс. Обработчик при добавлении, изменении событий

В этой статье опишем процесс настройки календаря под собственные требования с возможностью отправки уведомлений при добавлении или изменении события. Приступим: Создадим собственный календарь. Создадим страницу на портале. Открываем на редактирование созданную страницу. Для этого в админ. панели нажимаем "Изменить страницу" - "В визуальном редакторе", выбираем "Режим редактирования исходного кода" Вставляем код вызова компонента: Необходимо обратить внимание на параметр OWNER_ID, его значение должно быть id пользователя создавшего календарь.

Жмем сохранить. В итоге, получаем на странице интерфейс календаря.

Остается только реализовать отправку уведомлений при создании, изменении событий нашего календаря.
Для этого, в "Администрирование" - "Контент" -"Файлы и папки" - "local" - "php_interface" , если нет папки local открываем "bitrix" - "php_interface" .
В папке php_interface открываем на редактирование файл init.php.

Добавляем в init.php, в любом месте, следующий код:


AddEventHandler("calendar", "OnAfterCalendarEventEdit", Array("ActionCalendar", "AfterEventCl"));
class ActionCalendar
{
function AfterEventCl($arFields)
{
global $USER;
$changeuser = $USER->GetID();
$rsUser = CUser::GetByID($changeuser);
$arUser = $rsUser->Fetch();
$arUserCh = $arUser['LOGIN'];//Получение логина пользователя который изменил событие
$text = 'Создано/внесено изменение в календарь пользователем '.$arUserCh.' на '.$arFields["DT_FROM"].' / '.$arFields["DT_TO"];/*Тело письма, указывается пользователь и время события.Можно изменять вывод данных по событию*/
$theme = 'Создание/изменение события в календаре!';//Тема письма
$from = "from@mail.ru";//Email получателя
$to = "your@mail.ru";//Email от кого, системный адрес
$mail = new PHPMailer(); // defaults to using php "mail()"
$mail->CharSet = 'UTF-8';
$mail->Subject = $theme;
$mail->SetFrom($from);
$mail->AddAddress($to);
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->MsgHTML($text);
$mail->Send();

}
}

На этом все готово.
Теперь вы можете получать уведомления при создании или изменение событий необходимого календаря.

Возврат к списку

Сделать заказ

Отправьте заявку и получите квалифицированную помощь


Отправить