![]() 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-catalog/Model/Entity/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Catalog\Model\Entity; use Magento\Catalog\Model\Attribute\LockValidatorInterface; use Magento\Framework\Api\AttributeValueFactory; use Magento\Framework\Stdlib\DateTime\DateTimeFormatterInterface; /** * Product attribute extension with event dispatching * * @method string getFrontendInputRenderer() * @method \Magento\Catalog\Model\Entity\Attribute setFrontendInputRenderer(string $value) * @method int setIsGlobal(int $value) * @method int getIsVisible() * @method int setIsVisible(int $value) * @method int getIsSearchable() * @method \Magento\Catalog\Model\Entity\Attribute setIsSearchable(int $value) * @method int getSearchWeight() * @method \Magento\Catalog\Model\Entity\Attribute setSearchWeight(int $value) * @method int getIsFilterable() * @method \Magento\Catalog\Model\Entity\Attribute setIsFilterable(int $value) * @method int getIsComparable() * @method \Magento\Catalog\Model\Entity\Attribute setIsComparable(int $value) * @method \Magento\Catalog\Model\Entity\Attribute setIsVisibleOnFront(int $value) * @method int getIsHtmlAllowedOnFront() * @method \Magento\Catalog\Model\Entity\Attribute setIsHtmlAllowedOnFront(int $value) * @method int getIsUsedForPriceRules() * @method \Magento\Catalog\Model\Entity\Attribute setIsUsedForPriceRules(int $value) * @method int getIsFilterableInSearch() * @method \Magento\Catalog\Model\Entity\Attribute setIsFilterableInSearch(int $value) * @method \Magento\Catalog\Model\Entity\Attribute setUsedInProductListing(int $value) * @method \Magento\Catalog\Model\Entity\Attribute setUsedForSortBy(int $value) * @method \Magento\Catalog\Model\Entity\Attribute setApplyTo(string $value) * @method int getIsVisibleInAdvancedSearch() * @method \Magento\Catalog\Model\Entity\Attribute setIsVisibleInAdvancedSearch(int $value) * @method \Magento\Catalog\Model\Entity\Attribute setPosition(int $value) * @method int getIsWysiwygEnabled() * @method \Magento\Catalog\Model\Entity\Attribute setIsWysiwygEnabled(int $value) * @method int getIsUsedForPromoRules() * @method \Magento\Catalog\Model\Entity\Attribute setIsUsedForPromoRules(int $value) * @method \Magento\Eav\Api\Data\AttributeExtensionInterface getExtensionAttributes() * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class Attribute extends \Magento\Eav\Model\Entity\Attribute { /** * Event Prefix * * @var string */ protected $_eventPrefix = 'catalog_entity_attribute'; /** * Event Object * * @var string */ protected $_eventObject = 'attribute'; const MODULE_NAME = 'Magento_Catalog'; /** * @var LockValidatorInterface */ protected $attrLockValidator; /** * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param \Magento\Eav\Model\Config $eavConfig * @param \Magento\Eav\Model\Entity\TypeFactory $eavTypeFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Eav\Model\ResourceModel\Helper $resourceHelper * @param \Magento\Framework\Validator\UniversalFactory $universalFactory * @param \Magento\Eav\Api\Data\AttributeOptionInterfaceFactory $optionDataFactory * @param \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor * @param \Magento\Framework\Api\DataObjectHelper $dataObjectHelper * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate * @param \Magento\Catalog\Model\Product\ReservedAttributeList $reservedAttributeList * @param \Magento\Framework\Locale\ResolverInterface $localeResolver * @param DateTimeFormatterInterface $dateTimeFormatter * @param LockValidatorInterface $lockValidator * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, \Magento\Eav\Model\Config $eavConfig, \Magento\Eav\Model\Entity\TypeFactory $eavTypeFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Eav\Model\ResourceModel\Helper $resourceHelper, \Magento\Framework\Validator\UniversalFactory $universalFactory, \Magento\Eav\Api\Data\AttributeOptionInterfaceFactory $optionDataFactory, \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor, \Magento\Framework\Api\DataObjectHelper $dataObjectHelper, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\Catalog\Model\Product\ReservedAttributeList $reservedAttributeList, \Magento\Framework\Locale\ResolverInterface $localeResolver, DateTimeFormatterInterface $dateTimeFormatter, LockValidatorInterface $lockValidator, \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { $this->attrLockValidator = $lockValidator; parent::__construct( $context, $registry, $extensionFactory, $customAttributeFactory, $eavConfig, $eavTypeFactory, $storeManager, $resourceHelper, $universalFactory, $optionDataFactory, $dataObjectProcessor, $dataObjectHelper, $localeDate, $reservedAttributeList, $localeResolver, $dateTimeFormatter, $resource, $resourceCollection, $data ); } /** * Processing object before save data * * @return \Magento\Framework\Model\AbstractModel * @throws \Magento\Framework\Exception\LocalizedException */ public function beforeSave() { try { $this->attrLockValidator->validate($this); } catch (\Magento\Framework\Exception\LocalizedException $exception) { throw new \Magento\Framework\Exception\LocalizedException(__($exception->getMessage())); } $this->setData('modulePrefix', self::MODULE_NAME); return parent::beforeSave(); } /** * Processing object after save data * * @return \Magento\Framework\Model\AbstractModel */ public function afterSave() { /** * Fix saving attribute in admin */ $this->_eavConfig->clear(); return parent::afterSave(); } }