Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/main/lib/filter/ |
Upload File : |
<?php namespace Bitrix\Main\Filter; use Bitrix\Main\ORM\Entity; use Bitrix\Main\ORM\Fields\BooleanField; use Bitrix\Main\ORM\Fields\DateField; use Bitrix\Main\ORM\Fields\DatetimeField; use Bitrix\Main\ORM\Fields\FloatField; use Bitrix\Main\ORM\Fields\IntegerField; use Bitrix\Main\ORM\Fields\ScalarField; class TabletDataProvider extends DataProvider { public function __construct( private Settings $settings, private Entity $entity, private ?array $selectFields = null, private ?array $defaultFields = null, private bool $isDefaultShow = true, ) {} public function getSettings() { return $this->settings; } public function prepareFields(): array { $result = []; $isEmptySelectFields = empty($this->selectFields); $isEmptyDefaultFields = empty($this->defaultFields); foreach ($this->entity->getFields() as $field) { if ( !$isEmptySelectFields && !in_array($field->getName(), $this->selectFields) ) { continue; } if ($field instanceof ScalarField) { if ($isEmptySelectFields && $field->isPrivate()) { continue; } $column = $this->createByField($field); $columnId = $column->getId(); if ($isEmptyDefaultFields) { $column->markAsDefault( $this->isDefaultShow ); } else { $column->markAsDefault( in_array($columnId, $this->defaultFields) ); } $result[$columnId] = $column; } } return $result; } protected function createByField(ScalarField $field): Field { $result = new Field($this, $field->getName()); $result->setName( $field->getTitle() ?: $field->getName() ); $result->setType( $this->getTypeByField($field) ); return $result; } protected function getTypeByField(ScalarField $field): string { if ( ($field instanceof FloatField) || ($field instanceof IntegerField) ) { return 'number'; } elseif ($field instanceof BooleanField) { return 'select'; } elseif ( ($field instanceof DateField) || ($field instanceof DatetimeField) ) { return 'date'; } return 'string'; } public function prepareFieldData($fieldID) { return null; } }