- Модуль: ui
- Путь к файлу: ~/bitrix/modules/ui/lib/form/entityeditorconfiguration.php
- Класс: BitrixUIFormEntityEditorConfiguration
- Вызов: EntityEditorConfiguration::set
public function set($configID, array $config, array $params)
{
$categoryName = $this->getCategoryName();
$scope = isset($params['scope'])? mb_strtoupper($params['scope']) : EntityEditorConfigScope::UNDEFINED;
if(!EntityEditorConfigScope::isDefined($scope))
{
$scope = EntityEditorConfigScope::PERSONAL;
}
$userScopeId = $params['userScopeId'] ?? 0;
$forAllUsers = self::canEditOtherSettings()
&& isset($params['forAllUsers'])
&& $params['forAllUsers'] === 'Y';
if($forAllUsers)
{
if(isset($params['delete']) && $params['delete'] === 'Y')
{
CUserOptions::DeleteOptionsByName($categoryName, $configID);
}
CUserOptions::SetOption($categoryName, $configID, $config, true);
}
if($scope === EntityEditorConfigScope::COMMON)
{
CUserOptions::SetOption(
$categoryName,
$this->prepareName($configID, $scope),
$config,
true
);
}
elseif($scope === EntityEditorConfigScope::PERSONAL)
{
CUserOptions::SetOption($categoryName, $configID, $config);
}
elseif($userScopeId > 0)
{
Scope::getInstance()->updateScopeConfig(
$userScopeId,
$config
);
}
$options = isset($params['options']) && is_array($params['options']) ? $params['options'] : array();
if(!empty($options))
{
$optionName = static::prepareOptionsName($configID, $scope, $userScopeId);
if($scope === EntityEditorConfigScope::COMMON)
{
CUserOptions::SetOption(
$categoryName,
$optionName,
$options,
true
);
}
else
{
if($forAllUsers)
{
if(isset($params['delete']) && $params['delete'] === 'Y')
{
CUserOptions::DeleteOptionsByName($categoryName, $optionName);
}
CUserOptions::SetOption($categoryName, $optionName, $options, true);
}
CUserOptions::SetOption($categoryName, $optionName, $options);
}
//todo check what to do with options for custom scopes
}
}