Пример #1
0
 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, 'errors.code', 'Дополнительное поле с таким кодом уже существует в этом компоненте');
 }
 // Запишем массив для передачи в шаблонизатор
 Arr::set($arResult, 'arField', $arField);
 Arr::set($arResult, 'complete', false);
 // Если ошибок нет — запишем даные в БД
 if (isset($arField['complete']) && !Arr::get($arResult, 'error')) {
Пример #2
0
 $postName = $isEdit ? $arElement['name'] : '';
 // Обрабатываем название элемента
 $postName = trim($_POST['name']);
 if (strlen($postName) == 0) {
     $arElementPost['error'] = true;
     $arElementPost['errors']['name'] = 'Не задано название элемента';
 } else {
     $arExistElement = $main->db->getOne('SELECT id FROM ?n WHERE name = ?s', PREFIX . '_component_' . $component['name'], $postName);
     if ($arExistElement) {
         $arElementPost['error'] = true;
         $arElementPost['errors']['main'] = 'Элемент с таким именем уже существует';
     }
 }
 $arElementPost['name'] = $postName;
 if (isset($_POST['alt_name']) && strlen(trim($_POST['alt_name'])) > 0) {
     $arElementPost['alt_name'] = $main->leffersFilter($_POST['alt_name']);
 } else {
     $arElementPost['alt_name'] = $main->slug($arElementPost['name']);
 }
 if (isset($_POST['sort_index']) && (int) $_POST['sort_index'] > 0) {
     $arElementPost['sort_index'] = (int) $_POST['sort_index'];
 }
 if (isset($_POST['text']) && strlen(trim($_POST['text'])) > 0) {
     $arElementPost['text'] = htmlspecialchars(strip_tags(trim($_POST['text'])));
 }
 if (!$arElementPost['error']) {
     if ($isEdit) {
         // Формируем запрос на обновление элемента
         $editComponentQuery = 'UPDATE ?n SET sort_index = ?i, read_access = ?s, write_access = ?s, description = ?s WHERE id = ?i';
         $main->db->query($editComponentQuery, PREFIX . '_components', $arElementPost['sort_index'], $arElementPost['read_access'], $arElementPost['write_access'], $arElementPost['description'], $arElement['id']);
         // Очищаем кеш