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

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
Наверх