1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
form_callformanswer.php
См. документацию.
1<?php
2
4{
5 public static function Copy($ID, $NEW_QUESTION_ID=false)
6 {
8 $ID = intval($ID);
9 $NEW_QUESTION_ID = intval($NEW_QUESTION_ID);
10 $rsAnswer = CFormAnswer::GetByID($ID);
11 if ($arAnswer = $rsAnswer->Fetch())
12 {
14 "QUESTION_ID" => ($NEW_QUESTION_ID>0) ? $NEW_QUESTION_ID : $arAnswer["QUESTION_ID"],
15 "MESSAGE" => $arAnswer["MESSAGE"],
16 "VALUE" => $arAnswer["VALUE"],
17 "C_SORT" => $arAnswer["C_SORT"],
18 "ACTIVE" => $arAnswer["ACTIVE"],
19 "FIELD_TYPE" => $arAnswer["FIELD_TYPE"],
20 "FIELD_WIDTH" => $arAnswer["FIELD_WIDTH"],
21 "FIELD_HEIGHT" => $arAnswer["FIELD_HEIGHT"],
22 "FIELD_PARAM" => $arAnswer["FIELD_PARAM"],
23 );
24 $NEW_ID = CFormAnswer::Set($arFields);
25 return $NEW_ID;
26 }
27 else $strError .= GetMessage("FORM_ERROR_ANSWER_NOT_FOUND")."<br>";
28 return false;
29 }
30
31 public static function Delete($ID, $QUESTION_ID=false)
32 {
33 global $DB, $strError;
34 $ID = intval($ID);
35 $DB->Query("DELETE FROM b_form_answer WHERE ID='".$ID."'");
36 if (intval($QUESTION_ID)>0) $str = " FIELD_ID = ".intval($QUESTION_ID)." and ";
37 $DB->Query("DELETE FROM b_form_result_answer WHERE ".$str." ANSWER_ID='".$ID."'");
38 return true;
39 }
40
41 public static function GetTypeList()
42 {
43 global $bSimple;
44 $arrT = array(
45 "text",
46 "textarea",
47 "radio",
48 "checkbox",
49 "dropdown",
50 "multiselect",
51 "date",
52 "image",
53 "file",
54 "email",
55 "url",
56 "password",
57 "hidden"
58 );
59 //if ($bSimple) $arrT[] = "hidden";
60 $arr = array("reference_id" => $arrT, "reference" => $arrT);
61 return $arr;
62 }
63
64 public static function GetList($QUESTION_ID, $by = 's_sort', $order = 'asc', $arFilter = [])
65 {
66 global $DB;
67 $QUESTION_ID = intval($QUESTION_ID);
68 $arSqlSearch = Array();
69 if (is_array($arFilter))
70 {
71 $filter_keys = array_keys($arFilter);
72 $keyCount = count($filter_keys);
73 for ($i=0; $i<$keyCount; $i++)
74 {
75 $key = $filter_keys[$i];
76 $val = $arFilter[$filter_keys[$i]];
77 if(is_array($val))
78 {
79 if(empty($val))
80 continue;
81 }
82 else
83 {
84 if((string)$val == '' || $val === "NOT_REF")
85 continue;
86 }
87 $match_value_set = (in_array($key."_EXACT_MATCH", $filter_keys));
88 $key = strtoupper($key);
89 switch($key)
90 {
91 case "ID":
92 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
93 $arSqlSearch[] = GetFilterQuery("A.ID",$val,$match);
94 break;
95 case "MESSAGE":
96 case "VALUE":
97 case "FIELD_TYPE":
98 case "FIELD_WIDTH":
99 case "FIELD_HEIGHT":
100 case "FIELD_PARAM":
101 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
102 $arSqlSearch[] = GetFilterQuery("A.".$key, $val, $match);
103 break;
104 case "ACTIVE":
105 $arSqlSearch[] = ($val=="Y") ? "A.ACTIVE='Y'" : "A.ACTIVE='N'";
106 break;
107 }
108 }
109 }
110 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
111 if ($by == "s_id") $strSqlOrder = "ORDER BY A.ID";
112 elseif ($by == "s_c_sort" || $by == "s_sort") $strSqlOrder = "ORDER BY A.C_SORT";
113 else
114 {
115 $strSqlOrder = "ORDER BY A.C_SORT";
116 }
117
118 if ($order != "desc")
119 {
120 $strSqlOrder .= " asc ";
121 }
122 else
123 {
124 $strSqlOrder .= " desc ";
125 }
126
127 $strSql = "
128 SELECT
129 A.ID,
130 A.FIELD_ID,
131 A.FIELD_ID as QUESTION_ID,
132 ".$DB->DateToCharFunction("A.TIMESTAMP_X")." TIMESTAMP_X,
133 A.MESSAGE,
134 A.VALUE,
135 A.FIELD_TYPE,
136 A.FIELD_WIDTH,
137 A.FIELD_HEIGHT,
138 A.FIELD_PARAM,
139 A.C_SORT,
140 A.ACTIVE
141 FROM
142 b_form_answer A
143 WHERE
144 $strSqlSearch
145 and A.FIELD_ID = $QUESTION_ID
146 $strSqlOrder
147 ";
148 //echo "<pre>$strSql</pre>";
149 $res = $DB->Query($strSql);
150
151 return $res;
152 }
153
154 public static function GetByID($ID)
155 {
156 global $DB, $strError;
157 $ID = intval($ID);
158 $strSql = "
159 SELECT
160 A.ID,
161 A.FIELD_ID,
162 A.FIELD_ID as QUESTION_ID,
163 ".$DB->DateToCharFunction("A.TIMESTAMP_X")." TIMESTAMP_X,
164 A.MESSAGE,
165 A.VALUE,
166 A.FIELD_TYPE,
167 A.FIELD_WIDTH,
168 A.FIELD_HEIGHT,
169 A.FIELD_PARAM,
170 A.C_SORT,
171 A.ACTIVE
172 FROM
173 b_form_answer A
174 WHERE
175 ID='$ID'
176 ";
177 //echo $strSql;
178 $res = $DB->Query($strSql);
179 return $res;
180 }
181
182 public static function CheckFields($arFields, $ANSWER_ID=false)
183 {
184 global $strError;
185 $str = "";
186 $ANSWER_ID = intval($ANSWER_ID);
187
188 if (intval($arFields["QUESTION_ID"] ?? 0) > 0) $arFields["FIELD_ID"] = $arFields["QUESTION_ID"];
189 else $arFields["QUESTION_ID"] = $arFields["FIELD_ID"];
190
191 if ($ANSWER_ID<=0 && intval($arFields["QUESTION_ID"])<=0)
192 {
193 $str .= GetMessage("FORM_ERROR_FORGOT_QUESTION_ID")."<br>";
194 }
195
196 if ($ANSWER_ID<=0 || ($ANSWER_ID>0 && is_set($arFields, "MESSAGE")))
197 {
198 if ($arFields["MESSAGE"] == '') $str .= GetMessage("FORM_ERROR_FORGOT_ANSWER_TEXT")."<br>";
199 }
200
201 $strError .= $str;
202 if ($str <> '') return false; else return true;
203 }
204
205 public static function Set($arFields, $ANSWER_ID=false)
206 {
207 global $DB;
208
209 $ANSWER_ID = intval($ANSWER_ID);
210
211 if (CFormAnswer::CheckFields($arFields, $ANSWER_ID))
212 {
213 $arFields_i = array();
214
215 $arFields_i["TIMESTAMP_X"] = $DB->GetNowFunction();
216
217 if (is_set($arFields, "MESSAGE"))
218 $arFields_i["MESSAGE"] = "'".$DB->ForSql($arFields["MESSAGE"],2000)."'";
219
220 if (is_set($arFields, "VALUE"))
221 $arFields_i["VALUE"] = "'".$DB->ForSql($arFields["VALUE"],2000)."'";
222
223 if (is_set($arFields, "ACTIVE"))
224 $arFields_i["ACTIVE"] = ($arFields["ACTIVE"]=="Y") ? "'Y'" : "'N'";
225
226 if (is_set($arFields, "C_SORT"))
227 $arFields_i["C_SORT"] = "'".intval($arFields["C_SORT"])."'";
228
229 if (is_set($arFields, "FIELD_TYPE"))
230 $arFields_i["FIELD_TYPE"] = "'".$DB->ForSql($arFields["FIELD_TYPE"],255)."'";
231
232 if (is_set($arFields, "FIELD_WIDTH"))
233 $arFields_i["FIELD_WIDTH"] = "'".intval($arFields["FIELD_WIDTH"])."'";
234
235 if (is_set($arFields, "FIELD_HEIGHT"))
236 $arFields_i["FIELD_HEIGHT"] = "'".intval($arFields["FIELD_HEIGHT"])."'";
237
238 if (is_set($arFields, "FIELD_PARAM"))
239 $arFields_i["FIELD_PARAM"] = "'".$DB->ForSql($arFields["FIELD_PARAM"],2000)."'";
240
241 if ($ANSWER_ID>0)
242 {
243 $DB->Update("b_form_answer", $arFields_i, "WHERE ID='".$ANSWER_ID."'");
244
245 $arFields_u = array();
246 $arFields_u["ANSWER_TEXT"] = $arFields_i["MESSAGE"];
247 $arFields_u["ANSWER_VALUE"] = $arFields_i["VALUE"];
248 $DB->Update("b_form_result_answer", $arFields_u, "WHERE ANSWER_ID='".$ANSWER_ID."'");
249 }
250 else
251 {
252 if (intval($arFields["QUESTION_ID"])>0) $arFields["FIELD_ID"] = $arFields["QUESTION_ID"];
253 else $arFields["QUESTION_ID"] = $arFields["FIELD_ID"];
254
255 $arFields_i["FIELD_ID"] = "'".intval($arFields["QUESTION_ID"])."'";
256
257 $ANSWER_ID = $DB->Insert("b_form_answer", $arFields_i);
258 $ANSWER_ID = intval($ANSWER_ID);
259 }
260 return $ANSWER_ID;
261 }
262 return false;
263 }
264}
global $APPLICATION
Определения include.php:80
static Delete($ID, $QUESTION_ID=false)
Определения form_callformanswer.php:31
static GetList($QUESTION_ID, $by='s_sort', $order='asc', $arFilter=[])
Определения form_callformanswer.php:64
static Set($arFields, $ANSWER_ID=false)
Определения form_callformanswer.php:205
static CheckFields($arFields, $ANSWER_ID=false)
Определения form_callformanswer.php:182
static GetByID($ID)
Определения form_callformanswer.php:154
static GetTypeList()
Определения form_callformanswer.php:41
static Copy($ID, $NEW_QUESTION_ID=false)
Определения form_callformanswer.php:5
$str
Определения commerceml2.php:63
$arFields
Определения dblapprove.php:5
$arr
Определения file_new.php:624
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
GetFilterSqlSearch($arSqlSearch=array(), $FilterLogic="FILTER_logic")
Определения filter_tools.php:397
GetFilterQuery($field, $val, $procent="Y", $ex_sep=array(), $clob="N", $div_fields="Y", $clob_upper="N")
Определения filter_tools.php:383
if($ajaxMode) $ID
Определения get_user.php:27
$strError
Определения options_user_settings.php:4
global $DB
Определения cron_frame.php:29
is_set($a, $k=false)
Определения tools.php:2133
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$order
Определения payment.php:8
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
$i
Определения factura.php:643
</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."%"
Определения waybill.php:936
$val
Определения options.php:1793
$arFilter
Определения user_search.php:106