• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/configuration.php
  • Класс: BitrixDiskUserConfiguration
  • Вызов: UserConfiguration::getDocumentServiceCode
static function getDocumentServiceCode()
{
	global $USER;
	static $service = null;

	if ($service !== null || !($USER instanceof CUser) || !$USER->getId() )
	{
		return $service;
	}

	$userSettings = CUserOptions::getOption(
		Driver::INTERNAL_MODULE_ID,
		'doc_service',
		[
			'default' => '',
			'primary' => '',
			'was_reset_to_onlyoffice' => '',
			'was_reset' => '',
		]
	);

	$defaultService = $userSettings['default'] ?? '';
	$primaryService = $userSettings['primary'] ?? '';
	$wasResetToOnlyOffice = $userSettings['was_reset_to_onlyoffice'] ?? '';
	$wasReset = $userSettings['was_reset'] ?? '';

	if (!$wasResetToOnlyOffice && Option::get(Driver::INTERNAL_MODULE_ID, 'reset_user_edit_service_to_onlyoffice', 'N') === 'Y')
	{
		self::setDocumentServiceOptions(OnlyOfficeHandler::getCode(), '', 'Y');
	}

	$timeWhenResetStart = Option::get(Driver::INTERNAL_MODULE_ID, 'reset_user_edit_service', 'N');
	if ($timeWhenResetStart !== 'N' && $timeWhenResetStart > $wasReset)
	{
		self::setDocumentServiceOptions('', '', 'N', $timeWhenResetStart);
	}

	if ($primaryService === OnlyOfficeHandler::getCode() && OnlyOfficeHandler::isEnabled())
	{
		$service = OnlyOfficeHandler::getCode();

		return $service;
	}
	if (!$primaryService && OnlyOfficeHandler::isEnabled())
	{
		$defaultHandlerForView = Driver::getInstance()->getDocumentHandlersManager()->getDefaultHandlerForView();
		if ($defaultHandlerForView instanceof OnlyOfficeHandler)
		{
			$service = OnlyOfficeHandler::getCode();

			return $service;
		}
	}
	if ($primaryService === OnlyOfficeHandler::getCode() && !OnlyOfficeHandler::isEnabled())
	{
		$primaryService = '';
	}

	$service = $primaryService?: $defaultService;

	return $service;
}