12 if (
$USER->IsAdmin())
return true;
20 $WEB_FORM_ID = intval($WEB_FORM_ID);
21 $arSqlSearch = Array();
29 $cntFilterKeys =
count($filter_keys);
30 for (
$i=0;
$i<$cntFilterKeys;
$i++)
41 if( ((
string)
$val ==
'') || (
$val ===
"NOT_REF") )
44 $match_value_set = (in_array(
$key.
"_EXACT_MATCH", $filter_keys)) ?
true :
false;
57 case "IN_RESULTS_TABLE":
58 case "IN_EXCEL_TABLE":
59 $arSqlSearch[] = (
$val==
"Y") ?
"F.".
$key.
"='Y'" :
"F.".$key.
"='N'";
67 RA.RESULT_ID, RA.FIELD_ID, F.SID, F.SID as VARNAME, F.TITLE, F.TITLE_TYPE, F.FILTER_TITLE, F.RESULTS_TABLE_TITLE,
68 RA.ANSWER_ID, RA.ANSWER_TEXT, A.MESSAGE, RA.ANSWER_VALUE, A.VALUE, RA.USER_TEXT,
69 ".$DB->DateToCharFunction(
"RA.USER_DATE").
" USER_DATE,
70 RA.USER_FILE_ID, RA.USER_FILE_NAME, RA.USER_FILE_IS_IMAGE, RA.USER_FILE_HASH, RA.USER_FILE_SUFFIX, RA.USER_FILE_SIZE,
71 A.FIELD_TYPE, A.FIELD_WIDTH, A.FIELD_HEIGHT, A.FIELD_PARAM
73 b_form_result_answer RA
74 INNER JOIN b_form_field F ON (F.ID = RA.FIELD_ID and F.ACTIVE='Y')
75 LEFT JOIN b_form_answer A ON (A.ID = RA.ANSWER_ID)
78 and RA.FORM_ID = $WEB_FORM_ID
79 ORDER BY RA.RESULT_ID, F.C_SORT, A.C_SORT
81 $z =
$DB->Query($strSql);
82 while (
$zr =
$z->Fetch())
84 $arrAnswers[
$zr[
"RESULT_ID"]][
$zr[
"FIELD_ID"]][intval(
$zr[
"ANSWER_ID"])]=
$zr;
85 $arrAnswersSID[
$zr[
"RESULT_ID"]][
$zr[
"SID"]][]=
$zr;
90 "VARNAME" =>
$arFilter[
"FIELD_SID"] ??
'',
92 "IN_RESULTS_TABLE" =>
$arFilter[
"IN_RESULTS_TABLE"] ??
'',
93 "IN_EXCEL_TABLE" =>
$arFilter[
"IN_EXCEL_TABLE"] ??
'',
96 while ($qr = $q->Fetch())
98 $arrColumns[$qr[
"ID"]] = $qr;
105 $FORM_ID = intval($FORM_ID);
106 if ($FORM_ID<=0)
return false;
112 b_form_2_mail_template FM
114 FM.FORM_ID = $FORM_ID
116 $rs =
$DB->Query($strSql);
117 while (
$ar =
$rs->Fetch()) $arrRes[] =
$ar[
"MAIL_TEMPLATE_ID"];
124 $FORM_ID = intval($FORM_ID);
125 if ($FORM_ID<=0)
return false;
133 FS.FORM_ID = $FORM_ID
135 $rs =
$DB->Query($strSql);
136 while (
$ar =
$rs->Fetch()) $arrRes[] =
$ar[
"SITE_ID"];
143 $RESULT_ID = intval($RESULT_ID);
144 if ($RESULT_ID<=0)
return;
150 ".$DB->DateToCharFunction(
"R.DATE_CREATE").
" DATE_CREATE,
151 ".
$DB->DateToCharFunction(
"R.TIMESTAMP_X").
" TIMESTAMP_X,
152 S.TITLE STATUS_TITLE,
153 S.DESCRIPTION STATUS_DESCRIPTION,
154 S.DEFAULT_VALUE STATUS_DEFAULT_VALUE,
156 S.HANDLER_IN STATUS_HANDLER_IN,
157 S.HANDLER_OUT STATUS_HANDLER_OUT
160 INNER JOIN b_form_status S ON (R.STATUS_ID=S.ID)
164 $rsResult =
$DB->Query($strSql);
167 $arrPREV_RESULT_STATUS[$RESULT_ID] =
$arResult[
"STATUS_ID"];
168 $handler = trim(
$arResult[
"STATUS_HANDLER_OUT"]);
172 $fname = str_replace(
"\\",
"/", $fname);
173 $fname = str_replace(
"//",
"/", $fname);
174 $fname = trim($fname,
"/");
175 $CURRENT_STATUS_ID =
$arResult[
"STATUS_ID"];
176 $fname =
$_SERVER[
"DOCUMENT_ROOT"].
"/".$fname;
186 $RESULT_ID = intval($RESULT_ID);
187 if ($RESULT_ID<=0)
return;
193 ".$DB->DateToCharFunction(
"R.DATE_CREATE").
" DATE_CREATE,
194 ".
$DB->DateToCharFunction(
"R.TIMESTAMP_X").
" TIMESTAMP_X,
195 S.TITLE STATUS_TITLE,
196 S.DESCRIPTION STATUS_DESCRIPTION,
197 S.DEFAULT_VALUE STATUS_DEFAULT_VALUE,
199 S.HANDLER_IN STATUS_HANDLER_IN,
200 S.HANDLER_OUT STATUS_HANDLER_OUT
203 INNER JOIN b_form_status S ON (R.STATUS_ID=S.ID)
207 $rsResult =
$DB->Query($strSql);
210 $arrCURRENT_RESULT_STATUS[$RESULT_ID] =
$arResult[
"STATUS_ID"];
211 $handler = trim(
$arResult[
"STATUS_HANDLER_IN"]);
215 $fname = str_replace(
"\\",
"/", $fname);
216 $fname = str_replace(
"//",
"/", $fname);
217 $fname = trim($fname,
"/");
218 $fname =
$_SERVER[
"DOCUMENT_ROOT"].
"/".$fname;
219 $CURRENT_STATUS_ID =
$arResult[
"STATUS_ID"];
220 $PREV_STATUS_ID = $arrPREV_RESULT_STATUS[$RESULT_ID];
230 $ref_id =
array(1,10,15,20,25,30);
239 $ref_id_def =
array();
241 if ($get_default==
"Y")
243 $default_perm = COption::GetOptionString(
"form",
"FORM_DEFAULT_PERMISSION");
244 $idx = array_search($default_perm, $ref_id);
246 $ref_def[] =
GetMessage(
"FORM_DEFAULT").
" - ".$ref[$idx];
249 "reference_id" => array_merge($ref_id_def,$ref_id),
250 "reference" => array_merge($ref_def, $ref));
257 $default_right = COption::GetOptionString(
"form",
"FORM_DEFAULT_PERMISSION");
275 $form_id = intval($form_id);
283 FG.FORM_ID = '".$form_id.
"'
284 and FG.GROUP_ID in (".
$groups.
")
286 $t =
$DB->Query($strSql);
287 while ($tr = $t->Fetch())
288 $arr[$tr[
"GROUP_ID"]] = $tr[
"PERMISSION"];
290 if ($get_from_database!=
"Y")
294 if (!array_key_exists($gid,
$arr))
295 $arr[$gid] = $default_right;
299 $arr_values = is_array(
$arr) ? array_values(
$arr) :
array(0);
300 $right =
count($arr_values)>0 ? max($arr_values) : 0;
304 if (
$right<=0 && $get_from_database!=
"Y")
$right = $default_right;
311 $WEB_FORM_ID = intval($WEB_FORM_ID);
316 if (
$type==
"SHOW")
$path = COption::GetOptionString(
"form",
"SHOW_TEMPLATE_PATH");
317 elseif (
$type==
"SHOW_RESULT")
$path = COption::GetOptionString(
"form",
"SHOW_RESULT_TEMPLATE_PATH");
318 elseif (
$type==
"PRINT_RESULT")
$path = COption::GetOptionString(
"form",
"PRINT_RESULT_TEMPLATE_PATH");
319 elseif (
$type==
"EDIT_RESULT")
$path = COption::GetOptionString(
"form",
"EDIT_RESULT_TEMPLATE_PATH");
325 while (
false!==($fname = readdir(
$handle)))
327 if (is_file(
$_SERVER[
"DOCUMENT_ROOT"].
$path.$fname) && $fname!=
"." && $fname!=
"..")
329 $arReferenceId[] = $fname;
330 $arReference[] = $fname;
345 INNER JOIN b_form_2_site FS ON (FS.FORM_ID = F.ID)
349 $z =
$DB->Query($strSql);
351 $MAIL_EVENT_TYPE =
'';
353 while (
$zr =
$z->Fetch())
355 $MAIL_EVENT_TYPE =
$zr[
"MAIL_EVENT_TYPE"];
356 $arrSITE[] =
$zr[
"SITE_ID"];
359 $arReferenceId =
array();
360 $arReference =
array();
361 if ($MAIL_EVENT_TYPE <>
'')
365 "SITE_ID" => $arrSITE,
366 "EVENT_NAME" => $MAIL_EVENT_TYPE
369 while ($er=$e->Fetch())
371 if (!in_array($er[
"ID"], $arReferenceId))
373 $arReferenceId[] = $er[
"ID"];
374 $arReference[] =
"(".$er[
"LID"].
") ".
TruncateText($er[
"SUBJECT"],50);
379 $arr =
array(
"reference"=>$arReference,
"reference_id"=>$arReferenceId);
386 $arSqlSearch = Array();
391 $cntFilterKeys =
count($filter_keys);
392 for (
$i=0;
$i<$cntFilterKeys;
$i++)
403 if( ((
string)
$val ==
'') || (
$val ===
"NOT_REF") )
406 $match_value_set = in_array(
$key.
"_EXACT_MATCH", $filter_keys);
459 and G.GROUP_ID in ($groups)
461 L.ID, L.LID, L.MENU, F.NAME, F.ID, F.C_SORT
463 max(G.PERMISSION)>=15
474 $strSql =
"SELECT max(C_SORT) as MAX_SORT FROM b_form";
475 $z =
$DB->Query($strSql);
477 return (intval(
$zr[
"MAX_SORT"])+100);
482 if ($flag==
"Y")
return "<font color='red'><span class='form-required starrequired'>*</span></font>";
485 public static function GetTextFilter($FID, $size=
"45", $field_text=
"class=\"inputtext\"", $field_checkbox=
"class=\"inputcheckbox\"")
488 $var_exec_match =
"find_".$FID.
"_exact_match";
489 global ${
$var}, ${$var_exec_match};
490 $checked = (${$var_exec_match}==
"Y") ?
"checked" :
"";
494 public static function GetDateFilter($FID, $form_name=
"form1", $show_select=
"Y", $field_select=
"class=\"inputselect\"", $field_input=
"class=\"inputtext\"")
496 $var1 =
"find_".$FID.
"_1";
497 $var2 =
"find_".$FID.
"_2";
501 if (!defined(
'ADMIN_SECTION'))
505 'bitrix:main.calendar',
509 'FORM_NAME' => $form_name,
510 'INPUT_NAME' => $var1,
511 'INPUT_NAME_FINISH' => $var2,
512 'INPUT_VALUE' => ${$var1},
513 'INPUT_VALUE_FINISH' => ${$var2},
517 array(
'HIDE_ICONS' =>
'Y')
519 $res = ob_get_contents();
528 public static function GetNumberFilter($FID, $size=
"10", $field=
"class=\"inputtext\"")
531 $var1 =
"find_".$FID.
"_1";
532 $var2 =
"find_".$FID.
"_2";
533 global ${$var1}, ${$var2};
534 return '<input '.$field.
' type="text" name="'.$var1.
'" size="'.$size.
'" value="'.
htmlspecialcharsbx(${$var1}).
'"> '.
GetMessage(
"FORM_TILL").
' <input '.$field.
' type="text" name="'.$var2.
'" size="'.$size.
'" value="'.
htmlspecialcharsbx(${$var2}).
'">';
556 if ($PARAMETER_NAME==
"ANSWER_VALUE")
$str=
", VALUE as REFERENCE";
else $str=
", MESSAGE as REFERENCE";
569 $z =
$DB->Query($strSql);
572 while (
$zr =
$z->Fetch())
574 if (trim(
$zr[
"REFERENCE"]) <>
'')
577 $ref_id[] =
$zr[
"REFERENCE_ID"];
580 $arr =
array(
"reference_id"=>$ref_id,
"reference"=>$ref);
586 public static function GetTextValue($FIELD_NAME, $arAnswer, $arrVALUES=
false)
588 $fname =
"form_text_".$FIELD_NAME;
589 if (is_array($arrVALUES) && isset($arrVALUES[$fname])) $value = $arrVALUES[$fname];
590 else $value = $arAnswer[
"VALUE"];
596 $fname =
"form_hidden_".$FIELD_NAME;
597 if (is_array($arrVALUES) && isset($arrVALUES[$fname])) $value = $arrVALUES[$fname];
598 else $value = $arAnswer[
"VALUE"];
604 $fname =
"form_password_".$FIELD_NAME;
605 if (is_array($arrVALUES) && isset($arrVALUES[$fname])) $value = $arrVALUES[$fname];
606 else $value = $arAnswer[
"VALUE"];
610 public static function GetEmailValue($FIELD_NAME, $arAnswer, $arrVALUES=
false)
612 $fname =
"form_email_".$FIELD_NAME;
613 if (is_array($arrVALUES) && isset($arrVALUES[$fname])) $value = $arrVALUES[$fname];
614 else $value = $arAnswer[
"VALUE"];
618 public static function GetUrlValue($FIELD_NAME, $arAnswer, $arrVALUES=
false)
620 $fname =
"form_url_".$FIELD_NAME;
621 if (is_array($arrVALUES) && isset($arrVALUES[$fname])) $value = $arrVALUES[$fname];
622 else $value = $arAnswer[
"VALUE"];
626 public static function GetTextField($FIELD_NAME, $VALUE=
"", $SIZE=
"", $PARAM=
"")
630 $PARAM =
' class="inputtext" ';
636 $sizeAttr =
' size="'.(string)$SIZE.
'"';
638 return '<input type="text" '.$PARAM.
' name="form_text_'.$FIELD_NAME.
'" value="'.
htmlspecialcharsbx($VALUE).
'"'.$sizeAttr.
'>';
643 return "<input type=\"hidden\" ".$PARAM.
" name=\"form_hidden_".$FIELD_NAME.
"\" value=\"".
htmlspecialcharsbx($VALUE).
"\" />";
647 public static function GetEmailField($FIELD_NAME, $VALUE=
"", $SIZE=
"", $PARAM=
"")
649 if ($PARAM ==
'') $PARAM =
" class=\"inputtext\" ";
650 return "<input type=\"text\" ".$PARAM.
" name=\"form_email_".$FIELD_NAME.
"\" value=\"".
htmlspecialcharsbx($VALUE).
"\" size=\"".$SIZE.
"\" />";
653 public static function GetUrlField($FIELD_NAME, $VALUE=
"", $SIZE=
"", $PARAM=
"")
655 if ($PARAM ==
'') $PARAM =
" class=\"inputtext\" ";
656 return "<input type=\"text\" ".$PARAM.
" name=\"form_url_".$FIELD_NAME.
"\" value=\"".
htmlspecialcharsbx($VALUE).
"\" size=\"".$SIZE.
"\" />";
661 if ($PARAM ==
'') $PARAM =
" class=\"inputtext\" ";
662 return "<input type=\"password\" ".$PARAM.
" name=\"form_password_".$FIELD_NAME.
"\" value=\"".
htmlspecialcharsbx($VALUE).
"\" size=\"".$SIZE.
"\" />";
667 $fname =
"form_dropdown_".$FIELD_NAME;
668 if (is_array($arrVALUES) && isset($arrVALUES[$fname]))
670 $value = intval($arrVALUES[$fname]);
672 elseif (is_array($arDropDown[$FIELD_NAME][
"param"]))
674 $c =
count($arDropDown[$FIELD_NAME][
"param"]);
677 for (
$i=0;
$i<=$c-1;
$i++)
679 if (mb_strpos(mb_strtolower($arDropDown[$FIELD_NAME][
"param"][
$i]),
"selected") !==
false || mb_strpos(mb_strtolower($arDropDown[$FIELD_NAME][
"param"][
$i]),
"checked") !==
false)
681 $value = $arDropDown[$FIELD_NAME][
"reference_id"][
$i];
692 if ($PARAM ==
'') $PARAM =
" class=\"inputselect\" ";
693 return SelectBoxFromArray(
"form_dropdown_".$FIELD_NAME, $arDropDown, $VALUE,
"", $PARAM);
698 $fname =
"form_multiselect_".$FIELD_NAME;
699 if (is_array($arrVALUES) && isset($arrVALUES[$fname]))
701 $value=$arrVALUES[$fname];
703 elseif (is_array($arMultiSelect[$FIELD_NAME][
"param"]))
705 $c =
count($arMultiSelect[$FIELD_NAME][
"param"]);
710 if (mb_strpos(mb_strtolower($arMultiSelect[$FIELD_NAME][
"param"][
$i]),
"selected") !==
false || mb_strpos(mb_strtolower($arMultiSelect[$FIELD_NAME][
"param"][
$i]),
"checked") !==
false)
711 $value[] = $arMultiSelect[$FIELD_NAME][
"reference_id"][
$i];
720 if ($PARAM ==
'') $PARAM =
" class=\"inputselect\" ";
721 return SelectBoxMFromArray(
"form_multiselect_".$FIELD_NAME.
"[]", $arMultiSelect, $arSELECTED,
"",
false, $HEIGHT, $PARAM);
724 public static function GetDateValue($FIELD_NAME, $arAnswer, $arrVALUES=
false)
726 $fname =
"form_date_".$FIELD_NAME;
727 if (is_array($arrVALUES) && isset($arrVALUES[$fname])) $value = $arrVALUES[$fname];
730 if (preg_match(
"/NOW_DATE/i",$arAnswer[
"FIELD_PARAM"])) $value =
GetTime(time(),
"SHORT");
731 elseif (preg_match(
"/NOW_TIME/i",$arAnswer[
"FIELD_PARAM"])) $value =
GetTime(time()+CTimeZone::GetOffset(),
"FULL");
732 else $value = $arAnswer[
"VALUE"];
737 public static function GetDateField($FIELD_NAME, $FORM_NAME, $VALUE=
"", $FIELD_WIDTH=
"", $PARAM=
"")
741 $rid = RandString(8);
742 $res =
"<input type=\"text\" ".$PARAM.
" name=\"form_date_".$FIELD_NAME.
"\" id=\"form_date_".$rid.
"\" value=\"".
htmlspecialcharsbx($VALUE).
"\" size=\"".$FIELD_WIDTH.
"\" />";
746 'bitrix:main.calendar',
750 'FORM_NAME' => $FORM_NAME,
751 'INPUT_NAME' =>
"form_date_".$rid,
755 array(
'HIDE_ICONS' =>
'Y')
757 $res .= ob_get_contents();
765 $fname =
"form_checkbox_".$FIELD_NAME;
767 if (is_array($arrVALUES))
769 if(isset($arrVALUES[$fname]))
771 $arr = $arrVALUES[$fname];
772 if (is_array(
$arr) && in_array($arAnswer[
"ID"],
$arr))
774 $value = $arAnswer[
"ID"];
782 if (mb_strpos(mb_strtolower($arAnswer[
"FIELD_PARAM"]),
"selected") !==
false || mb_strpos(mb_strtolower($arAnswer[
"FIELD_PARAM"]),
"checked") !==
false)
784 $value = $arAnswer[
"ID"];
794 if ($PARAM ==
'') $PARAM =
" class=\"inputcheckbox\" ";
795 return InputType(
"checkbox",
"form_checkbox_".$FIELD_NAME.
"[]", $FIELD_ID, $VALUE,
false,
"", $PARAM);
798 public static function GetRadioValue($FIELD_NAME, $arAnswer, $arrVALUES=
false)
800 $fname =
"form_radio_".$FIELD_NAME;
801 if (is_array($arrVALUES) && isset($arrVALUES[$fname]))
803 $value = intval($arrVALUES[$fname]);
807 if (mb_strpos(mb_strtolower($arAnswer[
"FIELD_PARAM"]),
"selected") !==
false || mb_strpos(mb_strtolower($arAnswer[
"FIELD_PARAM"]),
"checked") !==
false)
808 $value = $arAnswer[
"ID"];
813 public static function GetRadioField($FIELD_NAME, $FIELD_ID, $VALUE=
"", $PARAM=
"")
815 if ($PARAM ==
'') $PARAM =
" class=\"inputradio\" ";
817 return InputType(
"radio",
"form_radio_".$FIELD_NAME, $FIELD_ID, $VALUE,
false,
"", $PARAM);
822 $fname =
"form_textarea_".$FIELD_NAME;
823 if (is_array($arrVALUES) && isset($arrVALUES[$fname])) $value = $arrVALUES[$fname];
824 else $value = $arAnswer[
"VALUE"];
828 public static function GetTextAreaField($FIELD_NAME, $WIDTH=
"", $HEIGHT=
"", $PARAM=
"", $VALUE=
"")
832 $PARAM =
' class="inputtextarea"';
835 $WIDTH = (int)$WIDTH;
838 $colsAttr =
' cols="'.(string)$WIDTH.
'"';
841 $HEIGHT = (int)$HEIGHT;
844 $rowsAttr =
' rows="'.(string)$HEIGHT.
'"';
846 return '<textarea name="form_textarea_'.$FIELD_NAME.
'"'.$colsAttr.$rowsAttr.$PARAM.
' >'.
htmlspecialcharsbx($VALUE).
'</textarea>';
849 public static function GetFileField($FIELD_NAME, $WIDTH=
"", $FILE_TYPE=
"IMAGE", $MAX_FILE_SIZE=0, $VALUE=
"", $PARAM_FILE=
"", $PARAM_CHECKBOX=
"")
853 if ($PARAM_FILE ==
'') $PARAM_FILE =
" class=\"inputfile\" ";
854 if ($PARAM_CHECKBOX ==
'') $PARAM_CHECKBOX =
" class=\"inputcheckbox\" ";
855 $show_notes = (mb_strtoupper($FILE_TYPE) ==
"IMAGE" ||
$USER->isAdmin()) ?
true :
false;
856 return CFile::InputFile(
"form_".mb_strtolower($FILE_TYPE).
"_".$FIELD_NAME, $WIDTH, $VALUE,
false, $MAX_FILE_SIZE, $FILE_TYPE, $PARAM_FILE, 0,
"", $PARAM_CHECKBOX, $show_notes);
859 public static function GetDataByID($WEB_FORM_ID, &$arForm, &$arQuestions, &$arAnswers, &$arDropDown, &$arMultiSelect, $additional=
"N", $active=
"N")
862 $WEB_FORM_ID = intval($WEB_FORM_ID);
864 $arQuestions =
array();
865 $arAnswers =
array();
866 $arDropDown =
array();
867 $arMultiSelect =
array();
869 if ($arForm =
$z->Fetch())
874 while ($ur=$u->Fetch())
876 $arQuestions[$ur[
"SID"]] = $ur;
878 while ($wr=$w->Fetch()) $arAnswers[$ur[
"SID"]][] = $wr;
881 if (is_array($arQuestions) && is_array($arAnswers))
883 foreach ($arQuestions as $arQ)
885 $QUESTION_ID = $arQ[
"SID"];
886 $arDropReference =
array();
887 $arDropReferenceID =
array();
888 $arDropParam =
array();
889 $arMultiReference =
array();
890 $arMultiReferenceID =
array();
891 $arMultiParam =
array();
892 if (is_array($arAnswers[$QUESTION_ID]))
894 foreach ($arAnswers[$QUESTION_ID] as $arA)
896 switch ($arA[
"FIELD_TYPE"])
899 $arDropReference[] = $arA[
"MESSAGE"];
900 $arDropReferenceID[] = $arA[
"ID"];
901 $arDropParam[] = $arA[
"FIELD_PARAM"];
904 $arMultiReference[] = $arA[
"MESSAGE"];
905 $arMultiReferenceID[] = $arA[
"ID"];
906 $arMultiParam[] = $arA[
"FIELD_PARAM"];
911 if (
count($arDropReference)>0)
912 $arDropDown[$QUESTION_ID] =
array(
"reference"=>$arDropReference,
"reference_id"=>$arDropReferenceID,
"param" => $arDropParam);
913 if (
count($arMultiReference)>0)
914 $arMultiSelect[$QUESTION_ID] =
array(
"reference"=>$arMultiReference,
"reference_id"=>$arMultiReferenceID,
"param" => $arMultiParam);
922 reset($arMultiSelect);
924 return $arForm[
"ID"];
932 if (is_array($container))
934 if (
$key !==
false) $container[
$key] = $MESSAGE;
935 else $container[] = $MESSAGE;
937 else $container .= ($container <>
'' ?
"<br />" :
"").$MESSAGE;
941 public static function Check($WEB_FORM_ID, $arrVALUES=
false, $RESULT_ID=
false, $CHECK_RIGHTS=
"Y", $RETURN_ARRAY=
"N")
945 if ($arrVALUES===
false) $arrVALUES =
$_REQUEST;
947 $RESULT_ID = intval($RESULT_ID);
950 $REQUIRED_FIELDS = [];
952 $WEB_FORM_ID = intval($WEB_FORM_ID);
955 $WEB_FORM_ID =
CForm::GetDataByID($WEB_FORM_ID, $arForm, $arQuestions, $arAnswers, $arDropDown, $arMultiSelect,
"ALL");
956 $WEB_FORM_ID = intval($WEB_FORM_ID);
964 $NOT_ANSWER =
"NOT_ANSWER";
965 foreach ($arQuestions as
$key => $arQuestion)
967 $arAnswerValues =
array();
969 $FIELD_ID = $arQuestion[
"ID"];
970 if ($arQuestion[
"TITLE_TYPE"]==
"html")
972 $FIELD_TITLE = strip_tags($arQuestion[
"TITLE"]);
976 $FIELD_TITLE = $arQuestion[
"TITLE"];
979 if ($arQuestion[
"ADDITIONAL"]!=
"Y")
981 $FIELD_SID = $arQuestion[
"SID"];
982 $FIELD_REQUIRED = $arQuestion[
"REQUIRED"];
984 if ($FIELD_REQUIRED==
"Y") $REQUIRED_FIELDS[$FIELD_SID] =
"N";
987 $bCheckValidators =
true;
988 if (is_array($arAnswers[$FIELD_SID]))
990 foreach ($arAnswers[$FIELD_SID] as
$key => $arAnswer)
993 $FIELD_TYPE = $arAnswer[
"FIELD_TYPE"];
994 $FIELD_PARAM = $arAnswer[
"FIELD_PARAM"];
996 if ($startType ==
"")
997 $startType = $FIELD_TYPE;
999 $bCheckValidators &= $startType == $FIELD_TYPE;
1001 switch ($FIELD_TYPE) :
1006 $fname =
"form_".$FIELD_TYPE.
"_".$FIELD_SID;
1007 $arAnswerValues[] = $arrVALUES[$fname];
1008 $ANSWER_ID = intval($arrVALUES[$fname]);
1009 if ($ANSWER_ID>0 && $ANSWER_ID==$arAnswer[
"ID"])
1011 if ($FIELD_REQUIRED==
"Y" && !preg_match(
"/".$NOT_ANSWER.
"/i", $FIELD_PARAM))
1013 $REQUIRED_FIELDS[$FIELD_SID] =
"Y";
1022 $fname =
"form_".$FIELD_TYPE.
"_".$FIELD_SID;
1023 if (is_array($arrVALUES[$fname]) &&
count($arrVALUES[$fname])>0)
1025 $arAnswerValues = $arrVALUES[$fname];
1026 reset($arrVALUES[$fname]);
1027 foreach($arrVALUES[$fname] as $ANSWER_ID)
1029 $ANSWER_ID = intval($ANSWER_ID);
1030 if ($ANSWER_ID>0 && $ANSWER_ID==$arAnswer[
"ID"])
1032 if ($FIELD_REQUIRED==
"Y" && !preg_match(
"/".$NOT_ANSWER.
"/i", $FIELD_PARAM))
1034 $REQUIRED_FIELDS[$FIELD_SID] =
"Y";
1048 $fname =
"form_".$FIELD_TYPE.
"_".$arAnswer[
"ID"];
1049 $ANSWER_ID = intval($arAnswer[
"ID"]);
1050 $USER_TEXT = $arrVALUES[$fname];
1051 $arAnswerValues[] = $arrVALUES[$fname];
1052 if (trim($USER_TEXT) <>
'')
1054 if ($FIELD_REQUIRED==
"Y")
1056 $REQUIRED_FIELDS[$FIELD_SID] =
"Y";
1064 $fname =
"form_".$FIELD_TYPE.
"_".$arAnswer[
"ID"];
1065 $arAnswerValues[] = $arrVALUES[$fname];
1066 $ANSWER_ID = intval($arAnswer[
"ID"]);
1067 $USER_TEXT = $arrVALUES[$fname];
1068 if ($USER_TEXT <>
'')
1070 if (!preg_match(
"/^(http|https|ftp):\/\//i",$USER_TEXT))
1074 if ($FIELD_REQUIRED==
"Y")
1076 $REQUIRED_FIELDS[$FIELD_SID] =
"Y";
1085 $fname =
"form_".$FIELD_TYPE.
"_".$arAnswer[
"ID"];
1086 $arAnswerValues[] = $arrVALUES[$fname];
1087 $ANSWER_ID = intval($arAnswer[
"ID"]);
1088 $USER_TEXT = $arrVALUES[$fname];
1089 if ($USER_TEXT <>
'')
1095 if ($FIELD_REQUIRED==
"Y")
1097 $REQUIRED_FIELDS[$FIELD_SID] =
"Y";
1106 $fname =
"form_".$FIELD_TYPE.
"_".$arAnswer[
"ID"];
1107 $arAnswerValues[] = $arrVALUES[$fname];
1108 $USER_DATE = $arrVALUES[$fname];
1109 if ($USER_DATE <>
'')
1115 str_replace(
"#FIELD_NAME#", $FIELD_TITLE,
GetMessage(
"FORM_INCORRECT_DATE_FORMAT")),
1119 if ($FIELD_REQUIRED==
"Y")
1121 $REQUIRED_FIELDS[$FIELD_SID] =
"Y";
1129 $fname =
"form_".$FIELD_TYPE.
"_".$arAnswer[
"ID"];
1130 $fname_del = $arrVALUES[
"form_".$FIELD_TYPE.
"_".$arAnswer[
"ID"].
"_del"];
1131 $ANSWER_ID = intval($arAnswer[
"ID"]);
1132 $arIMAGE = isset($arrVALUES[$fname]) ? $arrVALUES[$fname] : $_FILES[$fname];
1133 if (is_array($arIMAGE) && $arIMAGE[
"tmp_name"] <>
'')
1135 $arIMAGE[
"MODULE_ID"] =
"form";
1136 if (CFile::CheckImageFile($arIMAGE) <>
'')
1140 str_replace(
"#FIELD_NAME#", $FIELD_TITLE,
GetMessage(
"FORM_INCORRECT_FILE_TYPE")),
1147 $arAnswerValues[] = $arIMAGE;
1150 if ($FIELD_REQUIRED==
"Y")
1152 $REQUIRED_FIELDS[$FIELD_SID] =
"Y";
1156 elseif ($RESULT_ID>0 && $fname_del!=
"Y")
1158 $REQUIRED_FIELDS[$FIELD_SID] =
"Y";
1166 $fname =
"form_".$FIELD_TYPE.
"_".$arAnswer[
"ID"];
1167 $fname_del = $arrVALUES[
"form_".$FIELD_TYPE.
"_".$arAnswer[
"ID"].
"_del"];
1168 $arFILE = isset($arrVALUES[$fname]) ? $arrVALUES[$fname] : $_FILES[$fname];
1169 if (is_array($arFILE) && $arFILE[
"tmp_name"] <>
'')
1171 $arAnswerValues[] = $arFILE;
1172 if ($FIELD_REQUIRED==
"Y")
1174 $REQUIRED_FIELDS[$FIELD_SID] =
"Y";
1178 elseif ($RESULT_ID>0 && $fname_del!=
"Y")
1180 $REQUIRED_FIELDS[$FIELD_SID] =
"Y";
1192 $FIELD_TYPE = $arQuestion[
"FIELD_TYPE"];
1194 $fname =
"form_date_ADDITIONAL_".$arQuestion[
"ID"];
1195 $arAnswerValues =
array($arrVALUES[$fname]);
1197 $bCheckValidators =
true;
1198 switch ($FIELD_TYPE) :
1202 $USER_DATE = $arrVALUES[$fname];
1203 if ($USER_DATE <>
'')
1209 str_replace(
"#FIELD_NAME#", $FIELD_TITLE,
GetMessage(
"FORM_INCORRECT_DATE_FORMAT")),
1220 if ($bCheckValidators)
1222 if ($arQuestion[
"ADDITIONAL"] ==
"Y" || is_array($arAnswers[$FIELD_SID]))
1225 while ($arValidator = $rsValidatorList->Fetch())
1239 if (($arForm[
"USE_CAPTCHA"] ==
"Y" && !$RESULT_ID && !defined(
'ADMIN_SECTION')))
1241 if (!(
$GLOBALS[
"APPLICATION"]->CaptchaCheckCode($arrVALUES[
"captcha_word"], $arrVALUES[
"captcha_sid"])))
1247 $EMPTY_REQUIRED_NAMES = [];
1248 foreach ($REQUIRED_FIELDS as
$key => $value)
1252 if ($arQuestions[
$key][
"RESULTS_TABLE_TITLE"] <>
'')
1254 $title = $arQuestions[
$key][
"RESULTS_TABLE_TITLE"];
1262 $title = ($arQuestions[
$key][
"TITLE_TYPE"]==
"html") ? strip_tags($arQuestions[
$key][
"TITLE"]) : $arQuestions[
$key][
"TITLE"];
1264 if ($RETURN_ARRAY ==
'N')
1265 $EMPTY_REQUIRED_NAMES[] =
$title;
1271 if ($RETURN_ARRAY ==
'N')
1273 if (!empty($EMPTY_REQUIRED_NAMES))
1276 $errMsg .=
GetMessage(
"FORM_EMPTY_REQUIRED_FIELDS").
"<br />";
1277 foreach ($EMPTY_REQUIRED_NAMES as
$key =>
$name) $errMsg .= (
$key != 0 ?
"<br />" :
"").
" » \"".
$name.
"\"";
1292 $FORM_ID = intval($FORM_ID);
1300 if ($F_RIGHT>=30) $RIGHT_OK =
"Y";
1321 $strSql =
"SELECT ID FROM b_form WHERE SID='".$DB->ForSql(trim(
$arFields[
"SID"]),50).
"' and ID<>'$FORM_ID'";
1322 $z =
$DB->Query($strSql);
1323 if (
$zr =
$z->Fetch())
1326 $s = str_replace(
"#ID#",
$zr[
"ID"],$s);
1331 $strSql =
"SELECT ID, ADDITIONAL FROM b_form_field WHERE SID='".$DB->ForSql(trim(
$arFields[
"SID"]),50).
"'";
1332 $z =
$DB->Query($strSql);
1333 if (
$zr =
$z->Fetch())
1335 $s = (
$zr[
"ADDITIONAL"]==
"Y") ?
1339 $s = str_replace(
"#ID#",
$zr[
"ID"],$s);
1350 if (
$str <> '')
return false;
else return true;
1358 $FORM_ID = intval($FORM_ID);
1361 $arFields_i =
array();
1367 $arFields_i[
"TIMESTAMP_X"] = date(
$DB->DateFormatToPHP(CSite::GetDateFormat(
"FULL")), time()+CTimeZone::GetOffset());
1370 $arFields_i[
"NAME"] =
$arFields[
'NAME'];
1376 $arFields_i[
"DESCRIPTION"] =
$arFields[
'DESCRIPTION'];
1379 $arFields_i[
"C_SORT"] = intval(
$arFields[
"C_SORT"]);
1382 $arFields_i[
"BUTTON"] =
$arFields[
'BUTTON'];
1385 $arFields_i[
"USE_CAPTCHA"] =
$arFields[
"USE_CAPTCHA"] ==
"Y" ?
"Y" :
"N";
1388 $arFields_i[
"DESCRIPTION_TYPE"] = (
$arFields[
"DESCRIPTION_TYPE"]==
"html") ?
"html" :
"text";
1391 $arFields_i[
"FORM_TEMPLATE"] =
$arFields[
'FORM_TEMPLATE'];
1394 $arFields_i[
"USE_DEFAULT_TEMPLATE"] =
$arFields[
"USE_DEFAULT_TEMPLATE"] ==
"Y" ?
"Y" :
"N";
1397 $arFields_i[
"SHOW_TEMPLATE"] =
$arFields[
'SHOW_TEMPLATE'];
1400 $arFields_i[
"SHOW_RESULT_TEMPLATE"] =
$arFields[
'SHOW_RESULT_TEMPLATE'];
1403 $arFields_i[
"PRINT_RESULT_TEMPLATE"] =
$arFields[
'PRINT_RESULT_TEMPLATE'];
1406 $arFields_i[
"EDIT_RESULT_TEMPLATE"] =
$arFields[
'EDIT_RESULT_TEMPLATE'];
1409 $arFields_i[
"FILTER_RESULT_TEMPLATE"] =
$arFields[
'FILTER_RESULT_TEMPLATE'];
1412 $arFields_i[
"TABLE_RESULT_TEMPLATE"] =
$arFields[
'TABLE_RESULT_TEMPLATE'];
1415 $arFields_i[
"USE_RESTRICTIONS"] =
$arFields[
"USE_RESTRICTIONS"] ==
"Y" ?
"Y" :
"N";
1418 $arFields_i[
"RESTRICT_USER"] = intval(
$arFields[
"RESTRICT_USER"]);
1421 $arFields_i[
"RESTRICT_TIME"] = intval(
$arFields[
"RESTRICT_TIME"]);
1424 $arFields_i[
"RESTRICT_STATUS"] = implode(
",",
$arFields[
"arRESTRICT_STATUS"]);
1427 $arFields_i[
"STAT_EVENT1"] =
$arFields[
'STAT_EVENT1'];
1430 $arFields_i[
"STAT_EVENT2"] =
$arFields[
'STAT_EVENT2'];
1433 $arFields_i[
"STAT_EVENT3"] =
$arFields[
'STAT_EVENT3'];
1437 unset($arFields_i[
"SHOW_TEMPLATE"]);
1438 unset($arFields_i[
"SHOW_RESULT_TEMPLATE"]);
1439 unset($arFields_i[
"PRINT_RESULT_TEMPLATE"]);
1440 unset($arFields_i[
"EDIT_RESULT_TEMPLATE"]);
1443 $z =
$DB->Query(
"SELECT IMAGE_ID, SID, SID as VARNAME FROM b_form WHERE ID='".$FORM_ID.
"'");
1445 $oldSID =
$zr[
"SID"];
1448 if(intval(
$zr[
"IMAGE_ID"]) > 0)
1451 if (!array_key_exists(
"MODULE_ID",
$arFields[
"arIMAGE"]) ||
$arFields[
"arIMAGE"][
"MODULE_ID"] ==
'')
1452 $arFields[
"arIMAGE"][
"MODULE_ID"] =
"form";
1454 $fid = CFile::SaveFile(
$arFields[
"arIMAGE"],
"form");
1455 if (intval($fid)>0) $arFields_i[
"IMAGE_ID"] = intval($fid);
1456 else $arFields_i[
"IMAGE_ID"] =
"null";
1459 $mailEventTypes = [
'FORM_FILLING_'.$oldSID =>
true];
1462 $arFields_i[
"MAIL_EVENT_TYPE"] =
"FORM_FILLING_".$arFields[
"SID"];
1463 $mailEventTypes[
'FORM_FILLING_'.$arFields[
'SID']] =
true;
1467 $arFields_i[
"MAIL_EVENT_TYPE"] =
"FORM_FILLING_".$oldSID;
1469 $mailEventTypes = array_keys($mailEventTypes);
1471 $correctMailTemplates =
true;
1475 if (!empty(
$arFields[
'arMAIL_TEMPLATE']))
1482 '!=EVENT_NAME' => $mailEventTypes
1487 $badTemplates[] = $row[
'ID'];
1490 if (!empty($badTemplates))
1492 $correctMailTemplates =
false;
1493 if (
count($badTemplates) > 1)
1496 'FORM_ERR_BAD_MAIL_TEMPLATE_LIST_EVENT',
1497 [
'#IDS#' => implode(
', ', $badTemplates)]
1503 'FORM_ERR_BAD_MAIL_TEMPLATE_EVENT',
1504 [
'#ID#' => implode(
'', $badTemplates)]
1508 unset($badTemplates);
1511 if (!$correctMailTemplates)
1518 $strUpdate =
$DB->PrepareUpdate(
'b_form', $arFields_i);
1519 if ($strUpdate !=
'')
1521 $query =
'UPDATE b_form SET '.$strUpdate.
" WHERE ID='".$FORM_ID.
"'";
1522 $arBinds =
array(
'FORM_TEMPLATE' => $arFields_i[
'FORM_TEMPLATE']);
1530 $FORM_ID =
$DB->Add(
"b_form", $arFields_i,
array(
'FORM_TEMPLATE'));
1533 $FORM_ID = intval($FORM_ID);
1539 $DB->Query(
"DELETE FROM b_form_2_site WHERE FORM_ID='".$FORM_ID.
"'");
1546 INSERT INTO b_form_2_site (FORM_ID, SITE_ID) VALUES (
1548 '".$DB->ForSql($sid,2).
"'
1551 $DB->Query($strSql);
1558 $DB->Query(
"DELETE FROM b_form_menu WHERE FORM_ID='".$FORM_ID.
"'");
1561 foreach (
$arFields[
"arMENU"] as $lid => $menu)
1563 $arFields_i =
array(
1564 "FORM_ID" => $FORM_ID,
1565 "LID" =>
"'".
$DB->ForSql($lid,2).
"'",
1566 "MENU" =>
"'".$DB->ForSql($menu,50).
"'"
1569 $DB->Insert(
"b_form_menu", $arFields_i);
1576 $DB->Query(
"DELETE FROM b_form_2_mail_template WHERE FORM_ID='".$FORM_ID.
"'");
1577 if (is_array(
$arFields[
"arMAIL_TEMPLATE"]))
1582 INSERT INTO b_form_2_mail_template (FORM_ID, MAIL_TEMPLATE_ID) VALUES (
1587 $DB->Query($strSql);
1594 $DB->Query(
"DELETE FROM b_form_2_group WHERE FORM_ID='".$FORM_ID.
"'");
1599 if (intval(
$perm)>0)
1601 $arFields_i =
array(
1602 "FORM_ID" => $FORM_ID,
1603 "GROUP_ID" =>
"'".intval($group_id).
"'",
1604 "PERMISSION" =>
"'".intval(
$perm).
"'"
1606 $DB->Insert(
"b_form_2_group", $arFields_i);
1619 public static function Copy(
$ID, $CHECK_RIGHTS=
"Y")
1626 $arForm = $rsForm->Fetch();
1631 $SID = $arForm[
"SID"];
1632 if (mb_strlen($SID) > 25) $SID = mb_substr($SID, 0, 25);
1633 $SID .=
"_".RandString(5);
1635 $strSql =
"SELECT 'x' FROM b_form WHERE SID='".$DB->ForSql($SID,50).
"'";
1636 $z =
$DB->Query($strSql);
1637 if (!(
$zr =
$z->Fetch()))
break;
1641 "NAME" => $arForm[
"NAME"],
1643 "C_SORT" => $arForm[
"C_SORT"],
1644 "FIRST_SITE_ID" => $arForm[
"FIRST_SITE_ID"],
1645 "BUTTON" => $arForm[
"BUTTON"],
1646 "USE_CAPTCHA" => $arForm[
"USE_CAPTCHA"],
1647 "DESCRIPTION" => $arForm[
"DESCRIPTION"],
1648 "DESCRIPTION_TYPE" => $arForm[
"DESCRIPTION_TYPE"],
1649 "SHOW_TEMPLATE" => $arForm[
"SHOW_TEMPLATE"],
1650 "FORM_TEMPLATE" => $arForm[
"FORM_TEMPLATE"],
1651 "USE_DEFAULT_TEMPLATE" => $arForm[
"USE_DEFAULT_TEMPLATE"],
1652 "SHOW_RESULT_TEMPLATE" => $arForm[
"SHOW_RESULT_TEMPLATE"],
1653 "PRINT_RESULT_TEMPLATE" => $arForm[
"PRINT_RESULT_TEMPLATE"],
1654 "EDIT_RESULT_TEMPLATE" => $arForm[
"EDIT_RESULT_TEMPLATE"],
1655 "FILTER_RESULT_TEMPLATE" => $arForm[
"FILTER_RESULT_TEMPLATE"],
1656 "TABLE_RESULT_TEMPLATE" => $arForm[
"TABLE_RESULT_TEMPLATE"],
1657 "STAT_EVENT1" => $arForm[
"STAT_EVENT1"],
1658 "STAT_EVENT2" => $SID,
1659 "STAT_EVENT3" => $arForm[
"STAT_EVENT3"],
1667 while ($wr=$w->Fetch())
$arGroups[] = $wr[
"ID"];
1674 if (intval($arForm[
"IMAGE_ID"])>0)
1676 $arIMAGE = CFile::MakeFileArray(CFile::CopyFile($arForm[
"IMAGE_ID"]));
1677 $arIMAGE[
"MODULE_ID"] =
"form";
1683 if (intval($NEW_ID)>0)
1686 while ($arStatus = $rsStatus->Fetch())
CFormStatus::Copy($arStatus[
"ID"],
"N", $NEW_ID);
1689 while ($arField = $rsField->Fetch())
1711 $tmp_filename =
$_SERVER[
"DOCUMENT_ROOT"].BX_PERSONAL_ROOT.
"/tmp/form/form_".
$ID.
".php";
1712 if (file_exists($tmp_filename)) @unlink($tmp_filename);
1723 $strSql =
"SELECT IMAGE_ID FROM b_form WHERE ID='$ID' and IMAGE_ID>0";
1724 $z =
$DB->Query($strSql);
1725 while (
$zr =
$z->Fetch()) CFile::Delete(
$zr[
"IMAGE_ID"]);
1730 if (trim($qr[
"MAIL_EVENT_TYPE"]) <>
'')
1734 $e = $em->
GetList(
"id",
"desc",
array(
"EVENT_NAME"=>$qr[
"MAIL_EVENT_TYPE"],
"EVENT_NAME_EXACT_MATCH" =>
"Y"));
1735 while ($er=$e->Fetch()) $em->Delete($er[
"ID"]);
1739 $et->
Delete($qr[
"MAIL_EVENT_TYPE"]);
1743 $DB->Query(
"DELETE FROM b_form_2_site WHERE FORM_ID='$ID'");
1746 $DB->Query(
"DELETE FROM b_form_2_mail_template WHERE FORM_ID='$ID'");
1749 $DB->Query(
"DELETE FROM b_form_menu WHERE FORM_ID='$ID'");
1752 $DB->Query(
"DELETE FROM b_form_2_group WHERE FORM_ID='$ID'");
1755 $DB->Query(
"DELETE FROM b_form WHERE ID='$ID'");
1776 $DB->Query(
"DELETE FROM b_form_result WHERE FORM_ID='$ID'");
1785 public static function SetMailTemplate($WEB_FORM_ID, $ADD_NEW_TEMPLATE=
"Y", $old_SID=
"", $bReturnFullInfo =
false)
1788 $arrReturn =
array();
1789 $WEB_FORM_ID = intval($WEB_FORM_ID);
1791 if ($arrForm = $q->Fetch())
1793 $old_MAIL_EVENT_TYPE =
'';
1794 $MAIL_EVENT_TYPE =
"FORM_FILLING_".$arrForm[
"SID"];
1795 if ($old_SID <>
'') $old_MAIL_EVENT_TYPE =
"FORM_FILLING_".$old_SID;
1800 if ($MAIL_EVENT_TYPE <>
'')
1801 $et->
Delete($MAIL_EVENT_TYPE);
1805 while ($arLang =
$z->Fetch())
1810 $str .=
"#RS_FORM_ID# - ".GetMessage(
"FORM_L_FORM_ID").
"\n";
1811 $str .=
"#RS_FORM_NAME# - ".GetMessage(
"FORM_L_NAME").
"\n";
1812 $str .=
"#RS_FORM_SID# - ".GetMessage(
"FORM_L_SID").
"\n";
1813 $str .=
"#RS_RESULT_ID# - ".GetMessage(
"FORM_L_RESULT_ID").
"\n";
1814 $str .=
"#RS_DATE_CREATE# - ".GetMessage(
"FORM_L_DATE_CREATE").
"\n";
1815 $str .=
"#RS_USER_ID# - ".GetMessage(
"FORM_L_USER_ID").
"\n";
1816 $str .=
"#RS_USER_EMAIL# - ".GetMessage(
"FORM_L_USER_EMAIL").
"\n";
1817 $str .=
"#RS_USER_NAME# - ".GetMessage(
"FORM_L_USER_NAME").
"\n";
1818 $str .=
"#RS_USER_AUTH# - ".GetMessage(
"FORM_L_USER_AUTH").
"\n";
1819 $str .=
"#RS_STAT_GUEST_ID# - ".GetMessage(
"FORM_L_STAT_GUEST_ID").
"\n";
1820 $str .=
"#RS_STAT_SESSION_ID# - ".GetMessage(
"FORM_L_STAT_SESSION_ID").
"\n";
1824 while ($wr=$w->Fetch())
1826 if ($wr[
"RESULTS_TABLE_TITLE"] <>
'')
1828 $FIELD_TITLE = $wr[
"RESULTS_TABLE_TITLE"];
1830 elseif ($wr[
"TITLE"] <>
'')
1832 $FIELD_TITLE = $wr[
"TITLE_TYPE"]==
"html" ?
htmlspecialcharsback(strip_tags($wr[
"TITLE"])) : $wr[
"TITLE"];
1836 $FIELD_TITLE = trim($wr[
"FILTER_TITLE"],
":");
1839 $str .=
"#".$wr[
"SID"].
"# - ".$FIELD_TITLE.
"\n";
1840 $str .=
"#".$wr[
"SID"].
"_RAW# - ".$FIELD_TITLE.
" (".
GetMessage(
'FORM_L_RAW').
")\n";
1841 $strFIELDS .= $FIELD_TITLE.
"\n*******************************\n#".$wr[
"SID"].
"#\n\n";
1846 "LID" => $arLang[
"LID"],
1847 "EVENT_NAME" => $MAIL_EVENT_TYPE,
1848 "NAME" =>
GetMessage(
"FORM_FILLING").
" \"".$arrForm[
"SID"].
"\"",
1849 "DESCRIPTION" =>
$str
1853 if ($old_MAIL_EVENT_TYPE <>
'' && $old_MAIL_EVENT_TYPE!=$MAIL_EVENT_TYPE)
1855 $e = $em->GetList(
"id",
"desc",
array(
"EVENT_NAME"=>$old_MAIL_EVENT_TYPE));
1856 while ($er=$e->Fetch())
1858 $em->Update($er[
"ID"],
array(
"EVENT_NAME"=>$MAIL_EVENT_TYPE));
1860 if ($old_MAIL_EVENT_TYPE <>
'')
1861 $et->Delete($old_MAIL_EVENT_TYPE);
1864 if ($ADD_NEW_TEMPLATE==
"Y")
1866 $z = CSite::GetList();
1867 while ($arSite =
$z->Fetch()) $arrSiteLang[$arSite[
"ID"]] = $arSite[
"LANGUAGE_ID"];
1870 if (is_array($arrFormSite) &&
count($arrFormSite)>0)
1872 foreach($arrFormSite as $sid)
1876 $SUBJECT =
"#SERVER_NAME#: ".GetMessage(
"FORM_FILLING_S").
" [#RS_FORM_ID#] #RS_FORM_NAME#";
1877 $MESSAGE =
"#SERVER_NAME#
1879".GetMessage(
"FORM_FILLING").
": [#RS_FORM_ID#] #RS_FORM_NAME#
1880-------------------------------------------------------
1882".
GetMessage(
"FORM_DATE_CREATE").
"#RS_DATE_CREATE#
1883".
GetMessage(
"FORM_RESULT_ID").
"#RS_RESULT_ID#
1884".
GetMessage(
"FORM_USER").
"[#RS_USER_ID#] #RS_USER_NAME# #RS_USER_AUTH#
1885".
GetMessage(
"FORM_STAT_GUEST_ID").
"#RS_STAT_GUEST_ID#
1886".
GetMessage(
"FORM_STAT_SESSION_ID").
"#RS_STAT_SESSION_ID#
1891http://#SERVER_NAME#/bitrix/admin/form_result_view.php?lang=".$arrSiteLang[$sid].
"&WEB_FORM_ID=#RS_FORM_ID#&RESULT_ID=#RS_RESULT_ID#
1893-------------------------------------------------------
1894".
GetMessage(
"FORM_GENERATED_AUTOMATICALLY").
"
1899 "EVENT_NAME" => $MAIL_EVENT_TYPE,
1901 "EMAIL_FROM" =>
"#DEFAULT_EMAIL_FROM#",
1902 "EMAIL_TO" =>
"#DEFAULT_EMAIL_FROM#",
1903 "SUBJECT" => $SUBJECT,
1904 "MESSAGE" => $MESSAGE,
1905 "BODY_TYPE" =>
"text"
1908 if ($bReturnFullInfo)
1909 $arrReturn[] =
array(
1910 'ID' => $TEMPLATE_ID,
1914 $arrReturn[] = $TEMPLATE_ID;
1937 $check_str1 =
'$FORM->ShowInput(\''.$FIELD_SID.
'\')
';
1938 $check_str2 = '$FORM->ShowInput(
"'.$FIELD_SID.'")
';
1940 return !((mb_strpos($tpl, $check_str1) === false) && (mb_strpos($tpl, $check_str2) === false));
1950 public static function isCAPTCHAInTemplate($tpl)
1952 $check_str = '$FORM->ShowCaptcha
';
1954 return mb_strpos($tpl, $check_str) !== false;
1958 public static function GetByID_admin($WEB_FORM_ID, $current_section = false)
1960 $WEB_FORM_ID = intval($WEB_FORM_ID);
1961 if ($WEB_FORM_ID <= 0)
1964 $dbForm = CForm::GetByID($WEB_FORM_ID);
1965 if ($arForm = $dbForm->Fetch())
1967 $bSimple = COption::GetOptionString("form", "SIMPLE", "Y") == "Y";
1969 if (!$current_section)
1971 $current_script = basename($GLOBALS['APPLICATION
']->GetCurPage());
1973 switch ($current_script)
1975 case 'form_edit.php
':
1976 $current_section = 'form
';
1979 case 'form_field_edit.php
':
1980 case 'form_field_edit_simple.php
':
1981 case 'form_field_list.php
':
1983 if (!$bSimple && isset($_GET['additional
']) && $_GET['additional
'] == 'Y
')
1984 $current_section = 'field
';
1986 $current_section = 'question
';
1990 case 'form_result_edit.php
':
1991 case 'form_result_list.php
':
1992 case 'form_result_view.php
':
1993 $current_section = 'result
';
1996 case 'form_status_edit.php
':
1997 case 'form_status_list.php
':
1998 $current_section = 'status
';
2003 $arForm['ADMIN_MENU
'] = array();
2005 $arForm['ADMIN_MENU
'][] = array(
2006 "ICON" => $current_section == 'form
' ? 'btn_active
' : '',
2007 "TEXT" => GetMessage("FORM_MENU_EDIT"),
2008 "LINK" => "/bitrix/admin/form_edit.php?lang=".LANGUAGE_ID."&ID=".$WEB_FORM_ID,
2009 "TITLE" => htmlspecialcharsbx(str_replace("#NAME#", $arForm["NAME"], GetMessage("FORM_MENU_EDIT_TITLE")))
2012 $arForm['ADMIN_MENU
'][] = array(
2013 "ICON" => $current_section == 'result
' ? 'btn_active
' : '',
2014 "TEXT" => GetMessage("FORM_MENU_RESULTS")
2015 ." (".CFormResult::GetCount($WEB_FORM_ID).")",
2016 "LINK" => "/bitrix/admin/form_result_list.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=".$WEB_FORM_ID,
2017 "TITLE" => htmlspecialcharsbx(str_replace("#NAME#", $arForm["NAME"], GetMessage("FORM_MENU_RESULTS_TITLE")))
2020 $arForm['ADMIN_MENU
'][] = array(
2021 "ICON" => $current_section == 'question
' ? 'btn_active
' : '',
2022 "TEXT" => GetMessage("FORM_MENU_QUESTIONS")
2023 ." (".($bSimple ? $arForm["QUESTIONS"] + $arForm["C_FIELDS"] : $arForm["QUESTIONS"]).")",
2024 "LINK" => "/bitrix/admin/form_field_list.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=".$WEB_FORM_ID,
2025 "TITLE" => htmlspecialcharsbx(str_replace("#NAME#", $arForm["NAME"], GetMessage("FORM_MENU_QUESTIONS_TITLE")))
2030 $arForm['ADMIN_MENU
'][] = array(
2031 "ICON" => $current_section == 'field
' ? 'btn_active
' : '',
2032 "TEXT" => GetMessage("FORM_MENU_FIELDS")
2033 ." (".$arForm["C_FIELDS"].")",
2034 "LINK" => "/bitrix/admin/form_field_list.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=".$WEB_FORM_ID."&additional=Y",
2035 "TITLE" => htmlspecialcharsbx(str_replace("#NAME#", $arForm["NAME"], GetMessage("FORM_MENU_FIELDS_TITLE")))
2038 $arForm['ADMIN_MENU
'][] = array(
2039 "ICON" => $current_section == 'status
' ? 'btn_active
' : '',
2040 "TEXT" => GetMessage("FORM_MENU_STATUSES")
2041 ." (".$arForm["STATUSES"].")",
2042 "LINK" => "/bitrix/admin/form_status_list.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=".$WEB_FORM_ID,
2043 "TITLE" => htmlspecialcharsbx(str_replace("#NAME#", $arForm["NAME"], GetMessage("FORM_MENU_STATUSES_TITLE")))
static getList(array $parameters=array())
static normalizeArrayValuesByInt(&$map, $sorted=true)
static GetList($by='id', $order='desc', $arFilter=[])
static GetList($by='c_sort', $order='asc', $arFilter=[], $SHOW_USERS_AMOUNT="N")
static GetList($by="sort", $order="asc", $arFilter=[])
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
CalendarPeriod($sFromName, $sFromVal, $sToName, $sToVal, $sFormName="skform", $show_select="N", $field_select="class=\"typeselect\"", $field_input="class=\"typeinput\"", $size="10")
htmlspecialcharsback($str)
InputType($strType, $strName, $strValue, $strCmp, $strPrintValue=false, $strPrint="", $field1="", $strId="")
SelectBoxMFromArray($strBoxName, $a, $arr, $strDetText="", $strDetText_selected=false, $size="5", $field1="class='typeselect'")
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
GetTime($timestamp, $type="SHORT", $site=false, $bSearchInSitesOnly=false)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
check_email($email, $strict=false, $domainCheck=false)
CheckDateTime($datetime, $format=false)
SelectBoxFromArray( $strBoxName, $db_array, $strSelectedVal="", $strDetText="", $field1="class='typeselect'", $go=false, $form="form1")
TruncateText($strText, $intLen)
$GLOBALS['____1690880296']
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if(empty($signedUserToken)) $key
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"