Документация для разработчиков

Форма добавления / редактирования

Компонент осуществляет вывод формы создания (редактирования) элемента указанного информационного блока. Компонент стандартный и входит в дистрибутив модуля.

В визуальном редакторе компонент расположен по пути: Контент > Добавление элементов > Форма добавления / редактирования.

Компонент относится к модулю Информационные блоки.

Пример вызова компонента iblock.element.add.form

Секции настроек компонента:

  • Источник данных
  • Параметры компонента
  • Свойства инфоблока
  • Параметры доступа
  • Управление адресами страниц
  • Собственные названия полей
  • Описание параметров

    Поле Параметр Описание
    Источник данных
    Тип инфоблока IBLOCK_TYPE Указывается один из созданных в системе типов информационных блоков.
    Инфоблок IBLOCK_ID Для выбранного типа инфоблоков указывается информационный блок, элементы которого необходимо создавать (редактировать).
    Параметры компонента
    Статус после сохранения STATUS_NEW Значение поля зависит от того в каком режиме используется инфоблок:
    • Обычный: с какой активностью создаются элементы (активный/неактивный).
    • В режиме документооборота: указывается статус, в который переводятся элементы при их создании/редактировании.
    • В режиме бизнес-процессов: устанавливается статус снять с публикации.
    Страница со списком своих элементов LIST_URL Задается адрес страницы со списком доступных пользователю элементов. После обновления данных редирект происходит именно на эту страницу.
    Использовать CAPTCHA USE_CAPTCHA [Y|N] При отмеченной опции будет выводиться изображение и поле ввода CAPTCHA в форме добавления элемента.
    Сообщение об успешном сохранении USER_MESSAGE_EDIT Задается сообщение, которое выводится при успешном сохранении элемента.
    Сообщение об успешном добавлении USER_MESSAGE_ADD Задается сообщение, которое выводится при успешном добавлении элемента.
    Размер полей ввода DEFAULT_INPUT_SIZE Указывается размер полей ввода в форме создания/редактирования элемента.
    Использовать настройки инфоблока для обработки изображений RESIZE_IMAGES [Y|N] При отмеченной функции элементы, добавленные через публичную часть будут преобразовываться согласно настройкам инфоблока.
    Свойства инфоблока
    Свойства, выводимые на редактирование PROPERTY_CODES Указываются поля и свойства инфоблока, которые выводятся в форме создания/редактирования элемента.
    Свойства, обязательные для заполнения PROPERTY_CODES_REQUIRED Указываются обязательно заполняемые поля и свойства инфоблока в форме создания/редактирования элемента.

    Примечание: указанные здесь поля и свойства должны быть обязательно указаны в параметре PROPERTY_CODES.
    Параметры доступа
    Группы пользователей, имеющие право на добавление/редактирование GROUPS Указываются группы пользователей, имеющие право на добавление/редактирование элементов инфоблока.
    Редактирование возможно для статуса STATUS Значение поля зависит от того в каком режиме используется инфоблок:
    • Обычный: в каком состоянии активности редактируются элементы (в любом - any или в неактивном - N).
    • В режиме документооборота: указываются статусы, находясь в которых элементы будут доступны для редактирования и удаления.
    • В режиме бизнес-процессов: бизнес-процессы аналогичны обычному инфоблоку.
    Привязка к пользователю ELEMENT_ASSOC Задается привязка к пользователю:
    • создателю (CREATED_BY) - привязка по создателю: в дальнейшем пользователю будут показаны только созданные им элементы.
    • по свойству инфоблока --> (PROPERTY_ID) - привязка по свойству инфоблока. В этом случае доступен параметр ELEMENT_ASSOC_PROPERTY.
    по свойству инфоблока --> ELEMENT_ASSOC_PROPERTY Указывается свойство, по которому выполняется привязка.
    Ограничить кол-во элементов для одного пользователя MAX_USER_ENTRIES Указывается максимальное количество элементов, которые может добавить пользователь.
    Ограничить кол-во рубрик, в которые можно добавлять элемент MAX_LEVELS Указывается максимальное количество разделов инфоблока, в которые пользователь может добавить один и тот же элемент.
    Разрешить добавление только на последний уровень рубрикатора LEVEL_LAST [Y|N] При отмеченной опции пользователям разрешено добавлять элементы только в последний раздел дерева разделов инфоблока.
    Максимальный размер загружаемых файлов, байт (0 - не ограничивать) MAX_FILE_SIZE Указывается максимальный размер загружаемых файлов. Если указано 0, то размер файлов не ограничен.
    Использовать визуальный редактор для редактирования текста анонса PREVIEW_TEXT_USE_HTML_EDITOR [Y|N] При отмеченной опции будет использоваться визуальный редактор для редактирования текста анонса.
    Использовать визуальный редактор для редактирования подробного текста DETAIL_TEXT_USE_HTML_EDITOR [Y|N] При отмеченной опции будет использоваться визуальный редактор для редактирования подробного текста.
    Управление адресами страниц
    Включить поддержку ЧПУ SEF_MODE [Y|N] При отмеченной опции будет включена поддержка ЧПУ.

    Если режим поддержки ЧПУ включен, то необходимо настроить следующие параметры:
    Каталог ЧПУ (относительно корня сайта) SEF_FOLDER Каталог ЧПУ: путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
    Имена переменных VARIABLE_ALIASES Имена переменных для управления страницами.
    SEF_FOLDER.
    Собственные названия полей
    *поле_инфоблока* CUSTOM_TITLE_<поле_инфоблока> Задаются названия полей инфоблока для отображения пользователям. Вместо <поле_инфоблока> указывается следующее:
    • NAME - наименование;
    • TAGS - теги;
    • DATE_ACTIVE_FROM - дата начала;
    • DATE_ACTIVE_TO - дата завершения;
    • IBLOCK_SECTION - раздел инфоблока;
    • PREVIEW_TEXT - текст анонса;
    • PREVIEW_PICTURE - картинка анонса;
    • DETAIL_TEXT - подробный текст;
    • DETAIL_PICTURE - подробная картинка.


    Пользовательские комментарии

    Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

    Для этого нужно всего лишь авторизоваться на сайте

    Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

    Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
    5
    Алексей Борисенко
    В рамках стандартного компонента системы Форма добавления/редактирования (iblock.element.add.form) на данный момент не реализована возможность добавлять описание к свойству типа "Файл".
    При необходимости добавления пользователем описание к файлу, нужно подправить компонент.

    Для этого в файле компонента /bitrix/components/bitrix/iblock.element.add.form/component.php
    перед ~755 строкой
    Код
    $sAction = "ADD";
    
    вставить

    Код
    foreach ($arUpdateValues['PROPERTY_VALUES'][#PROPERTY_ID#] as $k => &$value) {
        if (isset($_REQUEST['DESCRIPTION'][#PROPERTY_ID#][$k])) {
            $value = array(
                'VALUE' => $value,
                'DESCRIPTION' => $_REQUEST['DESCRIPTION'][#PROPERTY_ID#][$k],
            );
        }
    } 
    и в своем шаблоне использовать следующий input

    Код
    <input type="text" name="DESCRIPTION[#PROPERTY_ID#][$k]" value="">
    
    где #PROPERTY_ID# - ID нашего свойства типа Файл.
    4
    Роберт Басыров
    В рамках стандартного компонента системы Форма добавления/редактирования (iblock.element.add.form) на данный момент не реализована возможность ресайза согласно настройкам выставленным в административной части.

    При необходимости добавления пользователями изображений в нужном размере на странице добавления элемента инфоблока вставьте в начало такой код
    Код
    <? 
    AddEventHandler("iblock", "OnBeforeIBlockElementAdd", Array("MyClass", "OnBeforeIBlockElementAddHandler")); 
    class MyClass 
    { 
        // создаем обработчик события "OnBeforeIBlockElementAdd" 
        function OnBeforeIBlockElementAddHandler(&$arFields) 
        { 
            if (is_array($arFields["DETAIL_PICTURE"])) 
            { 
               if(copy($arFields["DETAIL_PICTURE"]["tmp_name"], $arFields["DETAIL_PICTURE"]["tmp_name"]."~")) 
               { 
                 $arFields["PREVIEW_PICTURE"] = $arFields["DETAIL_PICTURE"]; 
                 $arFields["PREVIEW_PICTURE"]["tmp_name"] .= "~"; 
                 $arFields["PREVIEW_PICTURE"] = CIBlock::ResizePicture($arFields["PREVIEW_PICTURE"], array("WIDTH" => 100, "HEIGH" => 100, "METHOD" => "resample",)); 
               } 
               $arFields["DETAIL_PICTURE"] = CIBlock::ResizePicture($arFields["DETAIL_PICTURE"], array("WIDTH" => 400, "HEIGHT" => 400, "METHOD" => "resample",)); 
            } 
         } 
    } 
    ?>
    © «Битрикс», 2001-2019, «1С-Битрикс», 2019
    Наверх