- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/userfield/resourcebooking.php
- Класс: BitrixCalendarUserFieldResourceBooking
- Вызов: ResourceBooking::handleResourceList
static function handleResourceList($resources)
{
$result = [];
foreach($resources as $resource)
{
if (is_array($resource))
{
if (($resource['id'] ?? null) && (($resource['deleted'] ?? null) || ($resource['title'] ?? null) == ''))
{
$sectionList = InternalsSectionTable::getList(
array(
"filter" => array("ID" => $resource['id'], "CAL_TYPE" => $resource['type'] ?? null),
"select" => array("ID", "CAL_TYPE", "NAME")
)
);
if ($sectionList->fetch())
{
InternalsSectionTable::delete(array('ID' => $resource['id']));
}
}
else if ($resource['id'] ?? null)
{
$sectionList = InternalsSectionTable::getList(
array(
"filter" => array("ID" => $resource['id'], "CAL_TYPE" => $resource['type'] ?? null),
"select" => array("ID", "CAL_TYPE", "NAME")
)
);
if ($section = $sectionList->fetch())
{
if ($section['NAME'] != ($resource['title'] ?? null))
{
CCalendarSect::edit(array(
'arFields' => array(
'ID' => $resource['id'],
'CAL_TYPE' => $resource['type'] ?? null,
'NAME' => $resource['title'] ?? null,
'ACCESS' => []
)
));
}
}
$result[] = $resource;
}
elseif (!($resource['id'] ?? null) && ($resource['title'] ?? null) !== '')
{
$resource['id'] = CCalendarSect::edit(array(
'arFields' => array(
'CAL_TYPE' => $resource['type'] ?? null,
'NAME' => $resource['title'] ?? null,
'ACCESS' => []
)
));
$result[] = $resource;
}
}
}
return $result;
}