- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/queue/event.php
- Класс: BitrixImOpenLinesQueueEvent
- Вызов: Event::OnBeforeDepartmentsUpdate
static function OnBeforeDepartmentsUpdate(&$fields)
{
if (
Loader::includeModule('iblock') &&
((int)$fields['IBLOCK_ID']) > 0 &&
((int)$fields['ID']) > 0 &&
(int)$fields['IBLOCK_ID'] === QueueManager::getIdIblockStructure()
)
{
$raw = CIBlockSection::GetList([], [
'IBLOCK_ID' => $fields['IBLOCK_ID'],
'ID' => $fields['ID'],
],
false,
[
'UF_HEAD',
'IBLOCK_SECTION_ID'
]);
if ($oldFields = $raw->GetNext())
{
if(
isset($fields['UF_HEAD']) &&
(int)$fields['UF_HEAD'] !== (int)$oldFields['UF_HEAD']
)
{
$lines = self::getLineIsDepartmentQueue([$fields['ID']]);
if (!empty($lines))
{
self::$linesDepartmentsUpdate[$fields['ID']] = $lines;
}
}
elseif(
isset($fields['IBLOCK_SECTION_ID']) &&
(int)$fields['IBLOCK_SECTION_ID'] !== (int)$oldFields['IBLOCK_SECTION_ID']
)
{
$lines = self::getLineIsDepartmentQueue([$fields['IBLOCK_SECTION_ID'], $oldFields['IBLOCK_SECTION_ID']]);
if (!empty($lines))
{
self::$linesDepartmentsUpdate[$fields['ID']] = $lines;
}
}
}
}
}