• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/controller/calendarajax.php
  • Класс: BitrixCalendarControllerCalendarAjax
  • Вызов: CalendarAjax::saveSettingsAction
public function saveSettingsAction(string $type, array $user_settings = [], string $user_timezone_name = '',
	array $settings = []): void
{
	$request = $this->getRequest();
	$userId = CCalendar::GetCurUserId();

	// Personal
	UserSettings::set($user_settings);

	// Save access for type
	$accessController = new TypeAccessController($userId);
	$typeModel = TypeModel::createFromXmlId($type);

	if ($accessController->check(ActionDictionary::ACTION_TYPE_ACCESS, $typeModel))
	{
		// General
		if (!empty($settings))
		{
			CCalendar::SetSettings($settings);
		}

		if (!empty($request['type_access']))
		{
			CCalendarType::Edit([
				'arFields' => [
					'XML_ID' => $type,
					'ACCESS' => $request['type_access']
				]
			]);
		}
	}

	if (!empty($user_timezone_name))
	{
		CCalendar::SaveUserTimezoneName($userId, $user_timezone_name);
		CCalendar::ClearCache('event_list');
	}
}