1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
form_cform.php
См. документацию.
1
<?php
2
3
class
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
}
CAllForm
Определения
form_callform.php:7
CAllForm\IsAdmin
static IsAdmin()
Определения
form_callform.php:8
CForm
Определения
form_cform.php:4
CForm\GetList
static GetList($by='s_sort', $order='asc', $arFilter=[], $is_filtered=null, $min_permission=10)
Определения
form_cform.php:5
CForm\GetByID
static GetByID($ID, $GET_BY_SID="N")
Определения
form_cform.php:146
CForm\GetFormTemplateByID
static GetFormTemplateByID($ID, $GET_BY_SID="N")
Определения
form_cform.php:176
$arGroups
$arGroups
Определения
options.php:1766
$res
$res
Определения
filter_act.php:7
GetFilterSqlSearch
GetFilterSqlSearch($arSqlSearch=array(), $FilterLogic="FILTER_logic")
Определения
filter_tools.php:397
GetFilterQuery
GetFilterQuery($field, $val, $procent="Y", $ex_sep=array(), $clob="N", $div_fields="Y", $clob_upper="N")
Определения
filter_tools.php:383
$ID
if($ajaxMode) $ID
Определения
get_user.php:27
$strError
$strError
Определения
options_user_settings.php:4
$DB
global $DB
Определения
cron_frame.php:29
$USER
global $USER
Определения
csv_new_run.php:40
$groups
$groups
Определения
options.php:30
$order
$order
Определения
payment.php:8
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
$key
if(empty($signedUserToken)) $key
Определения
quickway.php:257
$i
$i
Определения
factura.php:643
count
</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
$val
Определения
options.php:1793
$arRes
$arRes
Определения
options.php:104
$arFilter
$arFilter
Определения
user_search.php:106
bitrix
modules
form
classes
mysql
form_cform.php
Создано системой
1.14.0