123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Eav\Helper;
- /**
- * Eav data helper
- */
- class Data extends \Magento\Framework\App\Helper\AbstractHelper
- {
- /**
- * XML path to input types validator data in config
- *
- * @var string
- */
- const XML_PATH_VALIDATOR_DATA_INPUT_TYPES = 'general/validator_data/input_types';
- /**
- * @var array
- */
- protected $_attributesLockedFields = [];
- /**
- * @var array
- */
- protected $_entityTypeFrontendClasses = [];
- /**
- * @var \Magento\Eav\Model\Entity\Attribute\Config
- */
- protected $_attributeConfig;
- /**
- * @var \Magento\Eav\Model\Config
- */
- protected $_eavConfig;
- /**
- * @param \Magento\Framework\App\Helper\Context $context
- * @param \Magento\Eav\Model\Entity\Attribute\Config $attributeConfig
- * @param \Magento\Eav\Model\Config $eavConfig
- * @codeCoverageIgnore
- */
- public function __construct(
- \Magento\Framework\App\Helper\Context $context,
- \Magento\Eav\Model\Entity\Attribute\Config $attributeConfig,
- \Magento\Eav\Model\Config $eavConfig
- ) {
- $this->_attributeConfig = $attributeConfig;
- $this->_eavConfig = $eavConfig;
- parent::__construct($context);
- }
- /**
- * Return default frontend classes value label array
- *
- * @return array
- */
- protected function _getDefaultFrontendClasses()
- {
- return [
- ['value' => '', 'label' => __('None')],
- ['value' => 'validate-number', 'label' => __('Decimal Number')],
- ['value' => 'validate-digits', 'label' => __('Integer Number')],
- ['value' => 'validate-email', 'label' => __('Email')],
- ['value' => 'validate-url', 'label' => __('URL')],
- ['value' => 'validate-alpha', 'label' => __('Letters')],
- ['value' => 'validate-alphanum', 'label' => __('Letters (a-z, A-Z) or Numbers (0-9)')]
- ];
- }
- /**
- * Return merged default and entity type frontend classes value label array
- *
- * @param string $entityTypeCode
- * @return array
- */
- public function getFrontendClasses($entityTypeCode)
- {
- $_defaultClasses = $this->_getDefaultFrontendClasses();
- if (isset($this->_entityTypeFrontendClasses[$entityTypeCode])) {
- return array_merge($_defaultClasses, $this->_entityTypeFrontendClasses[$entityTypeCode]);
- }
- return $_defaultClasses;
- }
- /**
- * Retrieve attributes locked fields to edit
- *
- * @param string $entityTypeCode
- * @return array
- */
- public function getAttributeLockedFields($entityTypeCode)
- {
- if (!$entityTypeCode) {
- return [];
- }
- if (isset($this->_attributesLockedFields[$entityTypeCode])) {
- return $this->_attributesLockedFields[$entityTypeCode];
- }
- $attributesLockedFields = $this->_attributeConfig->getEntityAttributesLockedFields($entityTypeCode);
- if (count($attributesLockedFields)) {
- $this->_attributesLockedFields[$entityTypeCode] = $attributesLockedFields;
- return $this->_attributesLockedFields[$entityTypeCode];
- }
- return [];
- }
- /**
- * Get input types validator data
- *
- * @return array
- */
- public function getInputTypesValidatorData()
- {
- return $this->scopeConfig->getValue(
- self::XML_PATH_VALIDATOR_DATA_INPUT_TYPES,
- \Magento\Store\Model\ScopeInterface::SCOPE_STORE
- );
- }
- /**
- * Retrieve attribute metadata.
- *
- * @param string $entityTypeCode
- * @param string $attributeCode
- * @return array <pre>[
- * 'entity_type_id' => $entityTypeId,
- * 'attribute_id' => $attributeId,
- * 'attribute_table' => $attributeTable
- * 'backend_type' => $backendType
- * ]</pre>
- */
- public function getAttributeMetadata($entityTypeCode, $attributeCode)
- {
- $attribute = $this->_eavConfig->getAttribute($entityTypeCode, $attributeCode);
- return [
- 'entity_type_id' => $attribute->getEntityTypeId(),
- 'attribute_id' => $attribute->getAttributeId(),
- 'attribute_table' => $attribute->getBackend()->getTable(),
- 'backend_type' => $attribute->getBackendType()
- ];
- }
- }
|