Битрикс – журнал событий

В этой статье мы рассмотрим встроенный инструмент по контролю изменений на сайте и познакомимся с API.

Как узнать когда менялись элементы или разделы в Битриксе

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

/bitrix/admin/event_log.php?lang=ru

Чтобы информация попадала в журнал, нужно на вкладке настроек инфоблока, которая называется “Журнал событий”, включить какие изменения мы будем отслеживать.

Описание методов журнала событий задокументировано, вы можете сами всё проверить:
https://dev.1c-bitrix.ru/api_help/main/reference/ceventlog/index.php

Лично мне пригодился только GetList. Пожалуй этого примера вполне хватит, чтобы понять подходит ли это под ваши задачи:

<?
$rsLog = CEventLog::GetList(
	Array("ID" => "DESC"),
	false,
	false
);
while ($arLog = $rsLog->GetNext()) {
	echo "<pre>";
	print_r($arLog);
	echo "</pre>";
}
?>

Выведет следующий код:

Array
(
    [ID] =&gt; 1
    [~ID] =&gt; 1
    [TIMESTAMP_X] =&gt; 09.06.2016 14:23:36
    [~TIMESTAMP_X] =&gt; 09.06.2016 14:23:36
    [SEVERITY] =&gt; UNKNOWN
    [~SEVERITY] =&gt; UNKNOWN
    [AUDIT_TYPE_ID] =&gt; IBLOCK_ELEMENT_EDIT
    [~AUDIT_TYPE_ID] =&gt; IBLOCK_ELEMENT_EDIT
    [MODULE_ID] =&gt; iblock
    [~MODULE_ID] =&gt; iblock
    [ITEM_ID] =&gt; 1
    [~ITEM_ID] =&gt; 1
    [REMOTE_ADDR] =&gt; 127.0.0.1
    [~REMOTE_ADDR] =&gt; 127.0.0.1
    [USER_AGENT] =&gt; Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
    [~USER_AGENT] =&gt; Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
    [REQUEST_URI] =&gt; /bitrix/admin/iblock_element_edit.php?IBLOCK_ID=1&amp;type=project&amp;lang=ru&amp;find_section_section=-1
    [~REQUEST_URI] =&gt; /bitrix/admin/iblock_element_edit.php?IBLOCK_ID=1&amp;type=project&amp;lang=ru&amp;find_section_section=-1
    [SITE_ID] =&gt; 
    [~SITE_ID] =&gt; 
    [USER_ID] =&gt; 1
    [~USER_ID] =&gt; 1
    [GUEST_ID] =&gt; 1
    [~GUEST_ID] =&gt; 1
    [DESCRIPTION] =&gt; a:6:{s:2:"ID";i:1;s:4:"CODE";s:11:"element";s:4:"NAME";s:11:"element";s:12:"ELEMENT_NAME";s:14:"Элемент";s:7:"USER_ID";i:1;s:15:"IBLOCK_PAGE_URL";s:23:"/project/index.php?ID=1";}
    [~DESCRIPTION] =&gt; a:6:{s:2:"ID";i:1;s:4:"CODE";s:11:"element";s:4:"NAME";s:11:"element";s:12:"ELEMENT_NAME";s:14:"Элемент";s:7:"USER_ID";i:1;s:15:"IBLOCK_PAGE_URL";s:23:"/project/index.php?ID=1";}
)

Как по мне, очень полезные поля тут – TIMESTAMP_X, ITEM_ID, AUDIT_TYPE_ID, USER_ID – этих данных вполне хватит для того чтобы написать простенький журнал (если вас вдруг не устраивает встроенный инструмент в админке). В своем журнале вы легко сможете вывести:

  • TIMESTAMP_X – когда было изменение, добавление или удаления
  • AUDIT_TYPE_ID – позволит понять какой тип события произошел (можем создать ассоциативный массив для русских комментариев и выводить значение в виде “добавлен элемент” и т.п.)
  • USER_ID – покажет ID пользователя который совершил изменение элемента
  • ITEM_ID – благодаря этому ID мы можем узнать имя элемента, раздела или чего-либо еще

Надеюсь вам был полезен данный материал 🙂 . А какие инструменты по контролю изменений на сайте используете вы?

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *