1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
ufcolumnsprovider.php
См. документацию.
1<?php
2
3namespace Bitrix\Main\Grid\Column\DataProvider;
4
5use Bitrix\Main\Grid\Column\Column;
6use Bitrix\Main\Grid\Column\DataProvider;
7use Bitrix\Main\Grid\Column\Type;
8use Bitrix\Main\UserField\Types\BooleanType;
9use Bitrix\Main\UserField\Types\DateTimeType;
10use Bitrix\Main\UserField\Types\DateType;
11use Bitrix\Main\UserField\Types\DoubleType;
12use Bitrix\Main\UserField\Types\IntegerType;
13
15{
16 public function __construct(
17 private string $entityId,
18 private ?array $selectFields = null,
19 private ?array $defaultFields = null,
20 private bool $isDefaultShow = true,
21 )
22 {}
23
24 public function prepareColumns(): array
25 {
27
31
32 $result = [];
33
34 $isEmptyDefaultFields = empty($this->defaultFields);
35
36 $fields = $USER_FIELD_MANAGER->GetUserFields(
37 $this->entityId,
38 LANG: LANGUAGE_ID,
39 selectFields: $this->selectFields
40 );
41 foreach ($fields as $field)
42 {
43 if ($field['SHOW_IN_LIST'] !== 'Y')
44 {
45 continue;
46 }
47
48 $column = $this->createColumnByField($field);
49 $columnId = $column->getId();
50
51 if ($isEmptyDefaultFields)
52 {
53 $column->setDefault($this->isDefaultShow);
54 }
55 else
56 {
57 $column->setDefault(
58 in_array($columnId, $this->defaultFields)
59 );
60 }
61
62 $result[$columnId] = $column;
63 }
64
65 return $result;
66 }
67
68 protected function createColumnByField(array $field): Column
69 {
70 $column = new Column($field['FIELD_NAME']);
71 $column->setName(
72 $field['LIST_COLUMN_LABEL'] ?? $field['FIELD_NAME']
73 );
74 $column->setType(
75 $this->getColumnTypeByField($field)
76 );
77 $column->setMultiple(
78 $field['MULTIPLE'] === 'Y'
79 );
80
81 return $column;
82 }
83
84 protected function getColumnTypeByField(array $field): string
85 {
86 $type = $field['USER_TYPE_ID'] ?? null;
87
88 if ($type === DoubleType::USER_TYPE_ID)
89 {
90 return Type::FLOAT;
91 }
92 elseif ($type === IntegerType::USER_TYPE_ID)
93 {
94 return Type::INT;
95 }
96 elseif ($type === BooleanType::USER_TYPE_ID)
97 {
98 return Type::CHECKBOX;
99 }
100 elseif (
101 ($type === DateTimeType::USER_TYPE_ID)
102 || ($type === DateType::USER_TYPE_ID)
103 )
104 {
105 return Type::DATE;
106 }
107
108 return Type::TEXT;
109 }
110}
$type
Определения options.php:106
__construct(private string $entityId, private ?array $selectFields=null, private ?array $defaultFields=null, private bool $isDefaultShow=true,)
Определения ufcolumnsprovider.php:16
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
global $USER_FIELD_MANAGER
Определения attempt.php:6
$result
Определения get_property_values.php:14
$selectFields
Определения iblock_catalog_list.php:160
Определения color.php:3
$entityId
Определения payment.php:4
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
$fields
Определения yandex_run.php:501