<td><input type="text" name="MESSAGE_<?php echo $i; ?> " value="<?php echo $message; ?> " style="width:100%" onchange="jsFormValidatorSettings.UpdateAll();" /></td> <td><input type="text" name="VALUE_<?php echo $i; ?> " value="<?php echo $value; ?> " size="16" /></td> <td nowrap="nowrap"><?php echo SelectBoxFromArray("FIELD_TYPE_" . $i, CFormAnswer::GetTypeList(), $ftype, "", "onchange=\"FIELD_TYPE_CHANGE(" . $i . "); jsFormValidatorSettings.UpdateAll();\""); ?> </td> <td nowrap="nowrap"><input <?php if ($ftype != "text" && $ftype != "textarea" && $ftype != "image" && $ftype != "date" && $ftype != 'email') { echo "disabled"; } ?> type="text" id="FIELD_WIDTH_<?php echo $i; ?> " name="FIELD_WIDTH_<?php echo $i; ?> " value="<?php echo $width;
$arAnswer["FIELD_PARAM"] = "SELECTED"; } else { $arAnswer["FIELD_PARAM"] = ""; } } if ($arAnswer["FIELD_TYPE"] == "checkbox" || $arAnswer['FIELD_TYPE'] == "radio") { if ($arAnswer["DEFAULT"] == "Y") { $arAnswer["FIELD_PARAM"] = "CHECKED"; } else { $arAnswer["FIELD_PARAM"] = ""; } } } $arAnswerFields = array("FIELD_ID" => $QID, "MESSAGE" => $arAnswer["MESSAGE"], "C_SORT" => $arAnswer["C_SORT"], "ACTIVE" => $arAnswer["ACTIVE"], "VALUE" => $arAnswer["VALUE"], "FIELD_TYPE" => $arAnswer["FIELD_TYPE"], "FIELD_WIDTH" => $arAnswer["FIELD_WIDTH"], "FIELD_HEIGHT" => $arAnswer["FIELD_HEIGHT"], "FIELD_PARAM" => $arAnswer["FIELD_PARAM"]); $ANS_ID = $arAnswer["ANS_NEW"] == "Y" ? false : $arAnswer["ID"]; CFormAnswer::Set($arAnswerFields, $ANS_ID); } } } } } if ($bSimple) { // mail template $arr = CForm::GetTemplateList("MAIL", "xxx", $res); if ($_REQUEST['USE_MAIL_TEMPLATE'] && count($arr['reference_id']) == 0) { CForm::SetMailTemplate($res, "Y"); } elseif (!$_REQUEST['USE_MAIL_TEMPLATE'] && count($arr['reference_id']) > 0) { reset($arr['reference_id']); while (list($num, $tmp_id) = each($arr['reference_id'])) { CEventMessage::Delete($tmp_id); }
function GetDataByID($WEB_FORM_ID, &$arForm, &$arQuestions, &$arAnswers, &$arDropDown, &$arMultiSelect, $additional = "N", $active = "N") { global $strError; $WEB_FORM_ID = intval($WEB_FORM_ID); $arForm = array(); $arQuestions = array(); $arAnswers = array(); $arDropDown = array(); $arMultiSelect = array(); $z = CForm::GetByID($WEB_FORM_ID); if ($arForm = $z->Fetch()) { if (!is_set($arForm, "FORM_TEMPLATE")) { $arForm["FORM_TEMPLATE"] = CForm::GetFormTemplateByID($WEB_FORM_ID); } $u = CFormField::GetList($WEB_FORM_ID, $additional, $by = "s_c_sort", $order = "asc", $active == "N" ? array("ACTIVE" => "Y") : array(), $is_filtered); while ($ur = $u->Fetch()) { $arQuestions[$ur["SID"]] = $ur; $w = CFormAnswer::GetList($ur["ID"], $by = "s_c_sort", $order = "asc", $active == "N" ? array("ACTIVE" => "Y") : array(), $is_filtered); while ($wr = $w->Fetch()) { $arAnswers[$ur["SID"]][] = $wr; } } // собираем по каждому вопросу все dropdown и multiselect в отдельные массивы if (is_array($arQuestions) && is_array($arAnswers)) { foreach ($arQuestions as $arQ) { $QUESTION_ID = $arQ["SID"]; $arDropReference = array(); $arDropReferenceID = array(); $arDropParam = array(); $arMultiReference = array(); $arMultiReferenceID = array(); $arMultiParam = array(); if (is_array($arAnswers[$QUESTION_ID])) { foreach ($arAnswers[$QUESTION_ID] as $arA) { switch ($arA["FIELD_TYPE"]) { case "dropdown": $arDropReference[] = $arA["MESSAGE"]; $arDropReferenceID[] = $arA["ID"]; $arDropParam[] = $arA["FIELD_PARAM"]; break; case "multiselect": $arMultiReference[] = $arA["MESSAGE"]; $arMultiReferenceID[] = $arA["ID"]; $arMultiParam[] = $arA["FIELD_PARAM"]; break; } } } if (count($arDropReference) > 0) { $arDropDown[$QUESTION_ID] = array("reference" => $arDropReference, "reference_id" => $arDropReferenceID, "param" => $arDropParam); } if (count($arMultiReference) > 0) { $arMultiSelect[$QUESTION_ID] = array("reference" => $arMultiReference, "reference_id" => $arMultiReferenceID, "param" => $arMultiParam); } } } reset($arForm); reset($arQuestions); reset($arAnswers); reset($arDropDown); reset($arMultiSelect); /* echo "<pre>"; print_r($arForm); print_r($arQuestions); print_r($arAnswers); print_r($arDropDown); print_r($arMultiSelect); echo "</pre>"; */ return $arForm["ID"]; } else { return false; } }
/** * <p>Добавляет новый <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a>/<a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поле</a> или обновляет существующий. Возвращает ID обновленного или добавленного <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопроса</a>/<a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a> в случае положительного результата, в противном случае - "false".</p> * * * @param array $fields Массив значений, в качестве ключей массива допустимы: <ul> <li> * <b>SID</b><font color="red">*</font> - символьный идентификатор <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопроса</a>/<a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a>; </li> <li> <b>FORM_ID</b><font * color="red">*</font> - ID <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#form">веб-формы</a>; </li> * <li> <b>ACTIVE</b> - флаг активности; допустимы следующие значения: <ul> <li> * <b>Y</b> - <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a>/<a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поле</a> активен; </li> <li> <b>N</b> - <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a>/<a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поле</a> не активен (по умолчанию). * </li> </ul> </li> <li> <b>ADDITIONAL</b> - допустимы следующие значения: <ul> <li> <b>Y</b> - * данная запись является <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">полем</a> веб-формы; </li> <li> <b>N</b> - * данная запись является <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопросом</a> веб-формы (по * умолчанию). </li> </ul> </li> <li> <b>FIELD_TYPE</b><font color="green">*</font> - тип <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a>, допустимые следующие * значения: <ul> <li> <b>text</b> - текст; </li> <li> <b>integer</b> - число; </li> <li> <b>date</b> - * дата. </li> </ul> </li> <li> <b>TITLE</b> - текст <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопроса</a> либо заголовок <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a>. </li> <li> <b>TITLE_TYPE</b><font * color="green">*</font> - тип <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопроса</a>; * допустимы следующие значения: <ul> <li> <b>text</b> - текст; </li> <li> <b>html</b> - * HTML код. </li> </ul> </li> <li> <b>C_SORT</b> - порядок сортировки; </li> <li> <b>REQUIRED</b><font * color="green">*</font> - флаг обязательности ответа на <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a>: <ul> <li> <b>Y</b> - ответ на * данный <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a> обязателен; * </li> <li> <b>N</b> - ответ на данный <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a> обязателен (по * умолчанию). </li> </ul> </li> <li> <b>FILTER_TITLE</b> - подпись к полю фильтра; </li> <li> * <b>IN_RESULTS_TABLE</b> - флаг вхождения в HTML таблицу результатов: <ul> <li> <b>Y</b> * - ответ на данный <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a> * либо значения <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a> веб-формы * отражены в HTML таблице результатов; </li> <li> <b>N</b> - ответ на данный <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a> либо значения <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a> веб-формы отражены в HTML * таблице результатов (по умолчанию). </li> </ul> </li> <li> <b>IN_EXCEL_TABLE</b> - флаг * вхождения в Excel таблицу <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результатов</a>: <ul> <li> <b>Y</b> - * ответ на данный <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a> * либо значения <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a> веб-формы * отражены в Excel таблице <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результатов</a> </li> <li> <b>N</b> - * ответ на данный <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a> * либо значения <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a> веб-формы * отражены в Excel таблице <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результатов</a> (по умолчанию). * </li> </ul> </li> <li> <b>RESULTS_TABLE_TITLE</b> - заголовок столбца в таблицах * результатов; </li> <li> <b>COMMENTS</b> - служебный комментарий; </li> <li> * <b>arIMAGE</b><font color="green">**</font> - массив, описывающий изображение <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопроса</a>, допустимы * следующие ключи этого массива: <ul> <li> <b>name</b> - имя файла; </li> <li> * <b>size</b> - размер файла; </li> <li> <b>tmp_name</b> - временный путь на сервере; * </li> <li> <b>type</b> - тип загружаемого файла; </li> <li> <b>del</b> - если значение * равно "Y", то изображение будет удалено; </li> <li> <b>MODULE_ID</b> - * идентификатор модуля "Веб-формы" - <b>form</b> </li> </ul> </li> <li> <b>arANSWER</b><font * color="green">**</font> - массив, описывающий <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответы</a> на <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a>, со следующей * структурой: <pre>Array ( [0] => Array ( [ID] => ID [DELETE] => флаг необходимости * удаления [Y|N] [MESSAGE] => параметр <font color="green">ANSWER_TEXT</font> [VALUE] => * параметр <font color="red">ANSWER_VALUE</font> [C_SORT] => порядок сортировки [ACTIVE] => * флаг активности [Y|N] [FIELD_TYPE] => тип, допустимы следующие значения: * <b>text</b> - однострочное текстовое поле <b>textarea</b> - многострочное * текстовое поле <b>radio</b>* - переключатель одиночного выбора * (radio-кнопка) <b>checkbox</b>* - флаг множественного выбора (checkbox) <b>dropdown</b>* - * элемент выпадающего списка одиночного выбора <b>multiselect</b>* - * элемент списка множественного выбора <b>date</b> - поле для ввода даты * <b>image</b> - поле для загрузки изображения <b>file</b> - поле для загрузки * произвольного файла <b>password</b> - поле для ввода пароля [FIELD_WIDTH] => * ширина поля ввода [FIELD_HEIGHT] => высота поля ввода [FIELD_PARAM] => * дополнительные параметры; допустимо использование любого HTML * кода; для типов помеченных символом * допустимо использование * следующих зарезервированных строк: <b>checked</b> - <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответ</a> будет выбран (отмечен) * по умолчанию (синоним - <b>selected</b>) <b>not_answer</b> - выбор данного <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответа</a> не означает, что был * дан ответ на вопрос (как правило это первый элемент выпадающего * списка и важно при <b>REQUIRED</b>="Y") ) [1] => массив описывающий * следующий <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответ</a> ... )</pre> </li> * <li> <b>arFILTER_USER</b><font color="green">**</font> - массив полей фильтра для * фильтрации по значению <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответа</a>, введенному с * клавиатуры пользователем при заполнении веб-формы; в данном * массиве допустимы следующие значения: <ul> <li> <b>text</b> - <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/gettextfilter.php">текстовое поле</a> * фильтра; </li> <li> <b>integer</b> - поля фильтра для <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/getnumberfilter.php">числового * интервала</a>; </li> <li> <b>date</b> - поля фильтра для <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/getdatefilter.php">интервала дат</a>; </li> <li> * <b>exist</b> - поле для фильтрации по <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/getexistflagfilter.php">факту * существования</a> введенного ответа. </li> </ul> </li> <li> * <b>arFILTER_ANSWER_TEXT</b><font color="green">**</font> - массив полей фильтра для * фильтрации по параметру <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответа</a> <font color="green">ANSWER_TEXT</font>; * в данном массиве допустимы следующие значения: <ul> <li> <b>text</b> - <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/gettextfilter.php">текстовое поле</a> * фильтра; </li> <li> <b>integer</b> - поля фильтра для <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/getnumberfilter.php">числового * интервала</a>; </li> <li> <b>dropdown</b> - <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/getdropdownfilter.php">выпадающий список * одиночного выбора</a>; </li> <li> <b>exist</b> - поле для фильтрации по <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/getexistflagfilter.php">факту * существования</a>. </li> </ul> </li> <li> <b>arFILTER_ANSWER_VALUE</b><font color="green">**</font> - * массив полей фильтра для фильтрации по параметру <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответа</a> <font color="red">ANSWER_VALUE</font>; в * данном массиве допустимы следующие значения: <ul> <li> <b>text</b> - <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/gettextfilter.php">текстовое поле</a> * фильтра; </li> <li> <b>integer</b> - поля фильтра для <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/getnumberfilter.php">числового * интервала</a>; </li> <li> <b>dropdown</b> - <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/getdropdownfilter.php">выпадающий список * одиночного выбора</a>; </li> <li> <b>exist</b> - поле для фильтрации по <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/getexistflagfilter.php">факту * существования</a>. </li> </ul> </li> <li> <b>arFILTER_FIELD</b><font color="green">*</font> - массив * полей фильтра для фильтрации по значению <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля веб-формы</a>: <ul> <li> <b>text</b> - <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/gettextfilter.php">текстовое поле</a> * фильтра; </li> <li> <b>integer</b> - поля фильтра для <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/getnumberfilter.php">числового * интервала</a>; </li> <li> <b>date</b> - поля фильтра для <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cform/getdatefilter.php">интервала дат</a>. </li> </ul> * </li> </ul> <br><font color="red">*</font> - обязательно к заполнению; <br><font * color="green">*</font> - заполняется <b>только</b> для <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">полей веб-формы</a>; <br><font * color="green">**</font> - заполняется <b>только</b> для <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопросов веб-формы</a>. * * @param mixed $field_id = false ID обновляемого <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопроса</a>/<a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a>.<br>Параметр * необязательный. По умолчанию - "false" (добавление нового <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопроса</a>/<a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a>). * * @param string $check_rights = "Y" Флаг необходимости проверки прав текущего пользователя. * Возможны следующие значения: <ul> <li> <b>Y</b> - права необходимо * проверить; </li> <li> <b>N</b> - право не нужно проверять. </li> </ul> Для * добавления нового <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопроса</a>/<a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a> или обновления их * параметров необходимо иметь право <b>[30] Полный доступ</b> на * веб-форму указанную в <i>fields</i>["<b>FORM_ID</b>"].<br><br>Параметр * необязательный. По умолчанию - "Y" (права необходимо проверить). * * @return mixed * * <h4>Example</h4> * <pre> * <? * //<************************************************ * Добавление <a href="/api_help/form/terms.php#question">вопроса</a> веб-формы * ************************************************>// * * // создадим массив описывающий изображение * // находящееся в файле на сервере * $arIMAGE = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/question.gif"); * $arIMAGE["MODULE_ID"] = "form"; * * // формируем массив ответов * $arANSWER = array(); * * $arANSWER[] = array( * "MESSAGE" => "да", // параметр <font color="green">ANSWER_TEXT</font> * "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", // мы добавляем <b>вопрос</b> веб-формы * "REQUIRED" => "Y", // ответ на данный вопрос обязателен * "IN_RESULTS_TABLE" => "Y", // добавить в HTML таблицу результатов * "IN_EXCEL_TABLE" => "Y", // добавить в Excel таблицу результатов * "FILTER_TITLE" => "Женат/замужем", // подпись к полю фильтра * "RESULTS_TABLE_TITLE" => "Женат/замужем", // заголовок столбца фильтра * "arIMAGE" => $arIMAGE, // изображение вопроса * "arFILTER_ANSWER_TEXT" => array("dropdown"), // тип фильтра по <font color="green">ANSWER_TEXT</font> * "arANSWER" => $arANSWER, // набор <a href="/api_help/form/terms.php#answer">ответов</a> * ); * * // добавим новый вопрос * $NEW_ID = <b>CFormField::Set</b>($arFields); * if ($NEW_ID>0) echo "Добавлен вопрос с ID=".$NEW_ID; * else // ошибка * { * // выводим текст ошибки * global $strError; * echo $strError; * } * ?> * * * <? * //<************************************************ * Добавление <a href="/api_help/form/terms.php#field">поля</a> веб-формы * ************************************************>// * * $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 = <b>CFormField::Set</b>($arFields); * if ($NEW_ID>0) echo "Добавлено поле с ID=".$NEW_ID; * else // ошибка * { * // выводим текст ошибки * global $strError; * echo $strError; * } * ?> * </pre> * * * <h4>See Also</h4> * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/form/classes/cformfield/index.php">Поля CFormField</a> </li> * <li> <a href="http://dev.1c-bitrix.ru/api_help/form/permissions.php#form">Права на веб-форму</a> </li> * <li> <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cfile/makefilearray.php">CFile::MakeFileArray</a> <br> * </li> </ul> <a name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/form/classes/cformfield/set.php * @author Bitrix */ public static function Set($arFields, $FIELD_ID = false, $CHECK_RIGHTS = "Y", $UPDATE_FILTER = "Y") { $err_mess = CAllFormField::err_mess() . "<br>Function: Set<br>Line: "; global $DB; if (CFormField::CheckFields($arFields, $FIELD_ID, $CHECK_RIGHTS)) { $arFields_i = array(); if (strlen(trim($arFields["SID"])) > 0) { $arFields["VARNAME"] = $arFields["SID"]; } elseif (strlen($arFields["VARNAME"]) > 0) { $arFields["SID"] = $arFields["VARNAME"]; } $arFields_i["TIMESTAMP_X"] = $DB->GetNowFunction(); if (is_set($arFields, "ACTIVE")) { $arFields_i["ACTIVE"] = $arFields["ACTIVE"] == "Y" ? "'Y'" : "'N'"; } if (is_set($arFields, "TITLE")) { $arFields_i["TITLE"] = "'" . $DB->ForSql($arFields["TITLE"], 2000) . "'"; } if (is_set($arFields, "TITLE_TYPE")) { $arFields_i["TITLE_TYPE"] = $arFields["TITLE_TYPE"] == "html" ? "'html'" : "'text'"; } if (is_set($arFields, "SID")) { $arFields_i["SID"] = "'" . $DB->ForSql($arFields["SID"], 50) . "'"; } if (is_set($arFields, "C_SORT")) { $arFields_i["C_SORT"] = "'" . intval($arFields["C_SORT"]) . "'"; } if (is_set($arFields, "ADDITIONAL")) { $arFields_i["ADDITIONAL"] = $arFields["ADDITIONAL"] == "Y" ? "'Y'" : "'N'"; } if (is_set($arFields, "REQUIRED")) { $arFields_i["REQUIRED"] = $arFields["REQUIRED"] == "Y" ? "'Y'" : "'N'"; } if (is_set($arFields, "IN_RESULTS_TABLE")) { $arFields_i["IN_RESULTS_TABLE"] = $arFields["IN_RESULTS_TABLE"] == "Y" ? "'Y'" : "'N'"; } if (is_set($arFields, "IN_EXCEL_TABLE")) { $arFields_i["IN_EXCEL_TABLE"] = $arFields["IN_EXCEL_TABLE"] == "Y" ? "'Y'" : "'N'"; } if (is_set($arFields, "FIELD_TYPE")) { $arFields_i["FIELD_TYPE"] = "'" . $DB->ForSql($arFields["FIELD_TYPE"], 50) . "'"; } if (is_set($arFields, "COMMENTS")) { $arFields_i["COMMENTS"] = "'" . $DB->ForSql($arFields["COMMENTS"], 2000) . "'"; } if (is_set($arFields, "FILTER_TITLE")) { $arFields_i["FILTER_TITLE"] = "'" . $DB->ForSql($arFields["FILTER_TITLE"], 2000) . "'"; } if (is_set($arFields, "RESULTS_TABLE_TITLE")) { $arFields_i["RESULTS_TABLE_TITLE"] = "'" . $DB->ForSql($arFields["RESULTS_TABLE_TITLE"], 2000) . "'"; } // fcuk knows why he wrote it. maybe for some checking. but it's absolutely useless. //$z = $DB->Query("SELECT IMAGE_ID FROM b_form_field WHERE ID='$FIELD_ID'", false, $err_mess.__LINE__); //$zr = $z->Fetch(); if (strlen($arFields["arIMAGE"]["name"]) > 0 || strlen($arFields["arIMAGE"]["del"]) > 0) { if (!array_key_exists("MODULE_ID", $arFields["arIMAGE"]) || strlen($arFields["arIMAGE"]["MODULE_ID"]) <= 0) { $arFields["arIMAGE"]["MODULE_ID"] = "form"; } $fid = CFile::SaveFile($arFields["arIMAGE"], "form"); if (intval($fid) > 0) { $arFields_i["IMAGE_ID"] = intval($fid); } else { $arFields_i["IMAGE_ID"] = "null"; } } $FIELD_ID = intval($FIELD_ID); if ($FIELD_ID > 0) { $DB->Update("b_form_field", $arFields_i, "WHERE ID='" . $FIELD_ID . "'", $err_mess . __LINE__); } else { $arFields_i["FORM_ID"] = "'" . intval($arFields["FORM_ID"]) . "'"; $FIELD_ID = $DB->Insert("b_form_field", $arFields_i, $err_mess . __LINE__); } if ($FIELD_ID > 0) { // ответы на вопрос if ($arFields["ADDITIONAL"] != "Y" && is_set($arFields, "arANSWER")) { $arANSWER = $arFields["arANSWER"]; if (is_array($arANSWER) && count($arANSWER) > 0) { $arrAnswers = array(); $rs = CFormAnswer::GetList($FIELD_ID, $by = 'ID', $order = 'ASC', array(), $is_filtered); while ($ar = $rs->Fetch()) { $arrAnswers[] = $ar["ID"]; } foreach ($arANSWER as $arA) { $answer_id = in_array($arA["ID"], $arrAnswers) ? intval($arA["ID"]) : 0; if ($arA["DELETE"] == "Y" && $answer_id > 0) { CFormAnswer::Delete($answer_id, $FIELD_ID); } else { if ($answer_id > 0 || $answer_id <= 0 && strlen($arA["MESSAGE"]) > 0) { $arFields_a = array("FIELD_ID" => $FIELD_ID, "MESSAGE" => $arA["MESSAGE"], "VALUE" => $arA["VALUE"], "C_SORT" => $arA["C_SORT"], "ACTIVE" => $arA["ACTIVE"], "FIELD_TYPE" => $arA["FIELD_TYPE"], "FIELD_WIDTH" => $arA["FIELD_WIDTH"], "FIELD_HEIGHT" => $arA["FIELD_HEIGHT"], "FIELD_PARAM" => $arA["FIELD_PARAM"]); //echo "<pre>"; print_r($arFields_a); echo "</pre>"; CFormAnswer::Set($arFields_a, $answer_id, $FIELD_ID); } } } } } // тип почтового события CForm::SetMailTemplate(intval($arFields["FORM_ID"]), "N"); if ($UPDATE_FILTER == 'Y') { // фильтр $in_filter = "N"; $DB->Query("UPDATE b_form_field SET IN_FILTER='N' WHERE ID='" . $FIELD_ID . "'", false, $err_mess . __LINE__); $arrFilterType = array("arFILTER_USER" => "USER", "arFILTER_ANSWER_TEXT" => "ANSWER_TEXT", "arFILTER_ANSWER_VALUE" => "ANSWER_VALUE", "arFILTER_FIELD" => "USER"); foreach ($arrFilterType as $key => $value) { if (is_set($arFields, $key)) { $strSql = "DELETE FROM b_form_field_filter WHERE FIELD_ID='" . $FIELD_ID . "' and PARAMETER_NAME='" . $value . "'"; $DB->Query($strSql, false, $err_mess . __LINE__); if (is_array($arFields[$key])) { reset($arFields[$key]); foreach ($arFields[$key] as $type) { $arFields_i = array("FIELD_ID" => "'" . intval($FIELD_ID) . "'", "FILTER_TYPE" => "'" . $DB->ForSql($type, 50) . "'", "PARAMETER_NAME" => "'" . $value . "'"); $DB->Insert("b_form_field_filter", $arFields_i, $err_mess . __LINE__); $in_filter = "Y"; } } } } if ($in_filter == "Y") { $DB->Query("UPDATE b_form_field SET IN_FILTER='Y' WHERE ID='" . $FIELD_ID . "'", false, $err_mess . __LINE__); } } } return $FIELD_ID; } return false; }
$headers[] = array("id" => "IN_RESULTS_TABLE", "content" => GetMessage("FORM_IN_RESULTS_TABLE"), "sort" => "s_in_results_table", "default" => true); $headers[] = array("id" => "IN_EXCEL_TABLE", "content" => GetMessage("FORM_IN_EXCEL_TABLE"), "sort" => "s_in_excel_table", "default" => true); } $lAdmin->AddHeaders($headers); if ($additional == "Y") { $msg = GetMessage("FORM_EDIT_ALT"); } else { $msg = GetMessage("FORM_EDIT_ALT_Q"); } while ($arRes = $rsData->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arRes); if ($bSimple) { if ($arRes['ADDITIONAL'] == "Y") { $p_FIELD_TYPE = 'hidden'; } else { $rAnswer = CFormAnswer::GetList($f_ID, $a_by, $a_order, array(), $a_is_filtered); $rAnswer->ExtractFields("p_"); } $row->AddViewField("A_FIELD_TYPE", $p_FIELD_TYPE); } $row->AddCheckField("ACTIVE"); if ($arRes['ADDITIONAL'] != 'Y') { $row->AddCheckField("REQUIRED"); } else { $row->AddViewField('REQUIRED', ''); } $row->AddCheckField("IN_RESULTS_TABLE"); $row->AddCheckField("IN_EXCEL_TABLE"); $row->AddInputField("C_SORT"); $row->AddViewField("SID", "<a href=\"form_field_edit.php?lang=" . LANGUAGE_ID . "&ID=" . $f_ID . "&WEB_FORM_ID=" . $WEB_FORM_ID . "&additional=" . $additional . "\" title=\"" . $msg . "\">" . htmlspecialcharsbx($f_SID) . "</a>"); $arActions = array();
{ $bResults=true; reset($arCompat_desc); while($e=each($arCompat_desc)) { if (in_array($ftype,array_keys($e[1]))) { $arCompatList=array_keys($e[1]); // list of compatible fields break; } } } } $arTypes = CFormAnswer::GetTypeList(); reset($arTypes['reference']); while ($e=each($arTypes['reference'])) { if (!$ID || !$bResults || in_array($e[1],$arCompatList)) print "<option value='$e[1]'".($e[1]==$ftype?" selected=\"selected\"":"").">".$arTypeList_desc[$e[1]]." [".$e[1]."]</option>\n"; } ?> </select> </tr> <tr> <td valign="top"><?php echo GetMessage("FORM_ANSWER"); ?> </td> <td>
/** * <p>Для указанного <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результата</a> обновляет значения <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответа</a> на <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a> или обновляет значение <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a>.</p> * * * * * @param int $result_id ID <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результата</a>. * * * * @param string $field_sid Символьный идентификатор <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопроса</a> или <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a>. * * * * @param mixed $value = false Значение, которое необходимо сохранить. В зависимости от типа * обновляемого поля, данный параметр имеет различный формат. <ul> * <li>При обновлении значения <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a>, в данном параметре * достаточно указать новое значение обновляемого <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a>. </li> <li>При обновлении * значений <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответов</a> на <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a>, формат данного * параметра следующий: <pre>array ( <i>ID ответа 1</i> => <i>значение ответа * 1</i>, <i>ID ответа 2</i> => <i>значение ответа 2</i>, ... )</pre>Если <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответ</a> принадлежит к одним из * следующих типов: <ul> <li> <b>radio</b> - переключатель одиночного выбора * (radio-кнопка); </li> <li> <b>checkbox</b> - флаг множественного выбора (checkbox); </li> * <li> <b>dropdown</b> - элемент выпадающего списка одиночного выбора; </li> <li> * <b>multiselect</b> - элемент списка множественного выбора, </li> </ul>то в * качестве "<i>значения ответа</i>" достаточно указать "" (пустое * значение). <br><br>Если <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответ</a> * имеет один из следующих типов: <ul> <li> <b>text</b> - однострочное * текстовое поле; </li> <li> <b>textarea</b> - многострочное текстовое поле; </li> * <li> <b>date</b> - поле для ввода даты; </li> <li> <b>password</b> - поле для ввода * пароля, </li> </ul>то в качестве "<i>значения ответа</i>" необходимо * указать значение, которое могло бы быть введено с клавиатуры при * ответе на данный <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a>. * <br><br>Если <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответ</a> имеет один * из следующих типов: <ul> <li> <b>image</b> - поле для загрузки изображения; * </li> <li> <b>file</b> - поле для загрузки произвольного файла. </li> </ul>то в * качестве "<i>значения ответа</i>" необходимо указать массив, * описывающий файл и имеющий следующий ключи: <ul> <li> <b>name</b> - имя * файла; </li> <li> <b>size</b> - размер файла; </li> <li> <b>tmp_name</b> - временный путь * на сервере; </li> <li> <b>type</b> - тип загружаемого файла. </li> </ul>Такой * массив можно получить с помощью функции <a * href="http://dev.1c-bitrix.ru/api_help/main/reference/cfile/makefilearray.php">CFile::MakeFileArray</a>. </li> * </ul>Параметр <i>value</i> необязательный. По умолчанию - false (значение <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a> или значение <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответа</a> на <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a> будут просто * удалены). * * * * @return mixed * * * <h4>Example</h4> * <pre> * $RESULT_ID = 186; * * //<************************************************************* * Обновление значений ответов на вопросы * *************************************************************>// * * // обновим ответ на вопрос "Фамилия, имя, отчество" * $arVALUE = array(); * $FIELD_SID = "VS_NAME"; // символьный идентификатор вопроса * $ANSWER_ID = 586; // ID поля ответа * $arVALUE[$ANSWER_ID] = "Иванов Иван"; * <b>CFormResult::SetField</b>($RESULT_ID, $FIELD_SID, $arVALUE); * * // обновим ответ на вопрос "Дата рождения" * $arVALUE = array(); * $FIELD_SID = "VS_BIRTHDAY"; // символьный идентификатор вопроса * $ANSWER_ID = 587; // ID поля ответа * $arVALUE[$ANSWER_ID] = "18.06.1975"; * <b>CFormResult::SetField</b>($RESULT_ID, $FIELD_SID, $arVALUE); * * // обновим ответ на вопрос "Какие области знаний вас интересуют?" * $arVALUE = array(); * $FIELD_SID = "VS_INTEREST"; // символьный идентификатор вопроса * $arVALUE[612] = ""; // ID поля ответа "математика" * $arVALUE[613] = ""; // ID поля ответа "физика" * $arVALUE[614] = ""; // ID поля ответа "история" * <b>CFormResult::SetField</b>($RESULT_ID, $FIELD_SID, $arVALUE); * * // обновим ответ на вопрос "Фотография" * $arVALUE = array(); * $FIELD_SID = "VS_PHOTO"; // символьный идентификатор вопроса * $ANSWER_ID = 607; // ID поля ответа * $path = $_SERVER["DOCUMENT_ROOT"]."/images/news.gif"; // путь к файлу * $arVALUE[$ANSWER_ID] = CFile::MakeFileArray($path); * <b>CFormResult::SetField</b>($RESULT_ID, $FIELD_SID, $arVALUE); * * // обновим ответ на вопрос "Резюме" * $arVALUE = array(); * $FIELD_SID = "VS_RESUME"; // символьный идентификатор вопроса * $ANSWER_ID = 610; // ID поля ответа * $path = $_SERVER["DOCUMENT_ROOT"]."/docs/alawarauthorarea.doc"; // путь к файлу * $arVALUE[$ANSWER_ID] = CFile::MakeFileArray($path); * <b>CFormResult::SetField</b>($RESULT_ID, $FIELD_SID, $arVALUE); * * //<************************************************************* * Обновление значений полей * *************************************************************>// * * // обновим значение поля "Рассчитанная стоимость" * $FIELD_SID = "VS_PRICE"; // символьный идентификатор вопроса * $VALUE = "155"; * <b>CFormResult::SetField</b>($RESULT_ID, $FIELD_SID, $VALUE); * ?> * </pre> * * * * <h4>See Also</h4> * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/form/classes/cformresult/update.php">CFormResult::Update</a> </li> * <li><a href="http://dev.1c-bitrix.ru/api_help/main/reference/cfile/makefilearray.php">CFile::MakeFileArray</a></li> * </ul><a name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/form/classes/cformresult/setfield.php * @author Bitrix */ public static function SetField($RESULT_ID, $FIELD_SID, $VALUE=false) { global $DB, $strError; $err_mess = (CAllFormResult::err_mess())."<br>Function: SetField<br>Line: "; $RESULT_ID = intval($RESULT_ID); if (intval($RESULT_ID)>0) { $strSql = " SELECT FORM_ID FROM b_form_result WHERE ID = $RESULT_ID "; $z = $DB->Query($strSql, false, $err_mess.__LINE__); $zr = $z->Fetch(); $WEB_FORM_ID = $zr["FORM_ID"]; if (intval($WEB_FORM_ID)>0) { $strSql = " SELECT ID, FIELD_TYPE, ADDITIONAL FROM b_form_field WHERE FORM_ID = $WEB_FORM_ID and SID = '".$DB->ForSql($FIELD_SID,50)."' "; $q = $DB->Query($strSql, false, $err_mess.__LINE__); if ($arField = $q->Fetch()) { $FIELD_ID = $arField["ID"]; $IS_FIELD = ($arField["ADDITIONAL"]=="Y") ? true : false; if ($IS_FIELD) { $strSql = " DELETE FROM b_form_result_answer WHERE RESULT_ID = $RESULT_ID and FIELD_ID = $FIELD_ID "; //echo "<pre>".$strSql."</pre>"; $DB->Query($strSql, false, $err_mess.__LINE__); if (strlen($VALUE)>0) { $FIELD_TYPE = $arField["FIELD_TYPE"]; switch ($FIELD_TYPE) : case "text": case "integer": $arFields = array( "RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "USER_TEXT" => $VALUE, "USER_TEXT_SEARCH" => ToUpper($VALUE) ); CFormResult::AddAnswer($arFields); break; case "date": if (CheckDateTime($VALUE)) { $arFields = array( "RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "USER_DATE" => $VALUE, "USER_TEXT" => $VALUE, "USER_TEXT_SEARCH" => ToUpper($VALUE) ); CFormResult::AddAnswer($arFields); } break; endswitch; } } else { $strSql = " SELECT USER_FILE_ID FROM b_form_result_answer WHERE RESULT_ID = $RESULT_ID and FIELD_ID = $FIELD_ID and USER_FILE_ID>0 "; $rsFiles = $DB->Query($strSql, false, $err_mess.__LINE__); while ($arFile = $rsFiles->Fetch()) CFile::Delete($arFile["USER_FILE_ID"]); $strSql = " DELETE FROM b_form_result_answer WHERE RESULT_ID = $RESULT_ID and FIELD_ID = $FIELD_ID "; $DB->Query($strSql, false, $err_mess.__LINE__); if (is_array($VALUE) && count($VALUE)>0) { $arrANSWER_TEXT = array(); $arrANSWER_VALUE = array(); $arrUSER_TEXT = array(); foreach ($VALUE as $ANSWER_ID => $val) { $rsAnswer = CFormAnswer::GetByID($ANSWER_ID); if ($arAnswer = $rsAnswer->Fetch()) { switch ($arAnswer["FIELD_TYPE"]) : case "radio": case "dropdown": case "checkbox": case "multiselect": $arFields = array( "RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($arAnswer["MESSAGE"]), "ANSWER_VALUE" => $arAnswer["VALUE"], ); CFormResult::AddAnswer($arFields); $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]); $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]); break; case "text": case "textarea": case "password": case "email": case "url": case "hidden": $arFields = array( "RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($arAnswer["MESSAGE"]), "ANSWER_VALUE" => $arAnswer["VALUE"], "USER_TEXT" => $val, ); CFormResult::AddAnswer($arFields); $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]); $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]); $arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]); break; case "date": if (CheckDateTime($val)) { $arFields = array( "RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($arAnswer["MESSAGE"]), "ANSWER_VALUE" => $arAnswer["VALUE"], "USER_TEXT" => $val, "USER_DATE" => $val ); CFormResult::AddAnswer($arFields); $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]); $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]); $arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]); } break; case "image": $arIMAGE = $val; if (is_array($arIMAGE) && count($arIMAGE)>0) { $arIMAGE["MODULE_ID"] = "form"; if (strlen(CFile::CheckImageFile($arIMAGE))<=0) { if (!array_key_exists("MODULE_ID", $arIMAGE) || strlen($arIMAGE["MODULE_ID"]) <= 0) $arIMAGE["MODULE_ID"] = "form"; $fid = CFile::SaveFile($arIMAGE, "form"); if (intval($fid)>0) { $arFields = array( "RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($arAnswer["MESSAGE"]), "ANSWER_VALUE" => $arAnswer["VALUE"], "USER_FILE_ID" => $fid, "USER_FILE_IS_IMAGE" => "Y", "USER_FILE_NAME" => $arIMAGE["name"], "USER_FILE_SIZE" => $arIMAGE["size"], "USER_TEXT" => $arIMAGE["name"] ); CFormResult::AddAnswer($arFields); $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]); $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]); $arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]); } } } break; case "file": $arFILE = $val; if (is_array($arFILE) && count($arFILE)>0) { $arFILE["MODULE_ID"] = "form"; $original_name = $arFILE["name"]; $max_size = COption::GetOptionString("form", "MAX_FILESIZE"); $upload_dir = COption::GetOptionString("form", "NOT_IMAGE_UPLOAD_DIR"); $fid = CFile::SaveFile($arFILE, $upload_dir, $max_size); if (intval($fid)>0) { $arFields = array( "RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($arAnswer["MESSAGE"]), "ANSWER_VALUE" => $arAnswer["VALUE"], "USER_FILE_ID" => $fid, "USER_FILE_IS_IMAGE" => "N", "USER_FILE_NAME" => $original_name, "USER_FILE_HASH" => md5(uniqid(mt_rand(), true).time()), "USER_FILE_SIZE" => $arFILE["size"], "USER_FILE_SUFFIX" => $suffix, "USER_TEXT" => $original_name, ); CFormResult::AddAnswer($arFields); $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]); $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]); $arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]); } } break; endswitch; } } // update search fields $arrANSWER_TEXT_upd = $arrANSWER_TEXT[$FIELD_ID]; $arrANSWER_VALUE_upd = $arrANSWER_VALUE[$FIELD_ID]; $arrUSER_TEXT_upd = $arrUSER_TEXT[$FIELD_ID]; TrimArr($arrANSWER_TEXT_upd); TrimArr($arrANSWER_VALUE_upd); TrimArr($arrUSER_TEXT_upd); if (is_array($arrANSWER_TEXT_upd)) $vl_ANSWER_TEXT = trim(implode(" ",$arrANSWER_TEXT_upd)); if (is_array($arrANSWER_VALUE_upd)) $vl_ANSWER_VALUE = trim(implode(" ",$arrANSWER_VALUE_upd)); if (is_array($arrUSER_TEXT_upd)) $vl_USER_TEXT = trim(implode(" ",$arrUSER_TEXT_upd)); if (strlen($vl_ANSWER_TEXT)<=0) $vl_ANSWER_TEXT = false; if (strlen($vl_ANSWER_VALUE)<=0) $vl_ANSWER_VALUE = false; if (strlen($vl_USER_TEXT)<=0) $vl_USER_TEXT = false; $arFields = array( "ANSWER_TEXT_SEARCH" => $vl_ANSWER_TEXT, "ANSWER_VALUE_SEARCH" => $vl_ANSWER_VALUE, "USER_TEXT_SEARCH" => $vl_USER_TEXT ); CFormResult::UpdateField($arFields, $RESULT_ID, $FIELD_ID); } } return true; } } } return false; }
function GetAnswerTypeList() { return CFormAnswer::GetTypeList(); }
function Set($arFields, $ANSWER_ID = false) { $err_mess = CAllFormAnswer::err_mess() . "<br>Function: Set<br>Line: "; global $DB, $USER, $strError, $APPLICATION; $ANSWER_ID = intval($ANSWER_ID); if (CFormAnswer::CheckFields($arFields, $ANSWER_ID)) { $arFields_i = array(); $arFields_i["TIMESTAMP_X"] = $DB->GetNowFunction(); if (is_set($arFields, "MESSAGE")) { $arFields_i["MESSAGE"] = "'" . $DB->ForSql($arFields["MESSAGE"], 2000) . "'"; } if (is_set($arFields, "VALUE")) { $arFields_i["VALUE"] = "'" . $DB->ForSql($arFields["VALUE"], 2000) . "'"; } if (is_set($arFields, "ACTIVE")) { $arFields_i["ACTIVE"] = $arFields["ACTIVE"] == "Y" ? "'Y'" : "'N'"; } if (is_set($arFields, "C_SORT")) { $arFields_i["C_SORT"] = "'" . intval($arFields["C_SORT"]) . "'"; } if (is_set($arFields, "FIELD_TYPE")) { $arFields_i["FIELD_TYPE"] = "'" . $DB->ForSql($arFields["FIELD_TYPE"], 255) . "'"; } if (is_set($arFields, "FIELD_WIDTH")) { $arFields_i["FIELD_WIDTH"] = "'" . intval($arFields["FIELD_WIDTH"]) . "'"; } if (is_set($arFields, "FIELD_HEIGHT")) { $arFields_i["FIELD_HEIGHT"] = "'" . intval($arFields["FIELD_HEIGHT"]) . "'"; } if (is_set($arFields, "FIELD_PARAM")) { $arFields_i["FIELD_PARAM"] = "'" . $DB->ForSql($arFields["FIELD_PARAM"], 2000) . "'"; } if ($ANSWER_ID > 0) { $DB->Update("b_form_answer", $arFields_i, "WHERE ID='" . $ANSWER_ID . "'", $err_mess . __LINE__); // обновим все результаты для данного ответа $arFields_u = array(); $arFields_u["ANSWER_TEXT"] = $arFields_i["MESSAGE"]; $arFields_u["ANSWER_VALUE"] = $arFields_i["VALUE"]; if (intval($CURRENT_FIELD_ID) > 0) { $str = " FIELD_ID = " . intval($CURRENT_FIELD_ID) . " and "; } $DB->Update("b_form_result_answer", $arFields_u, "WHERE " . $str . " ANSWER_ID='" . $ANSWER_ID . "'", $err_mess . __LINE__); } else { if (intval($arFields["QUESTION_ID"]) > 0) { $arFields["FIELD_ID"] = $arFields["QUESTION_ID"]; } else { $arFields["QUESTION_ID"] = $arFields["FIELD_ID"]; } $arFields_i["FIELD_ID"] = "'" . intval($arFields["QUESTION_ID"]) . "'"; $ANSWER_ID = $DB->Insert("b_form_answer", $arFields_i, $err_mess . __LINE__); $ANSWER_ID = intval($ANSWER_ID); } return $ANSWER_ID; } return false; }
public static function GetAnswerTypeList() { return CFormAnswer::GetTypeList(); }