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

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-2024, «1С-Битрикс», 2024