- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/integration/calendar.php
- Класс: BitrixTasksIntegrationCalendar
- Вызов: Calendar::getWorkSettings
static function getWorkSettings(): array
{
$workSettings = static::getDefaultWorkSettings();
if (static::includeModule())
{
$calendarSettings = static::getSettings();
if (is_array($calendarSettings['week_holidays']))
{
$workSettings['WEEKEND'] = $calendarSettings['week_holidays'];
}
if ((string)$calendarSettings['year_holidays'] !== '')
{
$holidays = explode(',', $calendarSettings['year_holidays']);
if (is_array($holidays) && !empty($holidays))
{
foreach ($holidays as $day)
{
$day = trim($day);
[$day, $month] = explode('.', $day);
$day = (int)$day;
$month = (int)$month;
if ($day && $month)
{
$workSettings['HOLIDAYS'][] = [
'M' => $month,
'D' => $day,
];
}
}
}
}
$time = explode('.', (string)$calendarSettings['work_time_start']);
if (!isset($time[0]))
{
$time[0] = 0;
}
if (!isset($time[1]))
{
$time[1] = 0;
}
if ((int)$time[0])
{
$workSettings['HOURS']['START']['H'] = (int)$time[0];
}
if ((int)$time[1])
{
$workSettings['HOURS']['START']['M'] = (int)$time[1];
}
$time = explode('.', (string)$calendarSettings['work_time_end']);
if (!isset($time[0]))
{
$time[0] = 0;
}
if (!isset($time[1]))
{
$time[1] = 0;
}
if ((int)$time[0])
{
$workSettings['HOURS']['END']['H'] = (int)$time[0];
}
if ((int)$time[1])
{
$workSettings['HOURS']['END']['M'] = (int)$time[1];
}
}
$deadlineTimeSettings = CUserOptions::getOption(
'tasks.bx.calendar.deadline',
'time_visibility',
[]
);
$workSettings['deadlineTimeVisibility'] = (
(isset($deadlineTimeSettings['visibility']) && $deadlineTimeSettings['visibility'] === 'Y') ? 'Y' : 'N'
);
return [
'WORK_SETTINGS' => $workSettings,
'WORK_TIME' => $workSettings['HOURS'],
];
}