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

Set

Описание и параметры

mixed
CFormField::Set(
 array fields,
 mixed field_id = false,
 string check_rights = "Y"
)

Добавляет новый вопрос/поле или обновляет существующий. Возвращает ID обновленного или добавленного вопроса/поля в случае положительного результата, в противном случае - "false". Метод нестатический.

Параметры метода

Параметр Описание С версии
fields Массив значений, в качестве ключей массива допустимы:
  • SID* - символьный идентификатор вопроса/поля;
  • FORM_ID* - ID веб-формы;
  • ACTIVE - флаг активности; допустимы следующие значения:
  • ADDITIONAL - допустимы следующие значения:
    • Y - данная запись является полем веб-формы;
    • N - данная запись является вопросом веб-формы (по умолчанию).
  • FIELD_TYPE* - тип поля, допустимые следующие значения:
    • text - текст;
    • integer - число;
    • date - дата.
  • TITLE - текст вопроса либо заголовок поля.
  • TITLE_TYPE* - тип вопроса; допустимы следующие значения:
    • text - текст;
    • html - HTML код.
  • C_SORT - порядок сортировки;
  • REQUIRED* - флаг обязательности ответа на вопрос:
    • Y - ответ на данный вопрос обязателен;
    • N - ответ на данный вопрос обязателен (по умолчанию).
  • FILTER_TITLE - подпись к полю фильтра;
  • IN_RESULTS_TABLE - флаг вхождения в HTML таблицу результатов:
    • Y - ответ на данный вопрос либо значения поля веб-формы отражены в HTML таблице результатов;
    • N - ответ на данный вопрос либо значения поля веб-формы отражены в HTML таблице результатов (по умолчанию).
  • IN_EXCEL_TABLE - флаг вхождения в Excel таблицу результатов:
  • RESULTS_TABLE_TITLE - заголовок столбца в таблицах результатов;
  • COMMENTS - служебный комментарий;
  • arIMAGE** - массив, описывающий изображение вопроса, допустимы следующие ключи этого массива:
    • name - имя файла;
    • size - размер файла;
    • tmp_name - временный путь на сервере;
    • type - тип загружаемого файла;
    • del - если значение равно "Y", то изображение будет удалено;
    • MODULE_ID - идентификатор модуля "Веб-формы" - form
  • arANSWER** - массив, описывающий ответы на вопрос, со следующей структурой:
    Array
    (
        [0] => Array
            (
                [ID] => ID
                [DELETE] => флаг необходимости удаления [Y|N]
                [MESSAGE] => параметр ANSWER_TEXT
                [VALUE] => параметр ANSWER_VALUE
                [C_SORT] => порядок сортировки
                [ACTIVE] => флаг активности [Y|N]
                [FIELD_TYPE] => тип, допустимы следующие значения:
    
                    text - однострочное текстовое поле
                    textarea - многострочное текстовое поле
                    radio* - переключатель одиночного выбора (radio-кнопка)
                    checkbox* - флаг множественного выбора (checkbox)
                    dropdown* - элемент выпадающего списка одиночного выбора
                    multiselect* - элемент списка множественного выбора
                    date - поле для ввода даты
                    image - поле для загрузки изображения
                    file - поле для загрузки произвольного файла
                    password - поле для ввода пароля
    
                [FIELD_WIDTH] => ширина поля ввода
                [FIELD_HEIGHT] => высота поля ввода
                [FIELD_PARAM] => дополнительные параметры; 
                    допустимо использование любого HTML кода; 
                    для типов помеченных символом * допустимо использование 
                    следующих зарезервированных строк:
    
                    checked - ответ будет выбран (отмечен) 
                              по умолчанию (синоним - selected)
                    not_answer - выбор данного ответа не означает,
                              что был дан ответ на вопрос 
                              (как правило это первый элемент выпадающего списка и
                              важно при REQUIRED="Y")
            )
        [1] => массив описывающий следующий ответ
        ...
    )
  • arFILTER_USER** - массив полей фильтра для фильтрации по значению ответа, введенному с клавиатуры пользователем при заполнении веб-формы; в данном массиве допустимы следующие значения:
  • arFILTER_ANSWER_TEXT** - массив полей фильтра для фильтрации по параметру ответа ANSWER_TEXT; в данном массиве допустимы следующие значения:
  • arFILTER_ANSWER_VALUE** - массив полей фильтра для фильтрации по параметру ответа ANSWER_VALUE; в данном массиве допустимы следующие значения:
  • arFILTER_FIELD* - массив полей фильтра для фильтрации по значению поля веб-формы:

* - обязательно к заполнению;
* - заполняется только для полей веб-формы;
** - заполняется только для вопросов веб-формы.
field_id ID обновляемого вопроса/поля.
Параметр необязательный. По умолчанию - "false" (добавление нового вопроса/поля).
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для добавления нового вопроса/поля или обновления их параметров необходимо иметь право [30] Полный доступ на веб-форму указанную в fields["FORM_ID"].

Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).
update_filter Необязательный параметр. Значение по умолчанию - "Y". 8.0.3

Примеры использования

<?
/*************************************************
         Добавление вопроса веб-формы
*************************************************/

// создадим массив описывающий изображение 
// находящееся в файле на сервере
$arIMAGE = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/question.gif");
$arIMAGE["MODULE_ID"] = "form";

// формируем массив ответов
$arANSWER = array();

$arANSWER[] = array(
    "MESSAGE"     => "да",                           // параметр ANSWER_TEXT
    "C_SORT"      => 100,                            // порядок фортировки 
    "ACTIVE"      => "Y",                            // флаг активности
    "FIELD_TYPE"  => "radio",                        // тип ответа
    "FIELD_PARAM" => "checked class=\"inputradio\""  // параметры ответа
    );

$arANSWER[] = array(
    "MESSAGE"     => "нет",
    "C_SORT"      => 200,
    "ACTIVE"      => "Y",
    "FIELD_TYPE"  => "radio"
    );

// формируем массив полей
$arFields = array( 
    "FORM_ID"              => 4,                     // ID веб-формы
    "ACTIVE"               => "Y",                     // флаг активности
    "TITLE"                => "Вы женаты/замужем ?", // текст вопроса
    "TITLE_TYPE"           => "text",                // тип текста вопроса
    "SID"                  => "VS_MARRIED",          // символьный идентификатор вопроса
    "C_SORT"               => 400,                   // порядок сортировки
    "ADDITIONAL"           => "N",                   // мы добавляем вопрос веб-формы
    "REQUIRED"             => "Y",                   // ответ на данный вопрос обязателен
    "IN_RESULTS_TABLE"     => "Y",                   // добавить в HTML таблицу результатов
    "IN_EXCEL_TABLE"       => "Y",                   // добавить в Excel таблицу результатов
    "FILTER_TITLE"         => "Женат/замужем",       // подпись к полю фильтра
    "RESULTS_TABLE_TITLE"  => "Женат/замужем",       // заголовок столбца фильтра
    "arIMAGE"              => $arIMAGE,              // изображение вопроса
    "arFILTER_ANSWER_TEXT" => array("dropdown"),     // тип фильтра по ANSWER_TEXT
    "arANSWER"             => $arANSWER,             // набор ответов
);

// добавим новый вопрос
$NEW_ID = CFormField::Set($arFields);
if ($NEW_ID>0) echo "Добавлен вопрос с ID=".$NEW_ID;
else // ошибка
{
    // выводим текст ошибки
    global $strError;
    echo $strError;
}
?>
<?
/*************************************************
          Добавление поля веб-формы
*************************************************/

$arFields = array( 
    "FORM_ID"             => 4
    "ACTIVE"              => "Y",
    "TITLE"               => "Рассчитанная стоимость",
    "SID"                 => "VS_PRICE",
    "C_SORT"              => 1000,
    "ADDITIONAL"          => "Y",
    "IN_RESULTS_TABLE"    => "Y",
    "IN_EXCEL_TABLE"      => "Y",
    "FIELD_TYPE"          => "text",
    "FILTER_TITLE"        => "Стоимость",
    "RESULTS_TABLE_TITLE" => "Стоимость",
    "arFILTER_FIELD"      => array("text")
    );

// добавим новое поле
$NEW_ID = CFormField::Set($arFields);
if ($NEW_ID>0) echo "Добавлено поле с ID=".$NEW_ID;
else // ошибка
{
    // выводим текст ошибки
    global $strError;
    echo $strError;
}
?>


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

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

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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2021, «1С-Битрикс», 2021
Наверх