1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
filter_dictionary.php
См. документацию.
1
<?php
2
3
require_once(
$_SERVER
[
"DOCUMENT_ROOT"
].
"/bitrix/modules/forum/classes/general/filter_dictionary.php"
);
4
5
class
CFilterDictionary
extends
CAllFilterDictionary
6
{
7
public
static
function
GetList
($arOrder =
array
(
"ID"
=>
"ASC"
),
$arFilter
=
array
(), $bCount =
false
)
8
{
9
global
$DB
;
10
$arSqlSearch =
array
();
11
$strSqlSearch =
""
;
12
$arSqlOrder =
array
();
13
$strSqlOrder =
""
;
14
$arFilter
= (is_array(
$arFilter
) ?
$arFilter
:
array
());
15
16
foreach
(
$arFilter
as
$key
=>
$val
)
17
{
18
$key_res =
CFilterDictionary::GetFilterOperation
(
$key
);
19
$key
= mb_strtoupper($key_res[
"FIELD"
]);
20
$strNegative = $key_res[
"NEGATIVE"
];
21
$strOperation = $key_res[
"OPERATION"
];
22
23
switch
(
$key
)
24
{
25
case
"TYPE"
:
26
case
"TITLE"
:
27
if
(
$val
==
''
)
28
$arSqlSearch[] = ($strNegative==
"Y"
?
"NOT"
:
""
).
"(FD."
.
$key
.
" IS NULL OR LENGTH(FD."
.
$key
.
")<=0)"
;
29
else
30
$arSqlSearch[] = ($strNegative==
"Y"
?
" FD."
.$key.
" IS NULL OR NOT "
:
""
).
"(FD."
.
$key
.
" "
.$strOperation.
" '"
.
$DB
->ForSql(
$val
).
"' )"
;
31
break
;
32
case
"ID"
:
33
if
($strOperation!=
"IN"
)
34
{
35
if
(intval(
$val
)<=0)
36
$arSqlSearch[] = ($strNegative==
"Y"
?
"NOT"
:
""
).
"(FD.ID IS NULL OR FD.ID<=0)"
;
37
else
38
$arSqlSearch[] = ($strNegative==
"Y"
?
" FD.ID IS NULL OR NOT "
:
""
).
"(FD.ID "
.$strOperation.
" "
.intval(
$val
).
" )"
;
39
}
40
else
41
{
42
if
(!is_array(
$val
))
43
$val
= explode(
','
,
$val
);
44
$val_int=
array
();
45
foreach
(
$val
as $v)
46
$val_int[] = intval($v);
47
$val
= implode(
', '
, $val_int);
48
$arSqlSearch[] = ($strNegative==
"Y"
?
" NOT "
:
""
).
"(FD.ID IN ("
.
$DB
->ForSql(
$val
).
") )"
;
49
}
50
break
;
51
}
52
}
53
if
(!empty($arSqlSearch))
54
$strSqlSearch =
"WHERE ("
.implode(
") AND ("
, $arSqlSearch).
")"
;
55
56
foreach
($arOrder as $by =>
$order
)
57
{
58
$by = mb_strtoupper($by);
59
$order
= mb_strtoupper(
$order
);
60
if
(
$order
!=
"ASC"
)
$order
=
"DESC"
;
61
if
($by ==
"ID"
) $arSqlOrder[] =
" FD.ID "
.$order.
" "
;
62
elseif
($by ==
"TITLE"
) $arSqlOrder[] =
" FD.TITLE "
.$order.
" "
;
63
else
64
{
65
$arSqlOrder[] =
" FD.ID "
.$order.
" "
;
66
$by =
"ID"
;
67
}
68
}
69
DelDuplicateSort
($arSqlOrder);
70
if
(!empty($arSqlOrder))
71
$strSqlOrder =
" ORDER BY "
.implode(
", "
, $arSqlOrder);
72
73
if
($bCount)
74
{
75
$strSql =
"SELECT COUNT(FD.ID) as CNT FROM b_forum_dictionary FD "
.$strSqlSearch;
76
$db_res
=
$DB
->Query($strSql);
77
$iCnt = 0;
78
if
(
$ar_res
=
$db_res
->Fetch())
79
$iCnt = intval(
$ar_res
[
"CNT"
]);
80
return
$iCnt;
81
}
82
$strSql =
"SELECT FD.ID, FD.TITLE, FD.TYPE FROM b_forum_dictionary FD "
.$strSqlSearch.$strSqlOrder;
83
$db_res
=
$DB
->Query($strSql);
84
return
$db_res
;
85
}
86
}
87
88
class
CFilterLetter
extends
CAllFilterLetter
89
{
90
public
static
function
GetList
($arOrder =
array
(
"ID"
=>
"ASC"
),
$arFilter
=
array
(), $bCount =
false
)
91
{
92
global
$DB
;
93
$arSqlSearch =
array
();
94
$strSqlSearch =
""
;
95
$arSqlOrder =
array
();
96
$strSqlOrder =
""
;
97
$arFilter
= (is_array(
$arFilter
) ?
$arFilter
:
array
());
98
99
foreach
(
$arFilter
as
$key
=>
$val
)
100
{
101
$key_res =
CFilterDictionary::GetFilterOperation
(
$key
);
102
$key
= mb_strtoupper($key_res[
"FIELD"
]);
103
$strNegative = $key_res[
"NEGATIVE"
];
104
$strOperation = $key_res[
"OPERATION"
];
105
106
switch
(
$key
)
107
{
108
case
"LETTER"
:
109
case
"REPLACEMENT"
:
110
if
(
$val
==
''
)
111
$arSqlSearch[] = ($strNegative==
"Y"
?
"NOT"
:
""
).
"(FL."
.
$key
.
" IS NULL OR LENGTH(FL."
.
$key
.
")<=0)"
;
112
else
113
$arSqlSearch[] = ($strNegative==
"Y"
?
" FL."
.$key.
" IS NULL OR NOT "
:
""
).
"(FL."
.
$key
.
" "
.$strOperation.
" '"
.
$DB
->ForSql(
$val
).
"' )"
;
114
break
;
115
case
"DICTIONARY_ID"
:
116
case
"ID"
:
117
if
($strOperation!=
"IN"
)
118
{
119
if
(intval(
$val
)<=0)
120
$arSqlSearch[] = ($strNegative==
"Y"
?
"NOT"
:
""
).
"(FL."
.
$key
.
" IS NULL OR FL."
.
$key
.
"<=0)"
;
121
else
122
$arSqlSearch[] = ($strNegative==
"Y"
?
" FL."
.$key.
" IS NULL OR NOT "
:
""
).
"(FL."
.
$key
.
" "
.$strOperation.
" "
.intval(
$val
).
" )"
;
123
}
124
else
125
{
126
if
(!is_array(
$val
))
127
$val
= explode(
','
,
$val
);
128
$val_int=
array
();
129
foreach
(
$val
as $v)
130
$val_int[] = intval($v);
131
$val
= implode(
', '
, $val_int);
132
$arSqlSearch[] = ($strNegative==
"Y"
?
" NOT "
:
""
).
"(FL."
.
$key
.
" IN ("
.
$DB
->ForSql(
$val
).
") )"
;
133
}
134
break
;
135
}
136
}
137
if
(!empty($arSqlSearch))
138
$strSqlSearch =
" AND ("
.implode(
") AND ("
, $arSqlSearch).
") "
;
139
140
foreach
($arOrder as $by=>
$order
)
141
{
142
$by = mb_strtoupper($by);
143
$order
= mb_strtoupper(
$order
);
144
if
(
$order
!=
"ASC"
)
$order
=
"DESC"
;
145
if
($by ==
"ID"
) $arSqlOrder[] =
" FL.ID "
.$order.
" "
;
146
elseif
($by ==
"TITLE"
) $arSqlOrder[] =
" FD.TITLE "
.$order.
" "
;
147
elseif
($by ==
"LETTER"
) $arSqlOrder[] =
" FL.LETTER "
.$order.
" "
;
148
elseif
($by ==
"REPLACEMENT"
) $arSqlOrder[] =
" FL.REPLACEMENT "
.$order.
" "
;
149
else
150
{
151
$arSqlOrder[] =
" FL.ID "
.$order.
" "
;
152
$by =
"ID"
;
153
}
154
}
155
DelDuplicateSort
($arSqlOrder);
156
if
(!empty($arSqlOrder))
157
$strSqlOrder =
" ORDER BY "
.implode(
") AND ("
, $arSqlOrder);
158
159
if
($bCount)
160
{
161
$strSql =
"SELECT COUNT(FD.ID) as CNT "
.
162
"FROM b_forum_letter FL, b_forum_dictionary FD "
.
163
"WHERE (FL.DICTIONARY_ID = FD.ID) "
.
164
$strSqlSearch;
165
$db_res
=
$DB
->Query($strSql);
166
$iCnt = 0;
167
if
(
$ar_res
=
$db_res
->Fetch())
168
$iCnt = intval(
$ar_res
[
"CNT"
]);
169
return
$iCnt;
170
}
171
$strSql =
172
"SELECT FL.ID, FL.LETTER, FL.REPLACEMENT, FL.DICTIONARY_ID, FD.TITLE "
.
173
"FROM b_forum_letter FL, b_forum_dictionary FD "
.
174
"WHERE (FL.DICTIONARY_ID = FD.ID) "
.
175
$strSqlSearch.
176
$strSqlOrder;
177
$db_res
=
$DB
->Query($strSql);
178
return
$db_res
;
179
}
180
}
181
182
class
CFilterUnquotableWords
extends
CAllFilterUnquotableWords
183
{
184
public
static
function
GetList
($arOrder =
array
(
"ID"
=>
"ASC"
),
$arFilter
=
array
(), $bCount =
false
)
185
{
186
global
$DB
;
187
$arSqlSearch =
array
();
188
$strSqlSearch =
""
;
189
$arSqlOrder =
array
();
190
$strSqlOrder =
""
;
191
$arFilter
= (is_array(
$arFilter
) ?
$arFilter
:
array
());
192
193
foreach
(
$arFilter
as
$key
=>
$val
)
194
{
195
$key_res =
CFilterUnquotableWords::GetFilterOperation
(
$key
);
196
$key
= mb_strtoupper($key_res[
"FIELD"
]);
197
$strNegative = $key_res[
"NEGATIVE"
];
198
$strOperation = $key_res[
"OPERATION"
];
199
switch
(
$key
)
200
{
201
case
"WORDS"
:
202
case
"USE_IT"
:
203
case
"PATTERN"
:
204
case
"REPLACEMENT"
:
205
case
"DESCRIPTION"
:
206
case
"PATTERN_CREATE"
:
207
if
(
$val
==
''
)
208
$arSqlSearch[] = ($strNegative==
"Y"
?
"NOT"
:
""
).
"(FM."
.
$key
.
" IS NULL OR LENGTH(FM."
.
$key
.
")<=0)"
;
209
else
210
$arSqlSearch[] = ($strNegative==
"Y"
?
" FM."
.$key.
" IS NULL OR NOT "
:
""
).
"(FM."
.
$key
.
" "
.$strOperation.
" '"
.
$DB
->ForSql(
$val
).
"' )"
;
211
break
;
212
case
"ID"
:
213
case
"DICTIONARY_ID"
:
214
if
(intval(
$val
)<=0)
215
$arSqlSearch[] = ($strNegative==
"Y"
?
"NOT"
:
""
).
"(FM."
.
$key
.
" IS NULL OR FM."
.
$key
.
"<=0)"
;
216
else
217
{
218
if
($strOperation!=
"IN"
)
219
{
220
$arSqlSearch[] = ($strNegative==
"Y"
?
" FM."
.$key.
" IS NULL OR NOT "
:
""
).
"(FM."
.
$key
.
" "
.$strOperation.
" "
.intval(
$val
).
" )"
;
221
}
222
else
223
{
224
if
(!is_array(
$val
))
225
$val
= explode(
','
,
$val
);
226
$val_int=
array
();
227
foreach
(
$val
as $v)
228
$val_int[] = intval($v);
229
$val
= implode(
', '
, $val_int);
230
$arSqlSearch[] = ($strNegative==
"Y"
?
" NOT "
:
""
).
"(FM."
.
$key
.
" IN ("
.
$DB
->ForSql(
$val
).
") )"
;
231
}
232
}
233
break
;
234
}
235
}
236
if
(!empty($arSqlSearch))
237
$strSqlSearch =
" WHERE ("
.implode(
") AND ("
, $arSqlSearch).
")"
;
238
239
foreach
($arOrder as $by=>
$order
)
240
{
241
$by = mb_strtoupper($by);
242
$order
= mb_strtoupper(
$order
);
243
if
(
$order
!=
"ASC"
)
$order
=
"DESC"
;
244
if
($by ==
"ID"
) $arSqlOrder[] =
" FM.ID "
.$order.
" "
;
245
elseif
($by ==
"WORDS"
) $arSqlOrder[] =
" FM.WORDS "
.$order.
" "
;
246
elseif
($by ==
"PATTERN"
) $arSqlOrder[] =
" FM.PATTERN "
.$order.
" "
;
247
elseif
($by ==
"REPLACEMENT"
) $arSqlOrder[] =
" FM.REPLACEMENT "
.$order.
" "
;
248
elseif
($by ==
"DESCRIPTION"
) $arSqlOrder[] =
" FM.DESCRIPTION "
.$order.
" "
;
249
elseif
($by ==
"USE_IT"
) $arSqlOrder[] =
" FM.USE_IT "
.$order.
" "
;
250
else
251
{
252
$arSqlOrder[] =
" FM.ID "
.$order.
" "
;
253
$by =
"ID"
;
254
}
255
}
256
DelDuplicateSort
($arSqlOrder);
257
if
(!empty($arSqlOrder))
258
$strSqlOrder =
" ORDER BY "
.implode(
", "
, $arSqlOrder);
259
260
if
($bCount)
261
{
262
$strSql =
263
"SELECT COUNT(FM.ID) as CNT "
.
264
"FROM b_forum_filter FM "
.
265
$strSqlSearch;
266
$db_res
=
$DB
->Query($strSql);
267
$iCnt = 0;
268
if
(
$ar_res
=
$db_res
->Fetch())
269
$iCnt = intval(
$ar_res
[
"CNT"
]);
270
return
$iCnt;
271
}
272
$strSql =
"SELECT FM.ID, FM.DICTIONARY_ID, FM.WORDS, FM.PATTERN, FM.REPLACEMENT, FM.DESCRIPTION, FM.USE_IT, FM.PATTERN_CREATE "
.
273
"FROM b_forum_filter FM "
.
274
$strSqlSearch.
275
$strSqlOrder;
276
277
$db_res
=
$DB
->Query($strSql);
278
return
$db_res
;
279
}
280
}
$db_res
$db_res
Определения
options_user_settings.php:8
$ar_res
$ar_res
Определения
options_user_settings_set.php:16
CAllFilterDictionary
Определения
filter_dictionary.php:13
CAllFilterDictionary\GetFilterOperation
static GetFilterOperation($key)
Определения
filter_dictionary.php:93
CAllFilterLetter
Определения
filter_dictionary.php:141
CAllFilterUnquotableWords
Определения
filter_dictionary.php:238
CAllFilterUnquotableWords\GetFilterOperation
static GetFilterOperation($key)
Определения
filter_dictionary.php:403
CFilterDictionary
Определения
filter_dictionary.php:6
CFilterDictionary\GetList
static GetList($arOrder=array("ID"=>"ASC"), $arFilter=array(), $bCount=false)
Определения
filter_dictionary.php:7
CFilterLetter
Определения
filter_dictionary.php:89
CFilterLetter\GetList
static GetList($arOrder=array("ID"=>"ASC"), $arFilter=array(), $bCount=false)
Определения
filter_dictionary.php:90
CFilterUnquotableWords
Определения
filter_dictionary.php:183
CFilterUnquotableWords\GetList
static GetList($arOrder=array("ID"=>"ASC"), $arFilter=array(), $bCount=false)
Определения
filter_dictionary.php:184
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
$_SERVER
$_SERVER["DOCUMENT_ROOT"]
Определения
cron_frame.php:9
$DB
global $DB
Определения
cron_frame.php:29
DelDuplicateSort
DelDuplicateSort(&$arSort)
Определения
tools.php:2055
$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
$val
$val
Определения
options.php:1793
$arFilter
$arFilter
Определения
user_search.php:106
bitrix
modules
forum
classes
mysql
filter_dictionary.php
Создано системой
1.14.0