8 $WEB_FORM_ID = intval($WEB_FORM_ID);
10 if ($get_fields <>
'' && $get_fields!=
"ALL")
13 $str =
"and ADDITIONAL='$get_fields'";
15 $arSqlSearch = Array();
29 $keyCount =
count($filter_keys);
30 for (
$i=0;
$i<$keyCount;
$i++)
34 if ((
string)
$val ==
'' ||
$val==
"NOT_REF")
38 $match_value_set = (in_array(
$key.
"_EXACT_MATCH", $filter_keys));
44 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"N" && $match_value_set) ?
"Y" :
"N";
49 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"Y" && $match_value_set) ?
"N" :
"Y";
53 case "IN_RESULTS_TABLE":
54 case "IN_EXCEL_TABLE":
57 $arSqlSearch[] = (
$val==
"Y") ?
"F.".
$key.
"='Y'" :
"F.".$key.
"='N'";
62 if ($by ==
"s_id") $strSqlOrder =
"ORDER BY F.ID";
63 elseif ($by ==
"s_active") $strSqlOrder =
"ORDER BY F.ACTIVE";
64 elseif ($by ==
"s_varname" ||
65 $by ==
"s_sid") $strSqlOrder =
"ORDER BY F.SID";
66 elseif ($by ==
"s_c_sort" ||
67 $by ==
"s_sort") $strSqlOrder =
"ORDER BY F.C_SORT";
68 elseif ($by ==
"s_title") $strSqlOrder =
"ORDER BY F.TITLE";
69 elseif ($by ==
"s_comments") $strSqlOrder =
"ORDER BY F.COMMENTS";
70 elseif ($by ==
"s_required") $strSqlOrder =
"ORDER BY F.REQUIRED";
71 elseif ($by ==
"s_in_results_table") $strSqlOrder =
"ORDER BY F.IN_RESULTS_TABLE";
72 elseif ($by ==
"s_in_excel_table") $strSqlOrder =
"ORDER BY F.IN_EXCEL_TABLE";
73 elseif ($by ==
"s_field_type") $strSqlOrder =
"ORDER BY F.FIELD_TYPE";
76 $strSqlOrder =
"ORDER BY F.C_SORT";
81 $strSqlOrder .=
" asc ";
85 $strSqlOrder .=
" desc ";
93 ".$DB->DateToCharFunction(
"F.TIMESTAMP_X").
" TIMESTAMP_X
99 and FORM_ID='$WEB_FORM_ID'
115 ".$DB->DateToCharFunction(
"F.TIMESTAMP_X").
" TIMESTAMP_X
123 public static function GetBySID($SID, $FORM_ID =
false)
125 $FORM_ID = intval($FORM_ID);
132 ".$DB->DateToCharFunction(
"F.TIMESTAMP_X").
" TIMESTAMP_X
134 WHERE F.SID = '".
$DB->ForSql($SID,50).
"'
137 $strSql .=
" AND F.FORM_ID='".$DB->ForSql($FORM_ID).
"'";
147 $WEB_FORM_ID = intval($WEB_FORM_ID);
148 $strSql =
"SELECT max(C_SORT) as MAX_SORT FROM b_form_field WHERE FORM_ID='$WEB_FORM_ID'";
149 $z =
$DB->Query($strSql);
151 return (intval(
$zr[
"MAX_SORT"])+100);
154 public static function Copy(
$ID, $CHECK_RIGHTS=
"Y", $NEW_FORM_ID=
false)
158 $NEW_FORM_ID = intval($NEW_FORM_ID);
160 if ($arField = $rsField->Fetch())
172 if ($NEW_F_RIGHT>=30) $RIGHT_OK =
"Y";
187 $SID = $arField[
"SID"];
188 if (mb_strlen($SID) > 44) $SID = mb_substr($SID, 0, 44);
189 $SID .=
"_".RandString(5);
192 $strSql =
"SELECT 'x' FROM b_form WHERE SID='".$DB->ForSql($SID,50).
"'";
193 $z =
$DB->Query($strSql);
194 if (!(
$zr =
$z->Fetch()))
196 $strSql =
"SELECT 'x' FROM b_form_field WHERE SID='".$DB->ForSql($SID,50).
"' AND FORM_ID='".$arField[
"FORM_ID"].
"'";
197 $t =
$DB->Query($strSql);
198 if (!($tr = $t->Fetch()))
break;
204 $SID = $arField[
"SID"];
208 "FORM_ID" => ($NEW_FORM_ID>0) ? $NEW_FORM_ID : $arField[
"FORM_ID"],
209 "ACTIVE" => $arField[
"ACTIVE"],
210 "TITLE" => $arField[
"TITLE"],
211 "TITLE_TYPE" => $arField[
"TITLE_TYPE"],
213 "C_SORT" => $arField[
"C_SORT"],
214 "ADDITIONAL" => $arField[
"ADDITIONAL"],
215 "REQUIRED" => $arField[
"REQUIRED"],
216 "IN_FILTER" => $arField[
"IN_FILTER"],
217 "IN_RESULTS_TABLE" => $arField[
"IN_RESULTS_TABLE"],
218 "IN_EXCEL_TABLE" => $arField[
"IN_EXCEL_TABLE"],
219 "FIELD_TYPE" => $arField[
"FIELD_TYPE"],
220 "COMMENTS" => $arField[
"COMMENTS"],
221 "FILTER_TITLE" => $arField[
"FILTER_TITLE"],
222 "RESULTS_TABLE_TITLE" => $arField[
"RESULTS_TABLE_TITLE"],
225 if (intval($arField[
"IMAGE_ID"])>0)
227 $arIMAGE = CFile::MakeFileArray(CFile::CopyFile($arField[
"IMAGE_ID"]));
228 $arIMAGE[
"MODULE_ID"] =
"form";
233 while (
$zr =
$z->Fetch())
235 if ($arField[
"ADDITIONAL"]!=
"Y")
$arFields[
"arFILTER_".$zr[
"PARAMETER_NAME"]][] =
$zr[
"FILTER_TYPE"];
239 if (intval($NEW_ID)>0)
241 if ($arField[
"ADDITIONAL"]!=
"Y")
244 while ($arAnswer = $rsAnswer->Fetch())
248 while (
$arVal = $dbValidators->Fetch())
268 if ($arField = $rsField->Fetch())
270 $WEB_FORM_ID = intval($arField[
"FORM_ID"]);
279 $strSql =
"SELECT IMAGE_ID FROM b_form_field WHERE ID='$ID' and IMAGE_ID>0";
280 $z =
$DB->Query($strSql);
281 while (
$zr =
$z->Fetch())
282 CFile::Delete(
$zr[
"IMAGE_ID"]);
284 $DB->Query(
"DELETE FROM b_form_answer WHERE FIELD_ID='$ID'");
286 $DB->Query(
"DELETE FROM b_form_field_filter WHERE FIELD_ID='$ID'");
288 $DB->Query(
"DELETE FROM b_form_field WHERE ID='$ID'");
298 public static function Reset(
$ID, $CHECK_RIGHTS=
"Y")
304 if ($arField = $rsField->Fetch())
306 $WEB_FORM_ID = intval($arField[
"FORM_ID"]);
311 $DB->Query(
"DELETE FROM b_form_result_answer WHERE FIELD_ID='".
$ID.
"'");
321 public static function GetFilterTypeList(&$arrUSER, &$arrANSWER_TEXT, &$arrANSWER_VALUE, &$arrFIELD)
324 "reference_id" =>
array(
330 "reference" =>
array(
337 $arrANSWER_TEXT =
array(
338 "reference_id" =>
array(
344 "reference" =>
array(
351 $arrANSWER_VALUE =
array(
352 "reference_id" =>
array(
358 "reference" =>
array(
366 "reference_id" =>
array(
372 "reference" =>
array(
384 "reference_id" =>
array(
388 "reference" =>
array(
400 $WEB_FORM_ID = intval($WEB_FORM_ID);
401 $arSqlSearch = Array();
406 $keyCount =
count($filter_keys);
407 for (
$i=0;
$i<$keyCount;
$i++)
411 if ((
string)
$val ==
'' ||
$val==
"NOT_REF")
415 $match_value_set = (in_array(
$key.
"_EXACT_MATCH", $filter_keys));
420 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"N" && $match_value_set) ?
"Y" :
"N";
424 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"N" && $match_value_set) ?
"Y" :
"N";
428 $arSqlSearch[] = (
$val==
"Y") ?
"F.ACTIVE='Y'" :
"F.ACTIVE='N'";
431 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"N" && $match_value_set) ?
"Y" :
"N";
434 case "PARAMETER_NAME":
435 $match = (
$arFilter[
$key.
"_EXACT_MATCH"]==
"Y" && $match_value_set) ?
"N" :
"Y";
451 b_form_field_filter L
454 and F.FORM_ID = $WEB_FORM_ID
455 and F.IN_FILTER = 'Y'
456 and L.FIELD_ID = F.ID
457 ORDER BY F.C_SORT, L.PARAMETER_NAME, L.FILTER_TYPE desc
467 $FIELD_ID = intval($FIELD_ID);
469 if ($FORM_ID<=0)
$str .=
GetMessage(
"FORM_ERROR_FORM_ID_NOT_DEFINED").
"<br>";
477 if ($F_RIGHT>=30) $RIGHT_OK =
"Y";
494 $strSql =
"SELECT ID, ADDITIONAL FROM b_form_field WHERE SID='".$DB->ForSql(trim(
$arFields[
"SID"]),50).
"' and ID<>'".$FIELD_ID.
"' AND FORM_ID='".
$DB->ForSql(
$arFields[
"FORM_ID"]).
"'";
495 $z =
$DB->Query($strSql);
496 if (
$zr =
$z->Fetch())
498 $s = (
$zr[
"ADDITIONAL"]==
"Y") ?
501 $s = str_replace(
"#ID#",
$zr[
"ID"],$s);
506 $strSql =
"SELECT ID FROM b_form WHERE SID='".$DB->ForSql(trim(
$arFields[
"SID"]),50).
"'";
507 $z =
$DB->Query($strSql);
508 if (
$zr =
$z->Fetch())
511 $s = str_replace(
"#ID#",
$zr[
"ID"],$s);
527 if (
$str <> '')
return false;
else return true;
530 public static function Set(
$arFields, $FIELD_ID=
false, $CHECK_RIGHTS=
"Y", $UPDATE_FILTER=
"Y")
536 $arFields_i =
array();
541 $arFields_i[
"TIMESTAMP_X"] =
$DB->GetNowFunction();
544 $arFields_i[
"ACTIVE"] = (
$arFields[
"ACTIVE"]==
"Y") ?
"'Y'" :
"'N'";
547 $arFields_i[
"TITLE"] =
"'".$DB->ForSql(
$arFields[
"TITLE"], 2000).
"'";
550 $arFields_i[
"TITLE_TYPE"] = (
$arFields[
"TITLE_TYPE"]==
"html") ?
"'html'" :
"'text'";
553 $arFields_i[
"SID"] =
"'".$DB->ForSql(
$arFields[
"SID"],50).
"'";
556 $arFields_i[
"C_SORT"] =
"'".intval(
$arFields[
"C_SORT"]).
"'";
559 $arFields_i[
"ADDITIONAL"] = (
$arFields[
"ADDITIONAL"]==
"Y") ?
"'Y'" :
"'N'";
562 $arFields_i[
"REQUIRED"] = (
$arFields[
"REQUIRED"]==
"Y") ?
"'Y'" :
"'N'";
565 $arFields_i[
"IN_RESULTS_TABLE"] = (
$arFields[
"IN_RESULTS_TABLE"]==
"Y") ?
"'Y'" :
"'N'";
568 $arFields_i[
"IN_EXCEL_TABLE"] = (
$arFields[
"IN_EXCEL_TABLE"]==
"Y") ?
"'Y'" :
"'N'";
571 $arFields_i[
"FIELD_TYPE"] =
"'".$DB->ForSql(
$arFields[
"FIELD_TYPE"],50).
"'";
574 $arFields_i[
"COMMENTS"] =
"'".$DB->ForSql(
$arFields[
"COMMENTS"],2000).
"'";
577 $arFields_i[
"FILTER_TITLE"] =
"'".$DB->ForSql(
$arFields[
"FILTER_TITLE"],2000).
"'";
580 $arFields_i[
"RESULTS_TABLE_TITLE"] =
"'".$DB->ForSql(
$arFields[
"RESULTS_TABLE_TITLE"],2000).
"'";
584 if (!array_key_exists(
"MODULE_ID",
$arFields[
"arIMAGE"]) ||
$arFields[
"arIMAGE"][
"MODULE_ID"] ==
'')
585 $arFields[
"arIMAGE"][
"MODULE_ID"] =
"form";
587 $fid = CFile::SaveFile(
$arFields[
"arIMAGE"],
"form");
588 if (intval($fid)>0) $arFields_i[
"IMAGE_ID"] = intval($fid);
589 else $arFields_i[
"IMAGE_ID"] =
"null";
592 $FIELD_ID = intval($FIELD_ID);
596 $DB->Update(
"b_form_field", $arFields_i,
"WHERE ID='".$FIELD_ID.
"'");
600 $arFields_i[
"FORM_ID"] =
"'".intval(
$arFields[
"FORM_ID"]).
"'";
601 $FIELD_ID =
$DB->Insert(
"b_form_field", $arFields_i);
609 if (is_array($arANSWER) &&
count($arANSWER)>0)
611 $arrAnswers =
array();
614 $arrAnswers[] =
$ar[
"ID"];
616 foreach($arANSWER as $arA)
618 $answer_id = in_array($arA[
"ID"], $arrAnswers) ? intval($arA[
"ID"]) : 0;
622 if ($answer_id>0 || ($answer_id<=0 && $arA[
"MESSAGE"] <>
''))
625 "FIELD_ID" => $FIELD_ID,
626 "MESSAGE" => $arA[
"MESSAGE"],
627 "VALUE" => $arA[
"VALUE"],
628 "C_SORT" => $arA[
"C_SORT"],
629 "ACTIVE" => $arA[
"ACTIVE"],
630 "FIELD_TYPE" => $arA[
"FIELD_TYPE"],
631 "FIELD_WIDTH" => $arA[
"FIELD_WIDTH"],
632 "FIELD_HEIGHT" => $arA[
"FIELD_HEIGHT"],
633 "FIELD_PARAM" => $arA[
"FIELD_PARAM"],
644 if ($UPDATE_FILTER ==
'Y')
647 $DB->Query(
"UPDATE b_form_field SET IN_FILTER='N' WHERE ID='".$FIELD_ID.
"'");
648 $arrFilterType =
array(
649 "arFILTER_USER" =>
"USER",
650 "arFILTER_ANSWER_TEXT" =>
"ANSWER_TEXT",
651 "arFILTER_ANSWER_VALUE" =>
"ANSWER_VALUE",
652 "arFILTER_FIELD" =>
"USER",
655 foreach ($arrFilterType as
$key => $value)
659 $strSql =
"DELETE FROM b_form_field_filter WHERE FIELD_ID='".$FIELD_ID.
"' and PARAMETER_NAME='".$value.
"'";
667 "FIELD_ID" =>
"'".intval($FIELD_ID).
"'",
668 "FILTER_TYPE" =>
"'".
$DB->ForSql(
$type,50).
"'",
669 "PARAMETER_NAME" =>
"'".$value.
"'",
671 $DB->Insert(
"b_form_field_filter",$arFields_i);
679 $DB->Query(
"UPDATE b_form_field SET IN_FILTER='Y' WHERE ID='".$FIELD_ID.
"'");
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
GetMessage($name, $aReplace=null)
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."%"