![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-ui/Component/Form/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Ui\Component\Form; /** * @api * @since 100.0.2 */ class AttributeMapper { /** * Form element mapping * * @var array */ private $formElementMap = [ 'text' => 'input', 'hidden' => 'input', 'boolean' => 'checkbox', ]; /** * EAV attribute properties to fetch from meta storage * @var array */ private $metaPropertiesMap = [ 'dataType' => 'getFrontendInput', 'visible' => 'getIsVisible', 'required' => 'getIsRequired', 'label' => 'getStoreLabel', 'sortOrder' => 'getSortOrder', 'notice' => 'getNote', 'default' => 'getDefaultValue', 'size' => 'getMultilineCount' ]; /** * @var array */ protected $validationRules = [ 'input_validation' => [ 'email' => ['validate-email' => true], 'date' => ['validate-date' => true], ], ]; /** * Get attributes meta * * @param \Magento\Eav\Api\Data\AttributeInterface $attribute * @return array * @throws \Magento\Framework\Exception\LocalizedException */ public function map($attribute) { foreach ($this->metaPropertiesMap as $metaName => $methodName) { $value = $attribute->$methodName(); $meta[$metaName] = $value; if ('getFrontendInput' === $methodName) { $meta['formElement'] = isset($this->formElementMap[$value]) ? $this->formElementMap[$value] : $value; } } if ($attribute->usesSource()) { $meta['options'] = $attribute->getSource()->getAllOptions(); } $rules = []; if (isset($meta['required']) && $meta['required'] == 1) { $rules['required-entry'] = true; } foreach ($attribute->getValidateRules() as $name => $value) { if (isset($this->validationRules[$name][$value])) { $rules = array_merge($rules, $this->validationRules[$name][$value]); } else { $rules[$name] = $value; } } $meta['validation'] = $rules; return $meta; } }