function UpdateResultField($arFields, $RESULT_ID, $FIELD_ID) { return CFormResult::UpdateField($arFields, $RESULT_ID, $FIELD_ID); }
/** * <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 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) { // получим ID веб-формы $strSql = "\r\n\t\t\t\tSELECT\r\n\t\t\t\t\tFORM_ID\r\n\t\t\t\tFROM\r\n\t\t\t\t\tb_form_result\r\n\t\t\t\tWHERE\r\n\t\t\t\t\tID = {$RESULT_ID}\r\n\t\t\t\t"; $z = $DB->Query($strSql, false, $err_mess . __LINE__); $zr = $z->Fetch(); $WEB_FORM_ID = $zr["FORM_ID"]; if (intval($WEB_FORM_ID) > 0) { // получим данные по вопросу/полю $strSql = "\r\n\t\t\t\t\tSELECT\r\n\t\t\t\t\t\tID,\r\n\t\t\t\t\t\tFIELD_TYPE,\r\n\t\t\t\t\t\tADDITIONAL\r\n\t\t\t\t\tFROM\r\n\t\t\t\t\t\tb_form_field\r\n\t\t\t\t\tWHERE\r\n\t\t\t\t\t\tFORM_ID = {$WEB_FORM_ID}\r\n\t\t\t\t\tand SID = '" . $DB->ForSql($FIELD_SID, 50) . "'\r\n\t\t\t\t\t"; $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 = "\r\n\t\t\t\t\t\t\tDELETE FROM\r\n\t\t\t\t\t\t\t\tb_form_result_answer\r\n\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\tRESULT_ID = {$RESULT_ID}\r\n\t\t\t\t\t\t\tand FIELD_ID = {$FIELD_ID}\r\n\t\t\t\t\t\t\t"; //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; } } } else { // выберем все файлы $strSql = "\r\n\t\t\t\t\t\t\tSELECT\r\n\t\t\t\t\t\t\t\tUSER_FILE_ID\r\n\t\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\t\t\tb_form_result_answer\r\n\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\tRESULT_ID = {$RESULT_ID}\r\n\t\t\t\t\t\t\tand FIELD_ID = {$FIELD_ID}\r\n\t\t\t\t\t\t\tand USER_FILE_ID>0\r\n\t\t\t\t\t\t\t"; $rsFiles = $DB->Query($strSql, false, $err_mess . __LINE__); while ($arFile = $rsFiles->Fetch()) { CFile::Delete($arFile["USER_FILE_ID"]); } // удалим все значения ответов по данному вопросу у данного результата $strSql = "\r\n\t\t\t\t\t\t\tDELETE FROM\r\n\t\t\t\t\t\t\t\tb_form_result_answer\r\n\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\tRESULT_ID = {$RESULT_ID}\r\n\t\t\t\t\t\t\tand FIELD_ID = {$FIELD_ID}\r\n\t\t\t\t\t\t\t"; $DB->Query($strSql, false, $err_mess . __LINE__); if (is_array($VALUE) && count($VALUE) > 0) { $arrANSWER_TEXT = array(); $arrANSWER_VALUE = array(); $arrUSER_TEXT = array(); while (list($ANSWER_ID, $value) = each($VALUE)) { $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": $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" => $value); 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($value)) { $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" => $value, "USER_DATE" => $value); 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 = $value; if (is_array($arIMAGE) && count($arIMAGE) > 0) { $arIMAGE["MODULE_ID"] = "form"; if (strlen(CFile::CheckImageFile($arIMAGE)) <= 0) { $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 = $value; if (is_array($arFILE) && count($arFILE) > 0) { $arFILE["MODULE_ID"] = "form"; $original_name = $arFILE["name"]; $max_size = COption::GetOptionString("form", "MAX_FILESIZE"); $suffix = COption::GetOptionString("form", "NOT_IMAGE_EXTENSION_SUFFIX"); $arFILE["name"] .= $suffix; $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; } } } // обновляем поля для поиска $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; }