- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/util/calendar.php
- Класс: Bitrix\Tasks\Util\Calendar
- Вызов: Calendar::setSettings
public function setSettings(array $settings)
{
if(is_array($settings['HOURS']) && !empty($settings['HOURS']))
{
$h = $settings['HOURS'];
$this->workTime = array(
// currently one interval, no time for lunch
array(
'start' => array(
'hours' => (int) $h['START']['H'],
'minutes' => (int) $h['START']['M'],
'time' => ((int) $h['START']['H']) * 60 + ((int) $h['START']['M'])
),
'end' => array(
'hours' => (int) $h['END']['H'],
'minutes' => (int) $h['END']['M'],
'time' => ((int) $h['END']['H']) * 60 + ((int) $h['START']['M'])
)
)
);
}
// holidays
if(is_array($settings['HOLIDAYS']))
{
foreach($settings['HOLIDAYS'] as $day)
{
$this->holidays[(intval($day['M']) - 1).'_'.intval($day['D'])] = true;
}
}
// week settings
$dayMap = array(
'MO' => 1,
'TU' => 2,
'WE' => 3,
'TH' => 4,
'FR' => 5,
'SA' => 6,
'SU' => 0,
);
$this->weekEnds = array();
if(is_array($settings['WEEKEND']))
{
foreach($settings['WEEKEND'] as $day)
{
$this->weekEnds[$dayMap[$day]] = true;
}
}
if(count($this->weekEnds) == 7) // wtf? the entire week is a one big weekend? fall back to "safe defaults"
{
$this->weekEnds = array($dayMap['SA'] => true, $dayMap['SU'] => true);
}
$this->weekStart = $dayMap[$settings['WEEK_START']];
/*
print_r('WeekEnds');
print_r($this->weekEnds);
print_r('weekStart');
print_r($this->weekStart);
print_r('holidays');
print_r($this->holidays);
print_r('worktime');
print_r($this->workTime);
*/
}