1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
comp_parameters.php
См. документацию.
1
<?php
2
IncludeModuleLangFile
(__FILE__);
3
4
class
CSearchParameters
5
{
6
public
static
function
ConvertParamsToFilter
(
$arParams
, $strFilterParamName)
7
{
8
$exFILTER = [];
9
10
if
(!is_array(
$arParams
[$strFilterParamName]) &&
$arParams
[$strFilterParamName] <>
''
)
11
{
12
$arParams
[$strFilterParamName] = [
$arParams
[$strFilterParamName]];
13
}
14
15
if
(is_array(
$arParams
[$strFilterParamName]))
16
{
17
foreach
(
$arParams
[$strFilterParamName] as $strFILTER)
18
{
19
switch
($strFILTER)
20
{
21
case
'main'
:
22
$exFILTER[] =
CSearchParameters::_main
(
$arParams
[$strFilterParamName .
'_main'
] ??
null
);
23
break
;
24
case
'forum'
:
25
if
(
IsModuleInstalled
(
'forum'
))
26
{
27
$exFILTER[] =
CSearchParameters::_forum
(
$arParams
[$strFilterParamName .
'_forum'
] ??
null
);
28
}
29
break
;
30
case
'blog'
:
31
$exFILTER[] =
CSearchParameters::_blog
(
$arParams
[$strFilterParamName .
'_blog'
] ??
null
);
32
break
;
33
case
'microblog'
:
34
$exFILTER[] = [
35
'=MODULE_ID'
=>
'blog'
,
36
'PARAM1'
=>
'MICROBLOG'
,
37
];
38
break
;
39
case
'socialnetwork'
:
40
$exFILTER[] =
CSearchParameters::_socialnetwork
(
$arParams
[$strFilterParamName .
'_socialnetwork'
] ??
null
);
41
break
;
42
case
'socialnetwork_user'
:
43
$exFILTER[] =
CSearchParameters::_socialnetwork_user
(
$arParams
[$strFilterParamName .
'_socialnetwork_user'
] ??
null
);
44
break
;
45
case
'intranet'
:
46
$exFILTER[] = [
47
'=MODULE_ID'
=>
'intranet'
,
48
];
49
break
;
50
case
'crm'
:
51
$exFILTER[] = [
52
'=MODULE_ID'
=>
'crm'
,
53
];
54
break
;
55
case
'disk'
:
56
$exFILTER[] = [
57
'=MODULE_ID'
=>
'disk'
,
58
];
59
break
;
60
case
'no'
:
61
break
;
62
default
:
63
if
(mb_strpos($strFILTER,
'iblock_'
) === 0)
64
{
65
$exFILTER[] =
CSearchParameters::_iblock
(
$arParams
[$strFilterParamName .
'_'
. $strFILTER] ??
null
, $strFILTER);
66
}
67
else
68
{
69
$exFILTER[] = [
70
'=MODULE_ID'
=> $strFILTER,
71
];
72
}
73
break
;
74
}
75
}
76
}
77
78
return
$exFILTER;
79
}
80
81
public
static
function
GetFilterDropDown
($bFilter =
false
)
82
{
83
if
($bFilter)
84
{
85
$arrDropdown = [
86
'no'
=>
GetMessage
(
'SEARCH_CP_NO_LIMIT'
),
87
'main'
=>
'[main] '
.
GetMessage
(
'SEARCH_CP_STATIC'
),
88
];
89
}
90
else
91
{
92
$arrDropdown = [];
93
}
94
95
if
(
IsModuleInstalled
(
'forum'
))
96
{
97
$arrDropdown[
'forum'
] =
'[forum] '
.
GetMessage
(
'SEARCH_CP_FORUM'
);
98
}
99
100
if
(CModule::IncludeModule(
'iblock'
))
101
{
102
$rsType =
CIBlockType::GetList
([
'sort'
=>
'asc'
], [
'ACTIVE'
=>
'Y'
]);
103
while
(
$arr
= $rsType->Fetch())
104
{
105
if
(
$ar
=
CIBlockType::GetByIDLang
(
$arr
[
'ID'
], LANGUAGE_ID))
106
{
107
$arrDropdown[
'iblock_'
.
$arr
[
'ID'
]] =
'[iblock_'
.
$arr
[
'ID'
] .
'] '
.
$ar
[
'~NAME'
];
108
}
109
}
110
}
111
112
if
(
IsModuleInstalled
(
'blog'
))
113
{
114
$arrDropdown[
'blog'
] =
'[blog] '
.
GetMessage
(
'SEARCH_CP_BLOG'
);
115
if
($bFilter)
116
{
117
$arrDropdown[
'microblog'
] =
'[microblog] '
.
GetMessage
(
'SEARCH_CP_MICROBLOG'
);
118
}
119
}
120
121
if
(
IsModuleInstalled
(
'socialnetwork'
))
122
{
123
$arrDropdown[
'socialnetwork'
] =
'[socialnetwork] '
.
GetMessage
(
'SEARCH_CP_SOCNET'
);
124
$arrDropdown[
'socialnetwork_user'
] =
'[socialnetwork_user] '
.
GetMessage
(
'SEARCH_CP_SOCNET_USER'
);
125
}
126
127
if
(
IsModuleInstalled
(
'intranet'
))
128
{
129
$arrDropdown[
'intranet'
] =
'[intranet] '
.
GetMessage
(
'SEARCH_CP_INTRANET_USERS'
);
130
}
131
132
if
(
IsModuleInstalled
(
'crm'
))
133
{
134
$arrDropdown[
'crm'
] =
'[crm] '
.
GetMessage
(
'SEARCH_CP_CRM'
);
135
}
136
137
if
(
IsModuleInstalled
(
'disk'
))
138
{
139
$arrDropdown[
'disk'
] =
'[disk] '
.
GetMessage
(
'SEARCH_CP_DISK'
);
140
}
141
142
return
$arrDropdown;
143
}
144
145
public
static
function
GetModulesList
()
146
{
147
$result
= [];
148
foreach
(
GetModuleEvents
(
'search'
,
'OnReindex'
,
true
) as $arEvent)
149
{
150
if
(!array_key_exists($arEvent[
'TO_MODULE_ID'
],
$result
))
151
{
152
$module = $arEvent[
'TO_MODULE_ID'
];
153
154
if
(
IsModuleInstalled
($module))
155
{
156
$obModule = CModule::CreateModuleObject($module);
157
if
($obModule)
158
{
159
$result
[$module] =
'['
. $module .
'] '
. $obModule->MODULE_NAME;
160
}
161
}
162
}
163
}
164
165
ksort(
$result
);
166
return
$result
;
167
}
168
169
public
static
function
AddFilterParams
(&$arComponentParameters, $arCurrentValues,
$name
, $parent, $MULTIPLE =
'Y'
)
170
{
171
$arComponentParameters[
'PARAMETERS'
][
$name
] = [
172
'PARENT'
=> $parent,
173
'NAME'
=>
GetMessage
(
'SEARCH_CP_WHERE_FILTER'
),
174
'TYPE'
=>
'LIST'
,
175
'MULTIPLE'
=> $MULTIPLE,
176
'VALUES'
=>
CSearchParameters::GetFilterDropDown
(
true
),
177
'DEFAULT'
=>
'all'
,
178
'REFRESH'
=>
'Y'
,
179
];
180
181
if
(!is_array($arCurrentValues[
$name
]) && $arCurrentValues[
$name
] <>
''
)
182
{
183
$arCurrentValues[
$name
] = [$arCurrentValues[
$name
]];
184
}
185
186
if
(is_array($arCurrentValues[
$name
]))
187
{
188
foreach
($arCurrentValues[
$name
] as $strFILTER)
189
{
190
if
($strFILTER ==
'main'
)
191
{
192
$arComponentParameters[
'PARAMETERS'
][
$name
.
'_'
. $strFILTER] = [
193
'PARENT'
=> $parent,
194
'NAME'
=>
GetMessage
(
'SEARCH_CP_URL'
),
195
'TYPE'
=>
'STRING'
,
196
'MULTIPLE'
=> $MULTIPLE,
197
'ADDITIONAL_VALUES'
=>
'Y'
,
198
'DEFAULT'
=>
''
,
199
];
200
}
201
elseif
($strFILTER ==
'forum'
)
202
{
203
$arrFILTER = [];
204
if
(CModule::IncludeModule(
'forum'
))
205
{
206
$arrFILTER[
'all'
] =
GetMessage
(
'SEARCH_CP_ALL'
);
207
$rsForum =
CForumNew::GetList
();
208
while
($arForum = $rsForum->Fetch())
209
{
210
$arrFILTER[$arForum[
'ID'
]] = $arForum[
'NAME'
];
211
}
212
}
213
214
$arComponentParameters[
'PARAMETERS'
][
$name
.
'_'
. $strFILTER] = [
215
'PARENT'
=> $parent,
216
'NAME'
=>
GetMessage
(
'SEARCH_CP_FORUM'
),
217
'TYPE'
=>
'LIST'
,
218
'MULTIPLE'
=> $MULTIPLE,
219
'VALUES'
=> $arrFILTER,
220
'ADDITIONAL_VALUES'
=>
'N'
,
221
'DEFAULT'
=>
'all'
,
222
];
223
}
224
elseif
(mb_strpos($strFILTER,
'iblock_'
) === 0)
225
{
226
$arrFILTER = [];
227
if
(CModule::IncludeModule(
'iblock'
))
228
{
229
$arrFILTER[
'all'
] =
GetMessage
(
'SEARCH_CP_ALL'
);
230
$rsIBlock = CIBlock::GetList([
'SORT'
=>
'ASC'
], [
'TYPE'
=> mb_substr($strFILTER, 7)]);
231
while
(
$arIBlock
= $rsIBlock->Fetch())
232
{
233
$arrFILTER[
$arIBlock
[
'ID'
]] =
$arIBlock
[
'NAME'
];
234
}
235
}
236
237
$arComponentParameters[
'PARAMETERS'
][
$name
.
'_'
. $strFILTER] = [
238
'PARENT'
=> $parent,
239
'NAME'
=>
GetMessage
(
'SEARCH_CP_IBLOCK_TYPE'
, [
'#TYPE_ID#'
=> $strFILTER]),
240
'TYPE'
=>
'LIST'
,
241
'MULTIPLE'
=> $MULTIPLE,
242
'VALUES'
=> $arrFILTER,
243
'ADDITIONAL_VALUES'
=>
'N'
,
244
'DEFAULT'
=>
'all'
,
245
];
246
}
247
elseif
($strFILTER ==
'blog'
)
248
{
249
$arrFILTER = [];
250
if
(CModule::IncludeModule(
'blog'
))
251
{
252
$arrFILTER[
'all'
] =
GetMessage
(
'SEARCH_CP_ALL'
);
253
$rsBlog =
CBlog::GetList
();
254
while
($arBlog = $rsBlog->Fetch())
255
{
256
$arrFILTER[$arBlog[
'ID'
]] = $arBlog[
'NAME'
];
257
}
258
}
259
260
$arComponentParameters[
'PARAMETERS'
][
$name
.
'_'
. $strFILTER] = [
261
'PARENT'
=> $parent,
262
'NAME'
=>
GetMessage
(
'SEARCH_CP_BLOG'
),
263
'TYPE'
=>
'LIST'
,
264
'MULTIPLE'
=> $MULTIPLE,
265
'VALUES'
=> $arrFILTER,
266
'ADDITIONAL_VALUES'
=>
'N'
,
267
'DEFAULT'
=>
'all'
,
268
];
269
}
270
elseif
($strFILTER ==
'socialnetwork'
)
271
{
272
$arrFILTER = [];
273
if
(CModule::IncludeModule(
'socialnetwork'
))
274
{
275
$arrFILTER[
'all'
] =
GetMessage
(
'SEARCH_CP_ALL'
);
276
$rsGroup = CSocNetGroup::GetList([
'ID'
=>
'DESC'
], [],
false
,
false
, [
'ID'
,
'NAME'
]);
277
while
($arGroup = $rsGroup->Fetch())
278
{
279
$arrFILTER[$arGroup[
'ID'
]] = $arGroup[
'NAME'
];
280
}
281
}
282
283
$arComponentParameters[
'PARAMETERS'
][
$name
.
'_'
. $strFILTER] = [
284
'PARENT'
=> $parent,
285
'NAME'
=>
GetMessage
(
'SEARCH_CP_SOCIALNETWORK_GROUPS'
),
286
'TYPE'
=>
'LIST'
,
287
'MULTIPLE'
=> $MULTIPLE,
288
'VALUES'
=> $arrFILTER,
289
'ADDITIONAL_VALUES'
=>
'N'
,
290
'DEFAULT'
=>
'all'
,
291
];
292
}
293
elseif
($strFILTER ==
'socialnetwork_user'
)
294
{
295
$arComponentParameters[
'PARAMETERS'
][
$name
.
'_'
. $strFILTER] = [
296
'PARENT'
=>
'DATA_SOURCE'
,
297
'NAME'
=>
GetMessage
(
'SEARCH_CP_SOCIALNETWORK_USER'
),
298
'TYPE'
=>
'STRING'
,
299
'DEFAULT'
=>
''
,
300
];
301
}
302
}
303
}
304
}
305
306
protected
static
function
_main
($arParam)
307
{
308
if
(is_array($arParam))
309
{
310
$arURL = [];
311
foreach
($arParam as $strURL)
312
{
313
$strURL = trim($strURL);
314
if
($strURL)
315
{
316
$arURL[] = $strURL .
'%'
;
317
}
318
}
319
320
if
(
count
($arURL) > 0)
321
{
322
return
[
323
'=MODULE_ID'
=>
'main'
,
324
'URL'
=> $arURL,
325
];
326
}
327
}
328
elseif
(mb_strlen($arParam))
329
{
330
return
[
331
'=MODULE_ID'
=>
'main'
,
332
'URL'
=> $arParam .
'%'
,
333
];
334
}
335
336
return
[
337
'=MODULE_ID'
=>
'main'
,
338
'URL'
=> [
'/%'
],
339
];
340
}
341
342
protected
static
function
_forum
($arParam)
343
{
344
if
(is_array($arParam))
345
{
346
$arForum = [];
347
foreach
($arParam as $strForum)
348
{
349
if
($strForum !=
'all'
)
350
{
351
$arForum[] = intval($strForum);
352
}
353
}
354
355
if
(
count
($arForum) > 0)
356
{
357
return
[
358
'=MODULE_ID'
=>
'forum'
,
359
'PARAM1'
=> $arForum,
360
];
361
}
362
}
363
elseif
($arParam > 0)
364
{
365
return
[
366
'=MODULE_ID'
=>
'forum'
,
367
'PARAM1'
=> intval($arParam),
368
];
369
}
370
371
return
[
372
'=MODULE_ID'
=>
'forum'
,
373
];
374
}
375
376
protected
static
function
_iblock
($arParam, $strFILTER)
377
{
378
if
(is_array($arParam))
379
{
380
$arIBlock
= [];
381
foreach
($arParam as $strIBlock)
382
{
383
if
($strIBlock !=
'all'
)
384
{
385
$arIBlock
[] = intval($strIBlock);
386
}
387
}
388
389
if
(
count
(
$arIBlock
) > 0)
390
{
391
return
[
392
'=MODULE_ID'
=>
'iblock'
,
393
'PARAM1'
=> mb_substr($strFILTER, 7),
394
'PARAM2'
=>
$arIBlock
,
395
];
396
}
397
}
398
elseif
($arParam > 0)
399
{
400
return
[
401
'=MODULE_ID'
=>
'iblock'
,
402
'PARAM1'
=> mb_substr($strFILTER, 7),
403
'PARAM2'
=> intval($arParam),
404
];
405
}
406
407
return
[
408
'=MODULE_ID'
=>
'iblock'
,
409
'PARAM1'
=> mb_substr($strFILTER, 7),
410
];
411
}
412
413
protected
static
function
_blog
($arParam)
414
{
415
if
(is_array($arParam))
416
{
417
$arBlog = [];
418
foreach
($arParam as $strBlog)
419
{
420
if
($strBlog !=
'all'
)
421
{
422
$arBlog[] = intval($strBlog);
423
}
424
}
425
426
if
(
count
($arBlog) > 0)
427
{
428
return
[
429
'=MODULE_ID'
=>
'blog'
,
430
'PARAM1'
=>
'POST'
,
431
'PARAM2'
=> $arBlog,
432
];
433
}
434
}
435
elseif
($arParam > 0)
436
{
437
return
[
438
'=MODULE_ID'
=>
'blog'
,
439
'PARAM1'
=>
'POST'
,
440
'PARAM2'
=> intval($arParam),
441
];
442
}
443
444
return
[
445
'=MODULE_ID'
=>
'blog'
,
446
'!=PARAM1'
=>
'MICROBLOG'
,
447
];
448
}
449
450
protected
static
function
_socialnetwork
($arParam)
451
{
452
if
(is_array($arParam))
453
{
454
$arSCGroups = [];
455
foreach
($arParam as $strSCGroup)
456
{
457
if
($strSCGroup !=
'all'
)
458
{
459
$arSCGroups[] = intval($strSCGroup);
460
}
461
}
462
463
if
(
count
($arSCGroups) > 0)
464
{
465
return
[
466
'PARAMS'
=> [
'socnet_group'
=> $arSCGroups],
467
'USE_TF_FILTER'
=>
false
,
468
];
469
}
470
}
471
elseif
($arParam > 0)
472
{
473
return
[
474
'PARAMS'
=> [
'socnet_group'
=> intval($arParam)],
475
];
476
}
477
478
return
[
479
'=MODULE_ID'
=>
'socialnetwork'
,
480
'PARAMS'
=> [
'entity'
=>
'socnet_group'
],
481
];
482
}
483
484
protected
static
function
_socialnetwork_user
($arParam)
485
{
486
$intSCUser = intval($arParam);
487
if
($intSCUser > 0)
488
{
489
return
[
490
'PARAMS'
=> [
'socnet_user'
=> $intSCUser],
491
'USE_TF_FILTER'
=>
false
,
492
];
493
}
494
else
495
{
496
return
[
497
'=MODULE_ID'
=>
'socialnetwork'
,
498
];
499
}
500
}
501
}
$arParams
$arParams
Определения
access_dialog.php:21
CAllForumNew\GetList
static GetList($arOrder=Array("SORT"=>"ASC"), $arFilter=Array(), $arAddParams=array())
Определения
forum_new.php:796
CBlog\GetList
static GetList($arOrder=Array("ID"=> "DESC"), $arFilter=Array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения
blog.php:249
CIBlockType\GetList
static GetList($arOrder=array("SORT"=> "ASC"), $arFilter=array())
Определения
iblocktype.php:53
CIBlockType\GetByIDLang
static GetByIDLang($ID, $LID, $bFindAny=true)
Определения
iblocktype.php:274
CSearchParameters
Определения
comp_parameters.php:5
CSearchParameters\_forum
static _forum($arParam)
Определения
comp_parameters.php:342
CSearchParameters\_iblock
static _iblock($arParam, $strFILTER)
Определения
comp_parameters.php:376
CSearchParameters\ConvertParamsToFilter
static ConvertParamsToFilter($arParams, $strFilterParamName)
Определения
comp_parameters.php:6
CSearchParameters\_socialnetwork_user
static _socialnetwork_user($arParam)
Определения
comp_parameters.php:484
CSearchParameters\GetFilterDropDown
static GetFilterDropDown($bFilter=false)
Определения
comp_parameters.php:81
CSearchParameters\AddFilterParams
static AddFilterParams(&$arComponentParameters, $arCurrentValues, $name, $parent, $MULTIPLE='Y')
Определения
comp_parameters.php:169
CSearchParameters\GetModulesList
static GetModulesList()
Определения
comp_parameters.php:145
CSearchParameters\_blog
static _blog($arParam)
Определения
comp_parameters.php:413
CSearchParameters\_socialnetwork
static _socialnetwork($arParam)
Определения
comp_parameters.php:450
CSearchParameters\_main
static _main($arParam)
Определения
comp_parameters.php:306
$arr
$arr
Определения
file_new.php:624
$result
$result
Определения
get_property_values.php:14
IsModuleInstalled
IsModuleInstalled($module_id)
Определения
tools.php:5301
GetModuleEvents
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
Определения
tools.php:5177
IncludeModuleLangFile
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения
tools.php:3778
GetMessage
GetMessage($name, $aReplace=null)
Определения
tools.php:3397
$name
$name
Определения
menu_edit.php:35
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
$ar
$ar
Определения
options.php:199
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
$arIBlock
$arIBlock['PROPERTY']
Определения
yandex_detail.php:172
bitrix
modules
search
classes
general
comp_parameters.php
Создано системой
1.14.0