1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
form_cform.php
См. документацию.
1<?php
2
3class CForm extends CAllForm
4{
5 public static function GetList($by = 's_sort', $order = 'asc', $arFilter = [], $is_filtered = null, $min_permission = 10)
6 {
7 global $DB, $USER, $strError;
8 $min_permission = intval($min_permission);
9
10 $arSqlSearch = Array();
11 $left_join = '';
12 if (is_array($arFilter))
13 {
14 if (!empty($arFilter["SID"])) $arFilter["VARNAME"] = $arFilter["SID"];
15 elseif (!empty($arFilter["VARNAME"])) $arFilter["SID"] = $arFilter["VARNAME"];
16
17 $filter_keys = array_keys($arFilter);
18 $keyCount = count($filter_keys);
19 for ($i=0; $i<$keyCount; $i++)
20 {
21 $key = $filter_keys[$i];
22 $val = $arFilter[$filter_keys[$i]];
23 if(is_array($val))
24 {
25 if(empty($val))
26 continue;
27 }
28 else
29 {
30 if((string)$val == '' || $val === "NOT_REF")
31 continue;
32 }
33 $match_value_set = (in_array($key."_EXACT_MATCH", $filter_keys));
34 $key = strtoupper($key);
35 switch($key)
36 {
37 case "ID":
38 case "SID":
39 $match = (isset($arFilter[$key."_EXACT_MATCH"]) && $arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
40 $arSqlSearch[] = GetFilterQuery("F.".$key, $val, $match);
41 break;
42 case "NAME":
43 case "DESCRIPTION":
44 $match = (isset($arFilter[$key."_EXACT_MATCH"]) && $arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
45 $arSqlSearch[] = GetFilterQuery("F.".$key, $val, $match);
46 break;
47 case "SITE":
48 if (is_array($val)) $val = implode(" | ", $val);
49 $match = (isset($arFilter[$key."_EXACT_MATCH"]) && $arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
50 $arSqlSearch[] = GetFilterQuery("FS.SITE_ID", $val, $match);
51 $left_join = "LEFT JOIN b_form_2_site FS ON (F.ID = FS.FORM_ID)";
52 break;
53 }
54 }
55 }
56
57 if ($by == "s_id") $strSqlOrder = "ORDER BY F.ID";
58 elseif ($by == "s_c_sort" || $by == "s_sort") $strSqlOrder = "ORDER BY F.C_SORT";
59 elseif ($by == "s_name") $strSqlOrder = "ORDER BY F.NAME";
60 elseif ($by == "s_varname" || $by == "s_sid") $strSqlOrder = "ORDER BY F.SID";
61 else
62 {
63 $strSqlOrder = "ORDER BY F.C_SORT";
64 }
65
66 if ($order!="desc")
67 {
68 $strSqlOrder .= " asc ";
69 }
70 else
71 {
72 $strSqlOrder .= " desc ";
73 }
74
75 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
76 if (CForm::IsAdmin())
77 {
78 $strSql = "
79 SELECT
80 F.*,
81 F.SID VARNAME,
82 F.FIRST_SITE_ID,
83 F.FIRST_SITE_ID LID,
84 ".$DB->DateToCharFunction("F.TIMESTAMP_X")." TIMESTAMP_X,
85 count(distinct D1.ID) C_FIELDS,
86 count(distinct D2.ID) QUESTIONS,
87 count(distinct S.ID) STATUSES
88 FROM
89 b_form F
90 LEFT JOIN b_form_status S ON (S.FORM_ID = F.ID)
91 LEFT JOIN b_form_field D1 ON (D1.FORM_ID = F.ID and D1.ADDITIONAL='Y')
92 LEFT JOIN b_form_field D2 ON (D2.FORM_ID = F.ID and D2.ADDITIONAL<>'Y')
93 $left_join
94 WHERE
95 $strSqlSearch
96 GROUP BY F.ID
97 $strSqlOrder
98 ";
99 }
100 else
101 {
102 $arGroups = $USER->GetUserGroupArray();
103 if (!is_array($arGroups)) $arGroups[] = 2;
104 $groups = implode(",",$arGroups);
105 $def_permission = COption::GetOptionInt("form", "FORM_DEFAULT_PERMISSION", 10);
106 $strSql = "
107 SELECT
108 F.*,
109 F.SID VARNAME,
110 F.FIRST_SITE_ID,
111 F.FIRST_SITE_ID LID,
112 ".$DB->DateToCharFunction("F.TIMESTAMP_X")." TIMESTAMP_X,
113 count(distinct D1.ID) C_FIELDS,
114 count(distinct D2.ID) QUESTIONS,
115 count(distinct S.ID) STATUSES
116 FROM
117 b_form F
118 ".
119 ($def_permission >=$min_permission?
120 " LEFT JOIN b_form_2_group G ON (G.FORM_ID=F.ID and G.GROUP_ID in ($groups)) "
121 :
122 " INNER JOIN b_form_2_group G ON (G.FORM_ID=F.ID and G.PERMISSION>=$min_permission and G.GROUP_ID in ($groups)) "
123 )."
124 LEFT JOIN b_form_status S ON (S.FORM_ID = F.ID)
125 LEFT JOIN b_form_field D1 ON (D1.FORM_ID = F.ID and D1.ADDITIONAL='Y')
126 LEFT JOIN b_form_field D2 ON (D2.FORM_ID = F.ID and D2.ADDITIONAL<>'Y')
127 $left_join
128 WHERE $strSqlSearch ".
129 ($def_permission >=$min_permission?
130 " AND (G.FORM_ID IS NULL OR G.PERMISSION>=$min_permission) "
131 :
132 ""
133 ).
134 "
135
136 GROUP BY F.ID
137 $strSqlOrder
138 ";
139 }
140
141 $res = $DB->Query($strSql);
142
143 return $res;
144 }
145
146 public static function GetByID($ID, $GET_BY_SID="N")
147 {
148 global $DB, $strError;
149
150 $where = ($GET_BY_SID=="N") ? " F.ID = '".intval($ID)."' " : " F.SID='".$DB->ForSql($ID,50)."' ";
151 $strSql = "
152 SELECT
153 F.*,
154 F.FIRST_SITE_ID,
155 F.FIRST_SITE_ID LID,
156 F.SID,
157 F.SID VARNAME,
158 ".$DB->DateToCharFunction("F.TIMESTAMP_X")." TIMESTAMP_X,
159 count(distinct D1.ID) C_FIELDS,
160 count(distinct D2.ID) QUESTIONS,
161 count(distinct S.ID) STATUSES
162 FROM b_form F
163 LEFT JOIN b_form_status S ON (S.FORM_ID = F.ID)
164 LEFT JOIN b_form_field D1 ON (D1.FORM_ID = F.ID and D1.ADDITIONAL='Y')
165 LEFT JOIN b_form_field D2 ON (D2.FORM_ID = F.ID and D2.ADDITIONAL<>'Y')
166 WHERE
167 $where
168 GROUP BY
169 F.ID
170 ";
171
172 $res = $DB->Query($strSql);
173 return $res;
174 }
175
176 public static function GetFormTemplateByID($ID, $GET_BY_SID="N")
177 {
178 global $DB, $strError;
179 $where = ($GET_BY_SID=="N") ? " F.ID = '".intval($ID)."' " : " F.SID='".$DB->ForSql($ID,50)."' ";
180 $strSql = "
181 SELECT
182 F.FORM_TEMPLATE FT
183 FROM b_form F
184 WHERE
185 $where
186 ";
187
188 $res = $DB->Query($strSql);
189 if ($arRes = $res->Fetch()) return $arRes["FT"];
190 else return "";
191 }
192}
Определения form_callform.php:7
static IsAdmin()
Определения form_callform.php:8
Определения form_cform.php:4
static GetList($by='s_sort', $order='asc', $arFilter=[], $is_filtered=null, $min_permission=10)
Определения form_cform.php:5
static GetByID($ID, $GET_BY_SID="N")
Определения form_cform.php:146
static GetFormTemplateByID($ID, $GET_BY_SID="N")
Определения form_cform.php:176
$arGroups
Определения options.php:1766
$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
global $USER
Определения csv_new_run.php:40
$groups
Определения options.php:30
$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
$arRes
Определения options.php:104
$arFilter
Определения user_search.php:106