- Модуль: 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;
}