- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/lib/update/admingridoption.php
- Класс: BitrixIblockUpdateAdminGridOption
- Вызов: AdminGridOption::showNameCodeField
static function showNameCodeField(string $configId, string $scope): void
{
if (!Loader::includeModule('ui'))
{
return;
}
$entityEditorConfiguration = new BitrixUIFormEntityEditorConfiguration('ui.form.editor');
$cardSettings = $entityEditorConfiguration->get($configId, $scope);
if (!is_array($cardSettings))
{
return;
}
$hasOldNameField = self::hasField($cardSettings, 'NAME');
$hasOldCodeField = self::hasField($cardSettings, 'CODE');
$hasNameCodeField = self::hasField($cardSettings, 'NAME-CODE');
if ($hasNameCodeField)
{
if (!$hasOldNameField && !$hasOldCodeField)
{
return;
}
if ($hasOldNameField)
{
$cardSettings = self::unsetField($cardSettings, 'NAME');
}
}
else
{
$nameCodeField = [
'name' => 'NAME-CODE',
'optionFlags' => '1',
'options' => [
'showCode' => $hasOldCodeField ? 'true' : 'false',
]
];
if (!$hasOldNameField)
{
$cardSettings = self::setField($cardSettings, $nameCodeField);
}
else
{
$cardSettings = self::replaceField($cardSettings, 'NAME', $nameCodeField);
}
}
if ($hasOldCodeField)
{
$cardSettings = self::unsetField($cardSettings, 'CODE');
}
$entityEditorConfiguration->set($configId, $cardSettings, ['scope' => $scope]);
}