/** @return \CDBResult */ public function getData() { $formId = $this->getFieldValue('FORM', null); $propertyNameId = $this->getFieldValue('PROPERTY_NAME', null); $propertyEmailId = $this->getFieldValue('PROPERTY_EMAIL', null); $formResultsDb = new \CDBResult(); if ($formId && $propertyEmailId) { $dataResult = array(); $filter = array(); $formResultDb = \CFormResult::GetList($formId, $by = "s_timestamp", $order = "asc", $filter, $filtered, "N"); while ($formResult = $formResultDb->Fetch()) { $answerList = \CFormResult::GetDataByID($formResult['ID'], array(), $formResult, $answerList2); $data = array(); foreach ($answerList as $fieldCode => $arFieldsAnswer) { if ($arFieldsAnswer[0]['TITLE_TYPE'] == 'text') { if ($arFieldsAnswer[0]['FIELD_ID'] == $propertyNameId) { $data['NAME'] = $arFieldsAnswer[0]['USER_TEXT']; } if ($arFieldsAnswer[0]['FIELD_ID'] == $propertyEmailId) { $data['EMAIL'] = $arFieldsAnswer[0]['USER_TEXT']; } } } if (!empty($data['EMAIL'])) { if (intval($formResult['USER_ID']) > 0) { $data['USER_ID'] = intval($formResult['USER_ID']); } $dataResult[] = $data; } } $formResultsDb->InitFromArray($dataResult); } return $formResultsDb; }
} } } } // если была нажата кнопка "—охранить изменени¤" if (strlen($save)>0 && $REQUEST_METHOD=="POST" && (check_freetrix_sessid() || defined("FORM_NOT_CHECK_SESSID"))) { // обновл¤ем записи if (isset($RESULT_ID) && is_array($RESULT_ID)) { foreach ($RESULT_ID as $rid) { $rid = intval($rid); $var_STATUS_PREV = "STATUS_PREV_".$rid; $var_STATUS = "STATUS_".$rid; if (intval($$var_STATUS)>0 && $$var_STATUS_PREV!=$$var_STATUS) { CFormResult::SetStatus($rid, $$var_STATUS); } } } } //echo "<pre>"; print_r($_REQUEST); echo "</pre>"; //echo "<pre>"; print_r($arFilter); echo "</pre>"; $result = CFormResult::GetList($WEB_FORM_ID, $by, $order, $arFilter, $is_filtered); $HELP_FILE_ACCESS = $APPLICATION->GetFileAccessPermission("/freetrix/modules/form/help/".LANGUAGE_ID."/index.php"); $MODULE_RIGHT = $APPLICATION->GetGroupRight("form"); $MAIN_RIGHT = $APPLICATION->GetGroupRight("main"); ?>
/** * <p>Создает новый <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результат</a> веб-формы. В случае успеха - возвращает ID нового <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результата</a>, в противном случае - "false".</p> <p><b>Примечание: </b>в случае неактивных вопросов данные из формы в них не сохраняются и сообщения об ошибках не выводятся.</p> * * * * * @param int $form_id ID веб-формы. * * * * @param array $values = false Массив со значениями <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответов</a>. Массив имеет * следующую структуру: <pre> array( "<i>имя HTML поля ответа 1</i>" => * "<i>значение ответа 1</i>", "<i>имя HTML поля ответа 2</i>" => "<i>значение * ответа 2</i>", ... "<i>имя HTML поля ответа N</i>" => "<i>значение ответа N</i>" ) * </pre> Правила формирования "<i>имен HTML полей ответов</i>" и "<i>значений * ответов</i>" описаны в разделе "<a * href="http://dev.1c-bitrix.ru/api_help/form/htmlnames.php">Имена HTML полей веб-форм</a>". * <h5>Пример:</h5> <pre> Array ( [form_text_586] => Иванов Иван Иванович [form_date_587] => * 10.03.1992 [form_textarea_588] => г. Мурманск [form_radio_VS_MARRIED] => 589 [form_checkbox_VS_INTEREST] * => Array ( [0] => 592 [1] => 593 [2] => 594 ) [form_dropdown_VS_AGE] => 597 * [form_multiselect_VS_EDUCATION] => Array ( [0] => 603 [1] => 604 ) [form_text_606] => 2345 [form_image_607] * => 1045 ) </pre> Параметр необязательный. По умолчанию - "false" (будет * взят стандартный массив $_REQUEST). * * * * @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#result">результата</a> * необходимо иметь право <b>[10] Заполнение веб-формы</b> на веб-форму * <i>form_id</i>.<br><br>Параметр необязательный. По умолчанию - "Y" (права * необходимо проверить). * * * * @param int $user_id = false ID пользователя, который будет записан как создатель данного <a * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результата</a>.<br><br> Параметр * необязательный. По умолчанию - "false" (будет взят ID текущего * пользователя). * * * * @return mixed * * * <h4>Example</h4> * <pre> * <? * // ID веб-формы * $FORM_ID = 4; * * // массив описывающий загруженную на сервер фотографию * $arImage = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/photo.gif"); * * // массив значений ответов * $arValues = array ( * "form_text_586" => "Иванов Иван", // "Фамилия, имя, отчество" * "form_date_587" => "01.06.1904", // "Дата рождения" * "form_textarea_588" => "г. Москва", // "Адрес" * "form_radio_VS_MARRIED" => 590, // "Женаты/замужем?" * "form_checkbox_VS_INTEREST" => array(612, 613), // "Увлечения" * "form_dropdown_VS_AGE" => 601, // "Возраст" * "form_multiselect_VS_EDUCATION" => array(602, 603), // "Образование" * "form_text_606" => 300, // "Доход" * "form_image_607" => $arImage // "Фотография" * ) * * // создадим новый результат * if ($RESULT_ID = <b>CFormResult::Add</b>($FORM_ID, $arValues)) * { * echo "Результат #".$RESULT_ID." успешно создан"; * } * else * { * global $strError; * echo $strError; * } * ?> * </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/form/classes/cformresult/setfield.php">CFormResult::SetField</a>; </li> * <li> <a * href="http://dev.1c-bitrix.ru/api_help/form/classes/cformresult/getdatabyidforhtml.php">CFormResult::GetDataByIDForHTML</a> * </li> </ul><a name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/form/classes/cformresult/add.php * @author Bitrix */ public static function Add($WEB_FORM_ID, $arrVALUES=false, $CHECK_RIGHTS="Y", $USER_ID=false) { $err_mess = (CAllFormResult::err_mess())."<br>Function: Add<br>Line: "; global $DB, $USER, $_REQUEST, $HTTP_POST_VARS, $HTTP_GET_VARS, $HTTP_POST_FILES, $strError, $APPLICATION; if ($arrVALUES===false) $arrVALUES = $_REQUEST; if ($CHECK_RIGHTS != "N") $CHECK_RIGHTS = "Y"; $WEB_FORM_ID = intval($WEB_FORM_ID); if ($WEB_FORM_ID>0) { $WEB_FORM_ID = intval($WEB_FORM_ID); // get form data $arForm = array(); $arQuestions = array(); $arAnswers = array(); $arDropDown = array(); $arMultiSelect = array(); $WEB_FORM_ID = CForm::GetDataByID($WEB_FORM_ID, $arForm, $arQuestions, $arAnswers, $arDropDown, $arMultiSelect); // if new form id is correct if ($WEB_FORM_ID>0) { // check result rights $F_RIGHT = CForm::GetPermission($WEB_FORM_ID); if (intval($F_RIGHT)>=10 || $CHECK_RIGHTS=="N") { if (intval($USER_ID)<=0) { $USER_AUTH = "N"; $USER_ID = intval($_SESSION["SESS_LAST_USER_ID"]); if (intval($USER->GetID())>0) { $USER_AUTH = "Y"; $USER_ID = intval($USER->GetID()); } } else $USER_AUTH = "Y"; // check result status $fname = "status_".$arForm["SID"]; $STATUS_ID = (intval($arrVALUES[$fname])<=0) ? CFormStatus::GetDefault($WEB_FORM_ID) : intval($arrVALUES[$fname]); if ($STATUS_ID <= 0) { $strError .= GetMessage("FORM_STATUS_NOT_DEFINED")."<br>"; } else { // status found if ($CHECK_RIGHTS != "N") { $arPerm = CFormStatus::GetPermissions($STATUS_ID); } if ($CHECK_RIGHTS == "N" || in_array("MOVE", $arPerm)) // has rights to a new status { // check restrictions if ($arForm["USE_RESTRICTIONS"] == "Y" && intval($USER_ID) > 0) { $arFilter = array("USER_ID" => $USER_ID); if (strlen($arForm["RESTRICT_STATUS"]) > 0) { $arStatus = explode(",", $arForm["RESTRICT_STATUS"]); $arFilter = array_merge($arFilter, array("STATUS_ID" => implode(" | ", $arStatus))); } if (intval($arForm["RESTRICT_USER"]) > 0) { $rsFormResult = CFormResult::GetList($WEB_FORM_ID, $by="s_timestamp", $order="desc", $arFilter, $is_filtered, "N", intval($arForm["RESTRICT_USER"])); $num = 0; while ($row = $rsFormResult->Fetch()) { if (++$num >= $arForm["RESTRICT_USER"]) { $strError .= GetMessage("FORM_RESTRICT_USER_ERROR")."<br />"; break; } } } if (strlen($strError) <= 0 && intval($arForm["RESTRICT_TIME"]) > 0) { $DC2 = time(); $DC1 = $DC2 - intval($arForm["RESTRICT_TIME"]); $arFilter = array_merge($arFilter, array( "TIME_CREATE_1" => ConvertTimeStamp($DC1, "FULL"), "TIME_CREATE_2" => ConvertTimeStamp($DC2, "FULL"), )); CTimeZone::Disable(); $rsFormResult = CFormResult::GetList($WEB_FORM_ID, $by="s_timestamp", $order="desc", $arFilter, $is_filtered, "N", 1); CTimeZone::Enable(); if ($rsFormResult->Fetch()) { $strError .= GetMessage("FORM_RESTRICT_TIME_ERROR")."<br>"; } } } if (strlen($strError) <= 0) { // save result $arFields = array( "TIMESTAMP_X" => $DB->GetNowFunction(), "DATE_CREATE" => $DB->GetNowFunction(), "STATUS_ID" => $STATUS_ID, "FORM_ID" => $WEB_FORM_ID, "USER_ID" => intval($USER_ID), "USER_AUTH" => "'".$USER_AUTH."'", "STAT_GUEST_ID" => intval($_SESSION["SESS_GUEST_ID"]), "STAT_SESSION_ID" => intval($_SESSION["SESS_SESSION_ID"]), "SENT_TO_CRM" => "'N'", // result can be sent only after adding ); $dbEvents = GetModuleEvents('form', 'onBeforeResultAdd'); while ($arEvent = $dbEvents->Fetch()) { ExecuteModuleEventEx($arEvent, array($WEB_FORM_ID, &$arFields, &$arrVALUES)); if ($ex = $APPLICATION->GetException()) $strError .= $ex->GetString().'<br />'; } if (strlen($strError) <= 0) $RESULT_ID = $DB->Insert("b_form_result", $arFields, $err_mess.__LINE__); } } else $strError .= GetMessage("FORM_ERROR_ACCESS_DENIED"); } $RESULT_ID = intval($RESULT_ID); // save successful if ($RESULT_ID>0) { $arrANSWER_TEXT = array(); $arrANSWER_VALUE = array(); $arrUSER_TEXT = array(); // process questions foreach ($arQuestions as $arQuestion) { $FIELD_ID = $arQuestion["ID"]; $FIELD_SID = $arQuestion["SID"]; $radio = "N"; $checkbox = "N"; $multiselect = "N"; $dropdown = "N"; if (is_array($arAnswers[$FIELD_SID])) { // process answers foreach ($arAnswers[$FIELD_SID] as $key => $arAnswer) { $ANSWER_ID = 0; $FIELD_TYPE = $arAnswer["FIELD_TYPE"]; $FIELD_PARAM = $arAnswer["FIELD_PARAM"]; switch ($FIELD_TYPE) : case "radio": case "dropdown": if (($radio=="N" && $FIELD_TYPE=="radio") || ($dropdown=="N" && $FIELD_TYPE=="dropdown")) { $fname = "form_".$FIELD_TYPE."_".$FIELD_SID; $ANSWER_ID = intval($arrVALUES[$fname]); if ($ANSWER_ID>0) { $z = CFormAnswer::GetByID($ANSWER_ID); if ($zr = $z->Fetch()) { $arFields = array( "RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($zr["MESSAGE"]), "ANSWER_VALUE" => $zr["VALUE"] ); $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]); $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]); CFormResult::AddAnswer($arFields); } if ($FIELD_TYPE=="radio") $radio = "Y"; if ($FIELD_TYPE=="dropdown") $dropdown = "Y"; } } break; case "checkbox": case "multiselect": if (($checkbox=="N" && $FIELD_TYPE=="checkbox") || ($multiselect=="N" && $FIELD_TYPE=="multiselect")) { $fname = "form_".$FIELD_TYPE."_".$FIELD_SID; if (is_array($arrVALUES[$fname]) && count($arrVALUES[$fname])>0) { foreach($arrVALUES[$fname] as $ANSWER_ID) { $ANSWER_ID = intval($ANSWER_ID); if ($ANSWER_ID>0) { $z = CFormAnswer::GetByID($ANSWER_ID); if ($zr = $z->Fetch()) { $arFields = array( "RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($zr["MESSAGE"]), "ANSWER_VALUE" => $zr["VALUE"] ); $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]); $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]); CFormResult::AddAnswer($arFields); } } } if ($FIELD_TYPE=="checkbox") $checkbox = "Y"; if ($FIELD_TYPE=="multiselect") $multiselect = "Y"; } } break; case "text": case "hidden": case "textarea": case "password": case "email": case "url": $fname = "form_".$FIELD_TYPE."_".$arAnswer["ID"]; $ANSWER_ID = intval($arAnswer["ID"]); $z = CFormAnswer::GetByID($ANSWER_ID); if ($zr = $z->Fetch()) { $arFields = array( "RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($zr["MESSAGE"]), "ANSWER_VALUE" => $zr["VALUE"], "USER_TEXT" => $arrVALUES[$fname] ); $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]); $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]); $arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]); CFormResult::AddAnswer($arFields); } break; case "date": $fname = "form_".$FIELD_TYPE."_".$arAnswer["ID"]; $ANSWER_ID = intval($arAnswer["ID"]); $USER_DATE = $arrVALUES[$fname]; if (CheckDateTime($USER_DATE)) { $z = CFormAnswer::GetByID($ANSWER_ID); if ($zr = $z->Fetch()) { $arFields = array( "RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($zr["MESSAGE"]), "ANSWER_VALUE" => $zr["VALUE"], "USER_DATE" => $USER_DATE, "USER_TEXT" => $USER_DATE ); $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]); $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]); $arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]); CFormResult::AddAnswer($arFields); } } break; case "image": $fname = "form_".$FIELD_TYPE."_".$arAnswer["ID"]; $ANSWER_ID = intval($arAnswer["ID"]); $arIMAGE = isset($arrVALUES[$fname]) ? $arrVALUES[$fname] : $HTTP_POST_FILES[$fname]; $arIMAGE["MODULE_ID"] = "form"; $fid = 0; if (strlen(CFile::CheckImageFile($arIMAGE))<=0) { if (strlen($arIMAGE["name"])>0) { $fid = CFile::SaveFile($arIMAGE, "form"); $fid = intval($fid); if ($fid>0) { $md5 = md5(uniqid(mt_rand(), true).time()); $z = CFormAnswer::GetByID($ANSWER_ID); if ($zr = $z->Fetch()) { $arFields = array( "RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($zr["MESSAGE"]), "ANSWER_VALUE" => $zr["VALUE"], "USER_TEXT" => $arIMAGE["name"], "USER_FILE_ID" => $fid, "USER_FILE_IS_IMAGE" => "Y", "USER_FILE_HASH" => $md5, "USER_FILE_NAME" => $arIMAGE["name"], "USER_FILE_SIZE" => $arIMAGE["size"], ); $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]); $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]); $arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]); CFormResult::AddAnswer($arFields); } } } } break; case "file": $fname = "form_".$FIELD_TYPE."_".$arAnswer["ID"]; $ANSWER_ID = intval($arAnswer["ID"]); $arFILE = isset($arrVALUES[$fname]) ? $arrVALUES[$fname] : $HTTP_POST_FILES[$fname]; $arFILE["MODULE_ID"] = "form"; if (strlen($arFILE["name"])>0) { $original_name = $arFILE["name"]; $fid = 0; $max_size = COption::GetOptionString("form", "MAX_FILESIZE"); $upload_dir = COption::GetOptionString("form", "NOT_IMAGE_UPLOAD_DIR"); $fid = CFile::SaveFile($arFILE, $upload_dir); $fid = intval($fid); if ($fid>0) { $md5 = md5(uniqid(mt_rand(), true).time()); $z = CFormAnswer::GetByID($ANSWER_ID); if ($zr = $z->Fetch()) { $arFields = array( "RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($zr["MESSAGE"]), "ANSWER_VALUE" => $zr["VALUE"], "USER_TEXT" => $original_name, "USER_FILE_ID" => $fid, "USER_FILE_NAME" => $original_name, "USER_FILE_IS_IMAGE" => "N", "USER_FILE_HASH" => $md5, "USER_FILE_SUFFIX" => $fes, "USER_FILE_SIZE" => $arFILE["size"], ); $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]); $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]); $arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]); CFormResult::AddAnswer($arFields); } } } 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); } } $dbEvents = GetModuleEvents('form', 'onAfterResultAdd'); while ($arEvent = $dbEvents->Fetch()) { ExecuteModuleEventEx($arEvent, array($WEB_FORM_ID, $RESULT_ID)); } // call change status handler CForm::ExecHandlerAfterChangeStatus($RESULT_ID, "ADD"); } } } } return intval($RESULT_ID)>0 ? intval($RESULT_ID) : false; }
} } foreach ($arParams['FORMS'] as $FORM_ID) { if (is_array($arResult['FORMS'][$FORM_ID])) { $arForm = $arResult['FORMS'][$FORM_ID]; } else { $dbRes = CForm::GetByID($FORM_ID); $arForm = $dbRes->GetNext(); } if ($arForm) { if ($arParams['LIST_URL']) { $arForm['__LINK'] = str_replace('#FORM_ID#', $FORM_ID, $arParams['LIST_URL']); } $arResult['FORMS'][$FORM_ID] = $arForm; $arResult['RESULTS'][$FORM_ID] = array(); $dbRes = CFormResult::GetList($FORM_ID, $by = 's_timestamp', $order = 'desc', array('USER_ID' => $USER->GetID()), $is_filtered, 'Y', $arParams['NUM_RESULTS']); $bFirst = true; while ($arRes = $dbRes->GetNext()) { //if ($FORM_ID == 6) print_r($arRes); if ($bFirst) { $arResult['FORMS'][$FORM_ID]['__LAST_TS'] = MakeTimeStamp($arRes['TIMESTAMP_X']); $bFirst = false; } $arValues = CFormResult::GetDataByID($arRes['ID'], array(), $arRes1 = null, $arAnswers = null); //if ($FORM_ID == 6) print_r($arValues); reset($arValues); list(, $first_res) = each($arValues); $arRes['__TITLE'] = trim($first_res[0]['USER_TEXT'] ? $first_res[0]['USER_TEXT'] : $first_res[0]['MESSAGE']); $arRes['__RIGHTS'] = CFormResult::GetPermissions($arRes['ID'], $status); if ($arParams['EDIT_URL'] && in_array('EDIT', $arRes['__RIGHTS'])) { $arRes['__LINK'] = str_replace(array('#FORM_ID#', '#RESULT_ID#'), array($FORM_ID, $arRes['ID']), $arParams['EDIT_URL']);
foreach ($RESULT_ID as $rid) { $rid = intval($rid); $var_STATUS_PREV = "STATUS_PREV_" . $rid; $var_STATUS = "STATUS_" . $rid; if (intval($_REQUEST[$var_STATUS]) > 0 && $_REQUEST[$var_STATUS_PREV] != $_REQUEST[$var_STATUS]) { CFormResult::SetStatus($rid, $_REQUEST[$var_STATUS]); // rights and status check inside } } } } // get results list $arParams["by"] = $_REQUEST["by"]; $arParams["order"] = $_REQUEST["order"]; $arResult["is_filtered"] = false; $rsResults = CFormResult::GetList($arParams["WEB_FORM_ID"], $arParams["by"], $arParams["order"], $arFilter, $arResult["is_filtered"]); $arResult["res_counter"] = 0; $arParams["can_delete_some"] = false; $arResult["arRID"] = array(); $arResults = array(); while ($arR = $rsResults->Fetch()) { $arResult["res_counter"]++; $arResults[] = $arR; $arResult["arRID"][] = $arR["ID"]; // array of IDs of all results if (!$arParams["can_delete_some"]) { if ($arParams["F_RIGHT"] >= 20 || $arParams["F_RIGHT"] >= 15 && $arParams["USER_ID"] == $arR["USER_ID"]) { $arrRESULT_PERMISSION = CFormResult::GetPermissions($arR["ID"], $v); if (in_array("DELETE", $arrRESULT_PERMISSION)) { $arParams["can_delete_some"] = true; }
function GetResultList($WEB_FORM_ID, &$by, &$order, $arFilter = array(), &$is_filtered, $CHECK_RIGHTS = "Y", $records_limit = false) { return CFormResult::GetList($WEB_FORM_ID, $by, $order, $arFilter, $is_filtered, $CHECK_RIGHTS, $records_limit); }
public static function getFormResults($form_id, $arOrder, $selectAnswerFields, $arFilter, $use_cache = true) { $param_string = serialize(func_get_args()); if (!is_array($arOrder) || !count($arOrder)) { $arOrder = array('ID' => 'ASC'); } $by = key($arOrder); $order = current($arOrder); $is_filtered = true; if ($use_cache) { $result = static::getCache(__FUNCTION__ . $param_string . '_form_result'); } if (!is_array($result['RESULT'])) { \CModule::IncludeModule('form'); $dbResult = \CFormResult::GetList($form_id, $by, $order, $arFilter, $is_filtered); static::setCache(__FUNCTION__ . $param_string . '_section', $result['RESULT']); while ($next = $dbResult->GetNext()) { \CFormResult::GetDataByID($next['ID'], $selectAnswerFields, $arResultFields, $arAnswers); $next = array_merge($next, $arResultFields); $next['ANSWERS'] = $arAnswers; $result['RESULT'][] = $next; } static::setCache(__FUNCTION__ . $param_string . '_form_result', $result['RESULT']); } return $result; }