case 'CHK': case 'RAD': case 'CID': $arSelectField['default_value'] = json_decode($arSelectField['default_value'], true); break; } } if (!$isPost && $currentAction == 'edit') { $arField = $arSelectField; } if ($isPost && $currentAction == 'edit') { $arField['code'] = $arSelectField['code']; $arField['type'] = $arSelectField['type']; } // Получаем все типы полей, имеющиеся в БД. $arFieldsTypes = $main->getFieldsTypes(); Arr::set($arResult, 'fieldsTypes', $arFieldsTypes); if (!isset($arFieldsTypes[$arField['type']])) { Arr::set($arResult, 'error', true); Arr::set($arResult, 'errors.fieldsTypes', 'Указан несуществующий тип поля'); } // Фильтруем код поля для занесения в БД $arField['code'] = $main->leffersFilter($arField['code']); // Выведем ошибку, если код поля некорректен if ($arField['code'] == '' && isset($arField['complete'])) { Arr::set($arResult, 'error', true); Arr::set($arResult, 'errors.code', 'Код допполя не указан или содержит недопустимые символы'); } $isFieldExists = $main->db->getOne('SELECT id FROM ?n WHERE component_id = ?i AND code = ?s', PREFIX . '_components_fields_list', $arComponent['id'], $arField['code']); if ($isFieldExists && $currentAction == 'add') { Arr::set($arResult, 'error', true);
} } Arr::set($arResult, 'component', $arComponentPost); break; case 'editcomponentfields': $arComponent = $main->db->getRow('SELECT * FROM ?n WHERE id = ?i', PREFIX . '_components', $componentId); if (!$arComponent) { // Делаем редирект с сообщенем об ошибочной выборке $main->redirect(Arr::get($arResult, 'home') . '&action=componentslist', 'error', 'Компонент с кодом <b>' . $componentId . '</b> не найден'); } // Массив с данными о компоненте Arr::set($arResult, 'component', $arComponent); // Получаем информацию о плях, используемых компонентом. Arr::set($arResult, 'fieldsList', $main->getComponentFieldsList($arComponent['id'])); // Получаем все типы полей, имеющиеся в БД. Arr::set($arResult, 'fieldsTypes', $main->getFieldsTypes()); break; case 'config': Arr::set($arResult, 'arConfig', Config::get('module')); break; default: // code... break; } /** * Добавляем все ключи массивов, возможных к выводу в шаблоне. */ $arTplVars = []; foreach ($arResult as $key => $tplVar) { if (is_array($tplVar)) { foreach ($tplVar as $k => $v) {