В этой статье мы рассмотрим встроенный инструмент по контролю изменений на сайте и познакомимся с 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] => 1 [~ID] => 1 [TIMESTAMP_X] => 09.06.2016 14:23:36 [~TIMESTAMP_X] => 09.06.2016 14:23:36 [SEVERITY] => UNKNOWN [~SEVERITY] => UNKNOWN [AUDIT_TYPE_ID] => IBLOCK_ELEMENT_EDIT [~AUDIT_TYPE_ID] => IBLOCK_ELEMENT_EDIT [MODULE_ID] => iblock [~MODULE_ID] => iblock [ITEM_ID] => 1 [~ITEM_ID] => 1 [REMOTE_ADDR] => 127.0.0.1 [~REMOTE_ADDR] => 127.0.0.1 [USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0 [~USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0 [REQUEST_URI] => /bitrix/admin/iblock_element_edit.php?IBLOCK_ID=1&type=project&lang=ru&find_section_section=-1 [~REQUEST_URI] => /bitrix/admin/iblock_element_edit.php?IBLOCK_ID=1&type=project&lang=ru&find_section_section=-1 [SITE_ID] => [~SITE_ID] => [USER_ID] => 1 [~USER_ID] => 1 [GUEST_ID] => 1 [~GUEST_ID] => 1 [DESCRIPTION] => 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] => 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 мы можем узнать имя элемента, раздела или чего-либо еще
Надеюсь вам был полезен данный материал 🙂 . А какие инструменты по контролю изменений на сайте используете вы?