• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/usersettings.php
  • Класс: BitrixCalendarUserSettings
  • Вызов: UserSettings::get
static function get($userId = null)
{
	if (!$userId)
	{
		$userId = CCalendar::getUserId();
	}

	$resSettings = self::$settings;

	if ($userId)
	{
		$settings = CUserOptions::getOption("calendar", "user_settings", false, $userId);
		if (is_array($settings))
		{
			foreach($settings as $optionName => $value)
			{
				if (
					($optionName === 'defaultSections' || $optionName === 'defaultReminders')
					&& !is_array($value)
				)
				{
					$resSettings[$optionName] = Json::decode($value);
				}
				else
				{
					$resSettings[$optionName] = $value;
				}
			}
		}

		$resSettings['timezoneName'] = CCalendar::getUserTimezoneName($userId);
		$resSettings['timezoneOffsetUTC'] = CCalendar::getCurrentOffsetUTC($userId);
		$resSettings['timezoneDefaultName'] = '';

		if (isset($settings['denyBusyInvitation']))
		{
			$resSettings['denyBusyInvitation'] = !!$settings['denyBusyInvitation'];
		}

		if (isset($settings['showDeclined']))
		{
			$resSettings['showDeclined'] = !!$settings['showDeclined'];
		}

		// We don't have default timezone for this offset for this user
		// We will ask him but we should suggest some suitable for his offset
		if (!$resSettings['timezoneName'])
		{
			$resSettings['timezoneDefaultName'] = CCalendar::getGoodTimezoneForOffset($resSettings['timezoneOffsetUTC']);
		}

		$workTime = CUserOptions::getOption("calendar", "workTime", false, $userId);
		if ($workTime)
		{
			$resSettings['work_time_start'] = $workTime['start'].'.00';
			$resSettings['work_time_end'] = $workTime['end'].'.00';
		}
	}

	return $resSettings;
}