Как сделать событие в битриксе

Добавил пользователь Валентин П.
Обновлено: 05.10.2024

Сервисов онлайн-чатов много. Но какой бы вы ни выбрали, будет полезно отслеживать, как часто им пользуются посетители сайта. В данной статье мы расскажем, как настроить отслеживание обращений в онлайн-чат Битрикс24 без программистов.

Поэтому следуя данной инструкции, вы сможете самостоятельно настроить отправку событий онлайн-чата Битрикс24 и использовать их в качестве микроконверсий в Google Analytics. Нужен только доступ к установленному на сайте Google Tag Manager для совершения всех настроек и доступ к Google Analytics для установки целей.

За основу был взят скрипт обработки событий из статьи, который я адаптировала под цели для Google Analytics.

Настройка отслеживания событий чата

Для настройки в Google Tag Manager необходимо создать тег со скриптом, тег с автособытием для онлайн-чата, триггер с пользовательским событием для отправки автособытия, переменные категории и действия по событию.

Теперь по порядку создания настроек контейнера GTM.


Тип календаря: в данном поле нужно выбрать тип календаря. Это может быть календарь сотрудника (user) или календарь группы (group).

Идентификатор владельца календаря: в данном поле следует указывать id сотрудника, либо id группы. Значение указывается простой цифрой (без квадратных скобок). Нельзя подставлять пользователя из списка пользователей.

Дата начала события: в данном поле требуется указать, когда начнётся планируемое событие.

Дата завершения события: в данном поле требуется указать, когда завершится планируемое событие.

Идентификатор календаря: в данном поле требуется указать id календаря пользователя или группы.
Чтобы понять, какое значение сюда требуется прописать, необходимо:

1. Для календаря пользователя.
Перейдите в список календарей и нажмите "Настройки"

календарь Битрикс24

Далее необходимо нажать F12 в браузере и навести курсор на список календарей выбора по умолчанию для приглашений.

календарь в Битрикс24

К сожалению, в API Битрикс24 нет метода, который бы выбирал календарь пользователя по умолчанию для приглашений самостоятельно.

календарь в Битрикс24

Вы можете ускорить появления данного метода, обратясь в поддержку Битрикс24 с указанием данного номера обращения.

2. Для календаря группы.
Перейдите в календарь группы и нажмите F12.
Нажмите на инструмент выбора блока и наведите на календарь.

контакты в Битрикс24 crm

В классе bxec-sect: содержится id календаря.

Значение даты передается без времени: эта опция позволит устанавливать даты события без указания времени.

Наименование события: в данном поле вы указываете тему создаваемого события.

Описание события: в данном поле вы указываете текстовое описание создаваемого события.

Цвет фона события: в данном поле вы указываете цвет создаваемого события в календаре. Применяется код цвета HTML.

Цвет текста события: в данном поле вы указываете цвет текста создаваемого события в календаре. Применяется код цвета HTML.

Доступность на время события: в данном поле вы определяете отметку занятости, которая будет отображаться в планировщике событий.

Важность события: в данном поле вы можете выбрать категорию важности создаваемого события в календаре.

Частное событие: при указании значения "да" в данном поле, Вы ограничиваете видимость содержания создаваемого события. В календаре будет отображаться что событие есть, но прочесть другим сотрудникам его не получится.

Место проведения: в данном поле вы можете указать место проведения создаваемого события.

НАПОМИНАНИЕ (за сколько): в данном поле вы можете указать, что система должна Вас уведомить за какое-то время. Значение указывается в целых числах.

НАПОМИНАНИЕ (единица измерения): в данном поле вы можете указать, в каких единицах измерения вести отсчет времени до напоминания (дни,часы,минуты)

Список участников события: в данном поле указываются участники создаваемого события. Поле является множественным. Каждый участник добавляется в отдельное поле. Значение указывается простой цифрой (без квадратных скобок).

Организатор события: в данном поле указывается организатор создаваемого события. Значение указывается простой цифрой (без квадратных скобок). Это поле важно заполнять, когда это событие календаря типа встреча и в него будут приглашаться другие участники.

Создать встречу: данное поле позволяет создавать событие тип встреча, на которую приглашаются участники.

ВСТРЕЧА: Текст приглашения - в данном поле указывается описание для события типа встреча.

ВСТРЕЧА: признак открытой встречи - в данном поле указывается тип события. Встреча может быть общедоступная или закрытая.

ВСТРЕЧА: флаг запроса повторного подтверждения участия (при редактировании события) - в данной опции (с помощью системного механизма Битрикс24) указывается необходимость повторно уведомлять участников события если в него будут вноситься изменения.

Запускать от имени: данное поле необходимо для того, чтобы установить сотрудника, с правами которого выполнять действие данного активити. Если у сотрудника не будет прав на выполнение действия, то активити не сработает. Рекомендуем выбирать всегда сотрудника с правами администратора системы.

Устанавливать текст статуса: данное поле позволяет включать возможность установки статуса бизнес-процесса. Это необходимо для того, чтобы во время работы активити информировать пользователя в истории о том, что бизнес-процесс остановился на конкретном шаге. Это особенно важно в момент отладки и выяснения причин неполадок в работе механизма.

Текст статуса: в данном поле указывается текстовый вариант статуса, который Вы можете изменять.

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

Период ожидания. Время ожидания ответа от приложения - Данная опция позволяет ограничить срок ожидания ответа от приложения. Технические особенности платформы Битрикс24 иногда создают ситуацию при которой создаётся очередь из огромного числа запросов. Это может помешать работе нашего активити и бизнес-процесс будет ожидать длительный период времени. Для того, чтобы не останавливать дальнейшие действия, вы можете установить своё время ожидания. Если время истекло и результат не получен, то бизнес-процесс будет двигаться далее по заложенной вами логике.

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

Анализ вызова события

Для начала разберемся в событиях как таковых. Теорию вы уже знаете, рассмотрим на практике.

Вызов обработчиков всегда одинаковый, меняются только переменные и логика обработки ответа. Для анализа необходимо обратиться к исходным кодам. Это можно сделать просмотрев файлы системы, а лучше с использованием модуля Живое АПИ.


Выберем для примера событие OnBeforeSocNetGroupAdd:


Количество переменных. В этом событии переменных всего одна ( $arFields ). Именно столько же переменных нам надо будет вызвать в нашем обработчике. Переменных также может быть две или больше, например в событии OnSocNetGroupAdd:


Переопределение переменных. Если перед одной из переменных стоит &, значит ее можно переопределить (это называется передача по ссылке).

Отмена действия. В нашем случае для события OnBeforeSocNetGroupAdd есть такая возможность:, если мы в нашем обработчике сделаем return false , группа создана не будет. А, к примеру, в OnSocNetGroupAdd возможности отмены действия нет. Ибо действие уже произведено.

Создание обработчика события

Напомним теорию: для обработки событий в ваших модулях вам надо использовать RegisterModuleDependences. А для обработки в иных случаях вам надо использовать AddEventHandler.

Имя модуля нам известно (socialnetwork), имя события известно (OnBeforeSocNetGroupAdd), пишем функцию/метод по правилам из теории и не забываем про:

  • количество переменных
  • возможность переопределения
  • отмену действия

Как узнать что содержится в переменных, какие ключи массива и так далее?

Делаем вывод на экран переменных с завершением работы в теле функции:

Отмена действий

Отмена действия с передачей ошибки в систему:

Мы собрали абстрактный обработчик, который добавляет к описанию группы правило, и запрещает пользователю с создавать группы в принципе.

Совет от Антона Долганина: Лучше не плодить функции, а создать класс ваших обработчиков (в идеале по одному классу на каждый модуль), и писать обработчики внутри классов. Например, CForumHandlers::onBeforeTopicAdd();.

Универсальная галерея - модуль для битрикс

В этой статье я покажу на примерах как работать с событиями в ядре d7 на примере модуля grain.forum (Простой адаптивный форум). Будет показано и как создавать обработчик события с возможностью и изменения данных с позиции разработчика сайта, и как вызываются обработчики событий внутри модуля. Это статья не про ORM-события (т.е. события, связанные с хранением данных в базе, и где используется более стандартизованный подход), а про обычные события, которые могут использоваться для чего угодно.
[spoiler]
Пояснение: событие OnGlobalsGetFilter в модуле grain.forum предназначено для модификации глобального фильтра для форумов и их разделов (фильтра, который применяется в компонентах всегда и в основном используется для привязки форумов и разделов к сайтам).

Пример обработки события (со стороны разработчика)

Обработчик события может (но не обязан) вернуть объект типа \Bitrix\Main\EventResult;

Создать такой объект можно так

где $type может принимать значения:
\Bitrix\Main\EventResult::SUCCESS - при успешной обработке
\Bitrix\Main\EventResult::ERROR - если нужно вернуть ошибку
$event->getEventType() - статус на входе (например, после другого обработчика)

$arReturn - возвращаемое значение, зависит от события, и может быть, как числом или строкой, так и, например, массивом

Пример вызова события (со стороны модуля)

Читайте также: