Spamworldpro Mini Shell
Spamworldpro


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-eav/Model/Entity/Attribute/Backend/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/magento/module-eav/Model/Entity/Attribute/Backend/ArrayBackend.php
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\Eav\Model\Entity\Attribute\Backend;

/**
 * Backend model for attribute with multiple values
 *
 * @api
 * @since 100.0.2
 */
class ArrayBackend extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend
{
    /**
     * Prepare data for save
     *
     * @param \Magento\Framework\DataObject $object
     * @return \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend
     */
    public function beforeSave($object)
    {
        $attributeCode = $this->getAttribute()->getAttributeCode();
        $data = $object->getData($attributeCode);
        if (is_array($data)) {
            $data = array_filter($data, function ($value) {
                return $value === '0' || !empty($value);
            });
            $object->setData($attributeCode, implode(',', $data));
        }

        return parent::beforeSave($object);
    }

    /**
     * Implode data for validation
     *
     * @param \Magento\Catalog\Model\Product $object
     * @return bool
     */
    public function validate($object)
    {
        $attributeCode = $this->getAttribute()->getAttributeCode();
        if ($object->hasData($attributeCode)) {
            $data = $object->getData($attributeCode);
            if (is_array($data)) {
                $object->setData($attributeCode, $this->prepare($data));
            } elseif (is_string($data)) {
                $object->setData($attributeCode, $this->prepare(explode(',', $data)));
            } elseif (empty($data)) {
                $object->setData($attributeCode, null);
            }
        }

        return parent::validate($object);
    }

    /**
     * Prepare attribute values
     *
     * @param array $data
     * @return string
     */
    private function prepare(array $data): string
    {
        return implode(',', array_filter(array_unique($data), 'is_numeric'));
    }
}

Spamworldpro Mini