コード例 #1
1
 /** @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;
 }
コード例 #2
0
ファイル: Form.php プロジェクト: Neokortex/BitrixHelper
 public function resultsById($RESULT_ID)
 {
     $data = \CFormResult::GetDataByID($RESULT_ID);
     $result = array();
     foreach ($data as $d) {
         $result[$d[0]['FIELD_ID']] = $d[0]['USER_TEXT'];
     }
     return $result;
 }
コード例 #3
0
ファイル: form_callformcrm.php プロジェクト: ASDAFF/open_bx
	public static function AddLead($FORM_ID, $RESULT_ID, $arLink = null)
	{
		$FORM_ID = intval($FORM_ID);
		$RESULT_ID = intval($RESULT_ID);

		if ($FORM_ID <= 0 || $RESULT_ID <= 0)
			return false;

		if (!is_array($arLink))
		{
			$dbRes = CFormCrm::GetByFormID($FORM_ID);
			$arLink = $dbRes->Fetch();
		}

		if (!$arLink)
			return false;

		$arResultFields = array();
		$arAnswers = array();

		CFormResult::GetDataByID($RESULT_ID, array(), $arResultFields, $arAnswers);

		$ob = new CFormCrmSender($arLink['CRM_ID']);
		$arCrmF = $ob->GetFields();
		$arCrmFields = array();
		foreach ($arCrmF as $ar)
			$arCrmFields[$ar['ID']] = $ar;

		$arLeadFields = array();
		$dbRes = CFormCrm::GetFields($arLink['ID']);
		while ($arRes = $dbRes->Fetch())
		{
			if (intval($arRes['FIELD_ID']) > 0)
			{
				$bFound = false;
				foreach ($arAnswers as $sid => $arAnswer)
				{
					foreach ($arAnswer as $answer_id => $arAns)
					{
						if ($arAns['FIELD_ID'] == $arRes['FIELD_ID'])
						{
							$bFound = true;
							if ($arCrmFields[$arRes['CRM_FIELD']])
							{
								switch ($arCrmFields[$arRes['CRM_FIELD']]['TYPE'])
								{
									case 'enum':
									{
										if ($arAns['FIELD_TYPE'] == 'dropdown' || $arAns['FIELD_TYPE'] == 'checkbox' || $arAns['FIELD_TYPE'] == 'radio' || $arAns['FIELD_TYPE'] == 'multiselect')
										{
											$arLeadFields[$arRes['CRM_FIELD']] = $arAns['VALUE'];
										}
										else
										{
											$arLeadFields[$arRes['CRM_FIELD']] = $arAns['ANSWER_TEXT'];
										}
									}
									break;
									case 'boolean':
										$arLeadFields[$arRes['CRM_FIELD']] = 'Y';
									break;
									default:
										$arLeadFields[$arRes['CRM_FIELD']] = (strlen($arAns['USER_TEXT']) > 0
											? $arAns['USER_TEXT']
											: (
												strlen($arAns['ANSWER_TEXT']) > 0
												? $arAns['ANSWER_TEXT']
												: $arAns['VALUE']
											)
										);
								}
							}
						}
					}
				}

				if (!$bFound && $arCrmFields[$arRes['CRM_FIELD']] && $arCrmFields[$arRes['CRM_FIELD']]['TYPE'] == 'boolean')
				{
					$arLeadFields[$arRes['CRM_FIELD']] = 'N';
				}
			}
			elseif (strlen($arRes['FIELD_ALT']) > 0)
			{
				switch($arRes['FIELD_ALT'])
				{
					case 'RESULT_ID':
						$arLeadFields[$arRes['CRM_FIELD']] = $arResultFields['ID'];
					break;
					case 'FORM_SID':
						$arLeadFields[$arRes['CRM_FIELD']] = $arResultFields['SID'];
					break;
					case 'FORM_NAME':
						$arLeadFields[$arRes['CRM_FIELD']] = $arResultFields['NAME'];
					break;
					case 'SITE_ID':
						$arLeadFields[$arRes['CRM_FIELD']] = SITE_ID;
					break;
					case 'FORM_ALL':
						$arLeadFields[$arRes['CRM_FIELD']] = self::_getAllFormFields($FORM_ID, $RESULT_ID, $arAnswers);
					break;
					case 'FORM_ALL_HTML':
						$arLeadFields[$arRes['CRM_FIELD']] = self::_getAllFormFieldsHTML($FORM_ID, $RESULT_ID, $arAnswers);
					break;
				}
			}
		}

		$result = $ob->AddLead($arLeadFields);
		if ($result->code() != 201)
		{
			$GLOBALS['APPLICATION']->ThrowException($result->error(), $result->code());
			return false;
		}
		else
		{
			CFormResult::SetCRMFlag($RESULT_ID, 'Y');
			return $result->field('ID');
		}
	}
コード例 #4
0
	/**
	 * <p>Создает почтовое событие для отсылки данных <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результата</a> по e-mail. Возвращает "true" в случае успеха, в противном случае - "false".</p>
	 *
	 *
	 *
	 *
	 * @param int $result_id  ID <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результата</a>.
	 *
	 *
	 *
	 * @param mixed $template_id = false ID почтового шаблона.<br><br> Параметр необязательный. По умолчанию -
	 * "false" (будут использованы почтовые шаблоны из настроек
	 * соответствующей веб-формы).
	 *
	 *
	 *
	 * @return bool 
	 *
	 *
	 * <h4>Example</h4> 
	 * <pre>
	 * &lt;?
	 * $RESULT_ID = 189; // ID результата
	 * 
	 * // создадим почтовое событие для отсылки по EMail данных результата
	 * if (<b>CFormResult::Mail</b>($RESULT_ID))
	 * {
	 *     echo "Почтовое событие успешно создано.";
	 * }
	 * else // ошибка
	 * {
	 *     global $strError;
	 *     echo $strError;
	 * }
	 * ?&gt;
	 * </pre>
	 *
	 *
	 * @static
	 * @link http://dev.1c-bitrix.ru/api_help/form/classes/cformresult/mail.php
	 * @author Bitrix
	 */
	public static function Mail($RESULT_ID, $TEMPLATE_ID = false)
	{
		global $APPLICATION, $DB, $MESS, $strError;

		$err_mess = (CAllFormResult::err_mess())."<br>Function: Mail<br>Line: ";
		$RESULT_ID = intval($RESULT_ID);

		CTimeZone::Disable();
		$arrResult = CFormResult::GetDataByID($RESULT_ID, array(), $arrRES, $arrANSWER);
		CTimeZone::Enable();
		if ($arrResult)
		{
			$z = CForm::GetByID($arrRES["FORM_ID"]);
			if ($arrFORM = $z->Fetch())
			{
				$TEMPLATE_ID = intval($TEMPLATE_ID);

				$arrFormSites = CForm::GetSiteArray($arrRES["FORM_ID"]);
				$arrFormSites = (is_array($arrFormSites)) ? $arrFormSites : array();

				if (!defined('SITE_ID') || !in_array(SITE_ID, $arrFormSites))
					return true;

				$rs = CSite::GetList(($by="sort"), ($order="asc"), array('ID' => implode('|', $arrFormSites)));
				$arrSites = array();
				while ($ar = $rs->Fetch())
				{
					if ($ar["DEF"]=="Y") $def_site_id = $ar["ID"];
					$arrSites[$ar["ID"]] = $ar;
				}

				$arrFormTemplates = CForm::GetMailTemplateArray($arrRES["FORM_ID"]);
				$arrFormTemplates = (is_array($arrFormTemplates)) ? $arrFormTemplates : array();

				$arrTemplates = array();
				$rs = CEventMessage::GetList($by="id", $order="asc", array(
					"ACTIVE"		=> "Y",
					"SITE_ID"		=> SITE_ID,
					"EVENT_NAME"	=> $arrFORM["MAIL_EVENT_TYPE"]
					));

				while ($ar = $rs->Fetch())
				{
					if ($TEMPLATE_ID>0)
					{
						if ($TEMPLATE_ID == $ar["ID"])
						{
							$arrTemplates[$ar["ID"]] = $ar;
							break;
						}
					}
					elseif (in_array($ar["ID"],$arrFormTemplates)) $arrTemplates[$ar["ID"]] = $ar;
				}

				foreach($arrTemplates as $arrTemplate)
				{

					$OLD_MESS = $MESS;
					$MESS = array();
					IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/form/admin/form_mail.php", $arrSites[$arrTemplate["SITE_ID"]]["LANGUAGE_ID"]);

					$USER_AUTH = " ";
					if (intval($arrRES["USER_ID"])>0)
					{
						$w = CUser::GetByID($arrRES["USER_ID"]);
						$arrUSER = $w->Fetch();
						$USER_ID = $arrUSER["ID"];
						$USER_EMAIL = $arrUSER["EMAIL"];
						$USER_NAME = $arrUSER["NAME"]." ".$arrUSER["LAST_NAME"];
						if ($arrRES["USER_AUTH"]!="Y") $USER_AUTH="(".GetMessage("FORM_NOT_AUTHORIZED").")";
					}
					else
					{
						$USER_ID = GetMessage("FORM_NOT_REGISTERED");
						$USER_NAME = "";
						$USER_AUTH = "";
						$USER_EMAIL = "";
					}

					$arEventFields = array(
						"RS_FORM_ID"			=> $arrFORM["ID"],
						"RS_FORM_NAME"			=> $arrFORM["NAME"],
						"RS_FORM_VARNAME"		=> $arrFORM["SID"],
						"RS_FORM_SID"			=> $arrFORM["SID"],
						"RS_RESULT_ID"			=> $arrRES["ID"],
						"RS_DATE_CREATE"		=> $arrRES["DATE_CREATE"],
						"RS_USER_ID"			=> $USER_ID,
						"RS_USER_EMAIL"			=> $USER_EMAIL,
						"RS_USER_NAME"			=> $USER_NAME,
						"RS_USER_AUTH"			=> $USER_AUTH,
						"RS_STAT_GUEST_ID"		=> $arrRES["STAT_GUEST_ID"],
						"RS_STAT_SESSION_ID"	=> $arrRES["STAT_SESSION_ID"]
						);
					$w = CFormField::GetList($arrFORM["ID"], "ALL", $by, $order, array(), $is_filtered);
					while ($wr=$w->Fetch())
					{
						$answer = "";
						$answer_raw = '';
						if (is_array($arrResult[$wr["SID"]]))
						{
							//echo '<pre>'; print_r($wr); echo '</pre>';
							//echo '<pre>'; print_r($arrResult[$wr['SID']]);

							$bHasDiffTypes = false;
							$lastType = '';
							foreach ($arrResult[$wr['SID']] as $arrA)
							{
								if ($lastType == '') $lastType = $arrA['FIELD_TYPE'];
								elseif ($arrA['FIELD_TYPE'] != $lastType)
								{
									$bHasDiffTypes = true;
									break;
								}
							}

							foreach($arrResult[$wr["SID"]] as $arrA)
							{
								if ($wr['ADDITIONAL'] == 'Y')
									$arrA['FIELD_TYPE'] = $wr['FIELD_TYPE'];

								$USER_TEXT_EXIST = (strlen(trim($arrA["USER_TEXT"]))>0);
								$ANSWER_TEXT_EXIST = (strlen(trim($arrA["ANSWER_TEXT"]))>0);
								$ANSWER_VALUE_EXIST = (strlen(trim($arrA["ANSWER_VALUE"]))>0);
								$USER_FILE_EXIST = (intval($arrA["USER_FILE_ID"])>0);

								//echo 'USER_TEXT_EXIST '.$USER_TEXT_EXIST.' '.$USER_TEXT.'<br />';
								//echo 'ANSWER_TEXT_EXIST '.$ANSWER_TEXT_EXIST.' '.$ANSWER_TEXT.'<br />';
								//echo 'ANSWER_VALUE_EXIST '.$ANSWER_VALUE_EXIST.' '.$ANSWER_VALUE.'<br />';
								//echo 'USER_FILE_EXIST '.$USER_FILE_EXIST.' '.$USER_FILE.'<br />';

								if ($arrTemplate["BODY_TYPE"]=="html")
								{
									if (
										$bHasDiffTypes
										&&
										!$USER_TEXT_EXIST
										&&
										(
											$arrA['FIELD_TYPE'] == 'text'
											||
											$arrA['FIELD_TYPE'] == 'textarea'
										)
									)
										continue;

									if (strlen(trim($answer))>0) $answer .= "<br />";
									if (strlen(trim($answer_raw))>0) $answer_raw .= ",";

									if ($ANSWER_TEXT_EXIST)
										$answer .= $arrA["ANSWER_TEXT"].': ';

									switch ($arrA['FIELD_TYPE'])
									{
										case 'text':
										case 'textarea':
										case 'hidden':
										case 'date':
										case 'password':
										case 'integer':

											if ($USER_TEXT_EXIST)
											{
												$answer .= trim($arrA["USER_TEXT"]);
												$answer_raw .= trim($arrA["USER_TEXT"]);
											}

										break;

										case 'email':
										case 'url':

											if ($USER_TEXT_EXIST)
											{
												$answer .= '<a href="'.($arrA['FIELD_TYPE'] == 'email' ? 'mailto:' : '').trim($arrA["USER_TEXT"]).'">'.trim($arrA["USER_TEXT"]).'</a>';
												$answer_raw .= trim($arrA["USER_TEXT"]);
											}

										break;

										case 'checkbox':
										case 'multiselect':
										case 'radio':
										case 'dropdown':

											if ($ANSWER_TEXT_EXIST)
											{
												$answer = substr($answer, 0, -2).' ';
												$answer_raw .= $arrA['ANSWER_TEXT'];
											}

											if ($ANSWER_VALUE_EXIST)
											{
												$answer .= '('.$arrA['ANSWER_VALUE'].') ';
												if (!$ANSWER_TEXT_EXIST)
													$answer_raw .= $arrA['ANSWER_VALUE'];
											}

											if (!$ANSWER_VALUE_EXIST && !$ANSWER_TEXT_EXIST)
												$answer_raw .= $arrA['ANSWER_ID'];

											$answer .= '['.$arrA['ANSWER_ID'].']';

										break;

										case 'file':
										case 'image':

											if ($USER_FILE_EXIST)
											{
												$f = CFile::GetByID($arrA["USER_FILE_ID"]);
												if ($fr = $f->Fetch())
												{
													$file_size = CFile::FormatSize($fr["FILE_SIZE"]);
													$url = ($APPLICATION->IsHTTPS() ? "https://" : "http://").$_SERVER["HTTP_HOST"]. "/bitrix/tools/form_show_file.php?rid=".$RESULT_ID. "&hash=".$arrA["USER_FILE_HASH"]."&lang=".LANGUAGE_ID;

													if ($arrA["USER_FILE_IS_IMAGE"]=="Y")
													{
														$answer .= "<a href=\"$url\">".$arrA["USER_FILE_NAME"]."</a> [".$fr["WIDTH"]." x ".$fr["HEIGHT"]."] (".$file_size.")";
													}
													else
													{
														$answer .= "<a href=\"$url&action=download\">".$arrA["USER_FILE_NAME"]."</a> (".$file_size.")";
													}

													$answer_raw .= $arrA['USER_FILE_NAME'];
												}
											}

										break;
									}
								}
								else
								{
									//echo $bHasDiffTypes.'*'.$USER_TEXT_EXIST.'<br />';

									if (
										$bHasDiffTypes
										&&
										!$USER_TEXT_EXIST
										&&
										(
											$arrA['FIELD_TYPE'] == 'text'
											||
											$arrA['FIELD_TYPE'] == 'textarea'
										)
									)
										continue;

									if (strlen(trim($answer)) > 0) $answer .= "\n";
									if (strlen(trim($answer_raw)) > 0) $answer_raw .= ",";

									if ($ANSWER_TEXT_EXIST)
										$answer .= $arrA["ANSWER_TEXT"].': ';

									switch ($arrA['FIELD_TYPE'])
									{
										case 'text':
										case 'textarea':
										case 'email':
										case 'url':
										case 'hidden':
										case 'date':
										case 'password':
										case 'integer':

											if ($USER_TEXT_EXIST)
											{
												$answer .= trim($arrA["USER_TEXT"]);
												$answer_raw .= trim($arrA["USER_TEXT"]);
											}

										break;

										case 'checkbox':
										case 'multiselect':
										case 'radio':
										case 'dropdown':

											if ($ANSWER_TEXT_EXIST)
											{
												$answer = substr($answer, 0, -2).' ';
												$answer_raw .= $arrA['ANSWER_TEXT'];
											}

											if ($ANSWER_VALUE_EXIST)
											{
												$answer .= '('.$arrA['ANSWER_VALUE'].') ';
												if (!$ANSWER_TEXT_EXIST)
												{
													$answer_raw .= $arrA['ANSWER_VALUE'];
												}
											}

											if (!$ANSWER_VALUE_EXIST && !$ANSWER_TEXT_EXIST)
											{
												$answer_raw .= $arrA['ANSWER_ID'];
											}

											$answer .= '['.$arrA['ANSWER_ID'].']';

										break;

										case 'file':
										case 'image':

											if ($USER_FILE_EXIST)
											{
												$f = CFile::GetByID($arrA["USER_FILE_ID"]);
												if ($fr = $f->Fetch())
												{
													$file_size = CFile::FormatSize($fr["FILE_SIZE"]);
													$url = ($APPLICATION->IsHTTPS() ? "https://" : "http://").$_SERVER["HTTP_HOST"]. "/bitrix/tools/form_show_file.php?rid=".$RESULT_ID. "&hash=".$arrA["USER_FILE_HASH"]."&action=download&lang=".LANGUAGE_ID;

													if ($arrA["USER_FILE_IS_IMAGE"]=="Y")
													{
														$answer .= $arrA["USER_FILE_NAME"]." [".$fr["WIDTH"]." x ".$fr["HEIGHT"]."] (".$file_size.")\n".$url;
													}
													else
													{
														$answer .= $arrA["USER_FILE_NAME"]." (".$file_size.")\n".$url."&action=download";
													}
												}

												$answer_raw .= $arrA['USER_FILE_NAME'];
											}

										break;
									}
								}
							}
						}

						$arEventFields[$wr["SID"]] = (strlen($answer)<=0) ? " " : $answer;
						$arEventFields[$wr["SID"].'_RAW'] = (strlen($answer_raw)<=0) ? " " : $answer_raw;
					}

					CEvent::Send($arrTemplate["EVENT_NAME"], $arrTemplate["SITE_ID"], $arEventFields, "Y", $arrTemplate["ID"]);
					$MESS = $OLD_MESS;
				} //foreach($arrTemplates as $arrTemplate)
				return true;
			}
			else $strError .= GetMessage("FORM_ERROR_FORM_NOT_FOUND")."<br>";
		}
		else $strError .= GetMessage("FORM_ERROR_RESULT_NOT_FOUND")."<br>";
		return false;
	}
コード例 #5
0
 }
 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']);
         } elseif ($arParams['VIEW_URL']) {
             $arRes['__LINK'] = str_replace(array('#FORM_ID#', '#RESULT_ID#'), array($FORM_ID, $arRes['ID']), $arParams['VIEW_URL']);
         }
         $arResult['RESULTS'][$FORM_ID][] = $arRes;
     }
 }
 if (!is_array($arResult['RESULTS'][$FORM_ID]) || count($arResult['RESULTS'][$FORM_ID]) <= 0) {
     unset($arResult['FORMS'][$FORM_ID]);
コード例 #6
0
 function GetResultFields($RESULT_ID, $arrFIELD_VARNAME, &$arrRES, &$arrANSWER)
 {
     return CFormResult::GetDataByID($RESULT_ID, $arrFIELD_VARNAME, $arrRES, $arrANSWER);
 }
コード例 #7
0
ファイル: BXHelper.php プロジェクト: firestorm23/bxhelper
 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;
 }
コード例 #8
0
 function Mail($RESULT_ID, $TEMPLATE_ID = false)
 {
     global $DB, $MESS, $strError;
     $err_mess = CAllFormResult::err_mess() . "<br>Function: Mail<br>Line: ";
     $RESULT_ID = intval($RESULT_ID);
     if ($arrResult = CFormResult::GetDataByID($RESULT_ID, array(), $arrRES, $arrANSWER)) {
         $z = CForm::GetByID($arrRES["FORM_ID"]);
         if ($arrFORM = $z->Fetch()) {
             $TEMPLATE_ID = intval($TEMPLATE_ID);
             $rs = CSite::GetList($by = "sort", $order = "asc");
             while ($ar = $rs->Fetch()) {
                 $arrSites[$ar["ID"]] = $ar;
             }
             $arrFormSites = CForm::GetSiteArray($arrRES["FORM_ID"]);
             $arrFormSites = is_array($arrFormSites) ? $arrFormSites : array();
             $arrFormTemplates = CForm::GetMailTemplateArray($arrRES["FORM_ID"]);
             $arrFormTemplates = is_array($arrFormTemplates) ? $arrFormTemplates : array();
             $arrTemplates = array();
             $rs = CEventMessage::GetList($by = "id", $order = "asc", array("ACTIVE" => "Y", "SITE_ID" => $arrFormSites, "EVENT_NAME" => $arrFORM["MAIL_EVENT_TYPE"]));
             while ($ar = $rs->Fetch()) {
                 if ($TEMPLATE_ID > 0) {
                     if ($TEMPLATE_ID == $ar["ID"]) {
                         $arrTemplates[$ar["ID"]] = $ar;
                         break;
                     }
                 } elseif (in_array($ar["ID"], $arrFormTemplates)) {
                     $arrTemplates[$ar["ID"]] = $ar;
                 }
             }
             foreach ($arrTemplates as $arrTemplate) {
                 $OLD_MESS = $MESS;
                 $MESS = array();
                 IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/form/form_mail.php", $arrSites[$arrTemplate["SITE_ID"]]["LANGUAGE_ID"]);
                 $USER_AUTH = " ";
                 if (intval($arrRES["USER_ID"]) > 0) {
                     $w = CUser::GetByID($arrRES["USER_ID"]);
                     $arrUSER = $w->Fetch();
                     $USER_ID = $arrUSER["ID"];
                     $USER_EMAIL = $arrUSER["EMAIL"];
                     $USER_NAME = $arrUSER["NAME"] . " " . $arrUSER["LAST_NAME"];
                     if ($arrRES["USER_AUTH"] != "Y") {
                         $USER_AUTH = "(" . GetMessage("FORM_NOT_AUTHORIZED") . ")";
                     }
                 } else {
                     $USER_ID = GetMessage("FORM_NOT_REGISTERED");
                     $USER_NAME = "";
                     $USER_AUTH = "";
                     $USER_EMAIL = "";
                 }
                 $arEventFields = array("RS_FORM_ID" => $arrFORM["ID"], "RS_FORM_NAME" => $arrFORM["NAME"], "RS_FORM_VARNAME" => $arrFORM["SID"], "RS_FORM_SID" => $arrFORM["SID"], "RS_RESULT_ID" => $arrRES["ID"], "RS_DATE_CREATE" => $arrRES["DATE_CREATE"], "RS_USER_ID" => $USER_ID, "RS_USER_EMAIL" => $USER_EMAIL, "RS_USER_NAME" => $USER_NAME, "RS_USER_AUTH" => $USER_AUTH, "RS_STAT_GUEST_ID" => $arrRES["STAT_GUEST_ID"], "RS_STAT_SESSION_ID" => $arrRES["STAT_SESSION_ID"]);
                 $w = CFormField::GetList($arrFORM["ID"], "ALL", $by, $order, array(), $is_filtered);
                 while ($wr = $w->Fetch()) {
                     $answer = "";
                     if (is_array($arrResult[$wr["SID"]])) {
                         foreach ($arrResult[$wr["SID"]] as $arrA) {
                             $USER_TEXT_EXIST = strlen(trim($arrA["USER_TEXT"])) > 0;
                             $ANSWER_TEXT_EXIST = strlen(trim($arrA["ANSWER_TEXT"])) > 0;
                             $ANSWER_VALUE_EXIST = strlen(trim($arrA["ANSWER_VALUE"])) > 0;
                             $USER_FILE_EXIST = intval($arrA["USER_FILE_ID"]) > 0;
                             if ($arrTemplate["BODY_TYPE"] == "html") {
                                 if (strlen(trim($answer)) > 0) {
                                     $answer .= "<br>";
                                 }
                                 if ($USER_TEXT_EXIST) {
                                     $answer .= $arrA["USER_TEXT"];
                                     if ($ANSWER_TEXT_EXIST || $ANSWER_VALUE_EXIST || $USER_FILE_EXIST) {
                                         $answer .= " ";
                                     }
                                 }
                                 if ($ANSWER_TEXT_EXIST) {
                                     $answer .= $arrA["ANSWER_TEXT"];
                                     if ($ANSWER_VALUE_EXIST || $USER_FILE_EXIST) {
                                         $answer .= " ";
                                     }
                                 }
                                 if ($ANSWER_VALUE_EXIST) {
                                     $answer .= $arrA["ANSWER_VALUE"];
                                     if ($USER_FILE_EXIST) {
                                         $answer .= " ";
                                     }
                                 }
                                 if ($USER_FILE_EXIST) {
                                     $f = CFile::GetByID($arrA["USER_FILE_ID"]);
                                     if ($fr = $f->Fetch()) {
                                         $a = array("b", "Kb", "Mb", "Gb");
                                         $pos = 0;
                                         $size = $arrA["USER_FILE_SIZE"];
                                         while ($size >= 1024) {
                                             $size /= 1024;
                                             $pos++;
                                         }
                                         $file_size = round($size, 2) . " " . $a[$pos];
                                         if ($arrA["USER_FILE_IS_IMAGE"] == "Y") {
                                             $url = "http://" . $_SERVER["HTTP_HOST"] . "/" . COption::GetOptionString("main", "upload_dir", "upload") . "/" . $fr["SUBDIR"] . "/" . $fr["FILE_NAME"];
                                             $answer .= "<a href=\"{$url}\">" . $arrA["USER_FILE_NAME"] . "</a> [" . $fr["WIDTH"] . " x " . $fr["HEIGHT"] . "] (" . $file_size . ")";
                                         } else {
                                             $url = "http://" . $_SERVER["HTTP_HOST"] . "/bitrix/tools/form_show_file.php?rid=" . $RESULT_ID . "&hash=" . $arrA["USER_FILE_HASH"] . "&action=download&&lang=" . LANGUAGE_ID;
                                             $answer .= "<a href=\"{$url}\">" . $arrA["USER_FILE_NAME"] . "</a> (" . $file_size . ")";
                                         }
                                     }
                                 }
                             } else {
                                 if (strlen(trim($answer)) > 0) {
                                     $answer .= "\n";
                                 }
                                 if ($USER_TEXT_EXIST) {
                                     $answer .= trim($arrA["USER_TEXT"]);
                                     if ($ANSWER_TEXT_EXIST || $ANSWER_VALUE_EXIST || $USER_FILE_EXIST) {
                                         $answer .= " ";
                                     }
                                 }
                                 if ($ANSWER_TEXT_EXIST) {
                                     $answer .= $arrA["ANSWER_TEXT"];
                                     if ($ANSWER_VALUE_EXIST || $USER_FILE_EXIST) {
                                         $answer .= " ";
                                     }
                                 }
                                 if ($ANSWER_VALUE_EXIST) {
                                     $answer .= $arrA["ANSWER_VALUE"];
                                     if ($USER_FILE_EXIST) {
                                         $answer .= " ";
                                     }
                                 }
                                 if ($USER_FILE_EXIST) {
                                     $f = CFile::GetByID($arrA["USER_FILE_ID"]);
                                     if ($fr = $f->Fetch()) {
                                         $a = array("b", "Kb", "Mb", "Gb");
                                         $pos = 0;
                                         $size = $arrA["USER_FILE_SIZE"];
                                         while ($size >= 1024) {
                                             $size /= 1024;
                                             $pos++;
                                         }
                                         $file_size = round($size, 2) . " " . $a[$pos];
                                         if ($arrA["USER_FILE_IS_IMAGE"] == "Y") {
                                             $url = "http://" . $_SERVER["HTTP_HOST"] . "/" . COption::GetOptionString("main", "upload_dir", "upload") . "/" . $fr["SUBDIR"] . "/" . $fr["FILE_NAME"];
                                             $answer .= $arrA["USER_FILE_NAME"] . " [" . $fr["WIDTH"] . " x " . $fr["HEIGHT"] . "] (" . $file_size . ")\n" . $url;
                                         } else {
                                             $url = "http://" . $_SERVER["HTTP_HOST"] . "/bitrix/tools/form_show_file.php?rid=" . $RESULT_ID . "&hash=" . $arrA["USER_FILE_HASH"] . "&action=download&&lang=" . LANGUAGE_ID;
                                             $answer .= $arrA["USER_FILE_NAME"] . " (" . $file_size . ")\n" . $url;
                                         }
                                     }
                                 }
                             }
                         }
                     }
                     $arEventFields[$wr["SID"]] = strlen($answer) <= 0 ? " " : $answer;
                 }
                 //echo "<pre>"; print_r($arEventFields); echo "</pre>";
                 CEvent::Send($arrTemplate["EVENT_NAME"], $arrTemplate["SITE_ID"], $arEventFields, "Y", $arrTemplate["ID"]);
                 $MESS = $OLD_MESS;
             }
             //foreach($arrTemplates as $arrTemplate)
             return true;
         } else {
             $strError .= GetMessage("FORM_ERROR_FORM_NOT_FOUND") . "<br>";
         }
     } else {
         $strError .= GetMessage("FORM_ERROR_RESULT_NOT_FOUND") . "<br>";
     }
     return false;
 }