File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/modules/catalog/lib/v2/Integration/UI/EntityEditor/StoreProvider.php
Back
<?php namespace Bitrix\Catalog\v2\Integration\UI\EntityEditor; use Bitrix\Catalog\Access\AccessController; use Bitrix\Catalog\Access\ActionDictionary; use Bitrix\Catalog\StoreTable; use Bitrix\Main\Config\Ini; use Bitrix\Main\Localization\Loc; use Bitrix\UI\EntityEditor\BaseProvider; use Bitrix\UI\EntityEditor\ProviderWithUserFieldsTrait; /** * Provider for store (warehouse) entity. */ class StoreProvider extends BaseProvider { public const USER_FIELD_TYPE = 'CAT_STORE'; use ProviderWithUserFieldsTrait; /** * @inheritDoc */ public function getUfEntityId(): string { return self::USER_FIELD_TYPE; } /** * Entity field values. * * @var array */ private array $entity; /** * @param array $entityFields */ public function __construct(array $entityFields) { $this->entity = $entityFields; } /** * @inheritDoc */ public function getEntityId(): ?int { return $this->entity['ID'] ?? null; } /** * @inheritDoc */ public function getGUID(): string { $id = $this->getEntityId() ?? 0; return "store_{$id}_details"; } /** * @inheritDoc */ public function getEntityTypeName(): string { return 'store'; } /** * @inheritDoc */ public function getEntityFields(): array { $isDefaultStore = isset($this->entity['IS_DEFAULT']) && $this->entity['IS_DEFAULT'] === 'Y'; $fields = [ [ 'name' => 'TITLE', 'title' => static::getFieldTitle('TITLE'), 'type' => 'text', 'showAlways' => true, ], [ 'name' => 'CODE', 'title' => static::getFieldTitle('CODE'), 'type' => 'text', 'visibilityPolicy' => 'edit', ], [ 'name' => 'ADDRESS', 'title' => static::getFieldTitle('ADDRESS'), 'type' => 'textarea', 'required' => true, 'showAlways' => true, ], [ 'name' => 'DESCRIPTION', 'title' => static::getFieldTitle('DESCRIPTION'), 'type' => 'textarea', 'visibilityPolicy' => 'edit', ], [ 'name' => 'PHONE', 'title' => static::getFieldTitle('PHONE'), 'type' => 'text', 'showAlways' => true, ], [ 'name' => 'SCHEDULE', 'title' => static::getFieldTitle('SCHEDULE'), 'type' => 'text', 'showAlways' => true, ], [ 'name' => 'EMAIL', 'title' => static::getFieldTitle('EMAIL'), 'type' => 'email', 'visibilityPolicy' => 'edit', ], [ 'name' => 'GPS_N', 'title' => static::getFieldTitle('GPS_N'), 'type' => 'text', 'visibilityPolicy' => 'edit', ], [ 'name' => 'GPS_S', 'title' => static::getFieldTitle('GPS_S'), 'type' => 'text', 'visibilityPolicy' => 'edit', ], [ 'name' => 'XML_ID', 'title' => static::getFieldTitle('XML_ID'), 'type' => 'text', 'visibilityPolicy' => 'edit', ], [ 'name' => 'SORT', 'title' => static::getFieldTitle('SORT'), 'type' => 'number', 'default_value' => 100, 'visibilityPolicy' => 'edit', ], [ 'name' => 'ACTIVE', 'title' => static::getFieldTitle('ACTIVE'), 'type' => 'boolean', 'default_value' => 'Y', 'editable' => !$isDefaultStore, 'showAlways' => true, ], [ 'name' => 'ISSUING_CENTER', 'title' => static::getFieldTitle('ISSUING_CENTER'), 'type' => 'boolean', 'visibilityPolicy' => 'edit', ], [ 'name' => 'IMAGE_ID', 'title' => static::getFieldTitle('IMAGE_ID'), 'type' => 'file', 'showAlways' => true, 'data' => [ 'multiple' => false, 'maxFileSize' => Ini::unformatInt(ini_get('upload_max_filesize')), ], ], ]; $fields = $this->fillUfEntityFields($fields); return $fields; } /** * @inheritDoc */ public function getEntityConfig(): array { $elements = []; foreach ($this->getEntityFields() as $item) { $elements[] = [ 'name' => $item['name'], ]; } $sectionElements = [ [ 'name' => 'main', 'title' => Loc::getMessage('CATALOG_STORE_DETAIL_MAIN_SECTION'), 'type' => 'section', 'elements' => $elements, 'data' => [ 'isRemovable' => 'false', ], 'sort' => 100, ], ]; return [ [ 'name' => 'left', 'type' => 'column', 'elements' => $sectionElements, ], ]; } /** * @inheritDoc */ public function getEntityData(): array { $result = []; foreach ($this->getEntityFields() as $item) { $field = $item['name']; $type = $item['type'] ?? 'text'; $value = $this->entity[$field] ?? $item['default_value'] ?? null; $result[$field] = $this->prepareValue($type, $value); } $result = $this->fillUfEntityData($result); return $result; } /** * @inheritDoc */ public function getEntityControllers(): array { return []; } /** * @inheritDoc */ public function isReadOnly(): bool { return ! AccessController::getCurrent()->check(ActionDictionary::ACTION_STORE_MODIFY); } /** * Get field title for editor. * * @param string $fieldName * * @return string */ private static function getFieldTitle(string $fieldName): string { static $managerFields; if (!isset($managerFields)) { $managerFields = []; foreach (StoreTable::getMap() as $field) { /** * @var \Bitrix\Main\ORM\Fields\Field $field */ $name = $field->getName(); $managerFields[$name] = Loc::getMessage("CATALOG_STORE_DETAIL_FIELD_TITLE_{$name}") ?? $field->getTitle() ; } } return $managerFields[$fieldName] ?? $fieldName; } private function prepareValue(string $type, $value) { if (!isset($value)) { return null; } return (string)$value; } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.23 |
proxy
|
phpinfo
|
Settings