1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
elementdataprovider.php
См. документацию.
1<?php
2
3namespace Bitrix\Iblock\Filter\DataProvider;
4
5use Bitrix\Iblock\Filter\DataProvider\Element\ElementFilterFields;
6use Bitrix\Iblock\Filter\DataProvider\Settings\ElementSettings;
7use Bitrix\Main\Filter\EntityDataProvider;
8use Bitrix\Main\Localization\Loc;
9
11{
12 private ElementSettings $settings;
13 private ElementFilterFields $fields;
14
15 public function __construct(ElementSettings $settings)
16 {
17 $this->settings = $settings;
18 $this->fields = ElementFilterFields::createFromElementSettings($settings);
19 }
20
21 public function getSettings(): ElementSettings
22 {
23 return $this->settings;
24 }
25
26 public function prepareFields()
27 {
28 $result = [];
29
30 $fields = $this->fields->getElementFieldsParams();
31 foreach ($fields as $id => $params)
32 {
33 $result[$id] = $this->createField($id, $params);
34 }
35
36 $properties = $this->fields->getElementPropertiesParams();
37 foreach ($properties as $id => $params)
38 {
39 $result[$id] = $this->createField($id, $params);
40 }
41
42 return $result;
43 }
44
45 public function prepareFieldData($fieldID)
46 {
47 if ($fieldID === 'SECTION_ID')
48 {
49 return [
50 'items' => $this->fields->getSectionListItems(),
51 ];
52 }
53 elseif ($fieldID === 'CREATED_BY' || $fieldID === 'MODIFIED_BY')
54 {
55 return $this->getUserEntitySelectorParams($fieldID . '_filter', ['fieldName' => $fieldID]);
56 }
57 elseif ($this->fields->isPropertyId($fieldID))
58 {
59 return $this->fields->getPropertyDescription($fieldID);
60 }
61
62 return null;
63 }
64
65 protected function getFieldName($fieldID)
66 {
67 return Loc::getMessage('IBLOCK_FILTER_ELEMENT_DATAPROVIDER_FIELD_' . $fieldID) ?? $fieldID;
68 }
69
73 public function prepareFilterValue(array $rawFilterValue): array
74 {
75 $rawFilterValue = parent::prepareFilterValue($rawFilterValue);
76
77 if (!empty($rawFilterValue['FIND']))
78 {
79 $rawFilterValue['?NAME'] = $rawFilterValue['FIND'];
80 }
81
82 return $this->fields->prepareFilterValue($rawFilterValue);
83 }
84}
__construct(ElementSettings $settings)
Определения elementdataprovider.php:15
getUserEntitySelectorParams(string $context, array $params)
Определения entitydataprovider.php:41
createField($fieldID, array $params=null)
Определения entitydataprovider.php:26
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$settings
Определения product_settings.php:43
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799