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/aheadworks/module-csblock/Model/ResourceModel/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/aheadworks/module-csblock/Model/ResourceModel/Csblock.php
<?php
namespace Aheadworks\Csblock\Model\ResourceModel;

use Magento\Framework\Serialize\SerializerInterface;
use Aheadworks\Csblock\Model\ContentFactory;
use Magento\Framework\Model\ResourceModel\Db\Context;

/**
 * Class Csblock
 * @package Aheadworks\Csblock\Model\ResourceModel
 */
class Csblock extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
{
    /**
     * @var ContentFactory
     */
    protected $contentModelFactory;

    /**
     * @var SerializerInterface
     */
    protected $serializer;

    /**
     * @param Context $context
     * @param ContentFactory $contentModelFactory
     * @param SerializerInterface $serializer
     * @param string $connectionName|null
     */
    public function __construct(
        Context $context,
        ContentFactory $contentModelFactory,
        SerializerInterface $serializer,
        $connectionName = null
    ) {
        $this->contentModelFactory = $contentModelFactory;
        $this->serializer = $serializer;
        parent::__construct($context, $connectionName);
    }

    /**
     * Initialize resource model
     *
     * @return void
     */
    protected function _construct()
    {
        $this->_init('aw_csblock_block', 'id');
    }

    /**
     * @param \Magento\Framework\Model\AbstractModel $object
     * @return $this
     */
    protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
    {
        if ($object->hasData('customer_groups') && is_array($object->getData('customer_groups'))) {
            $object->setData('customer_groups', implode(',', $object->getData('customer_groups')));
        }

        if ($object->hasData('time_from') && is_array($object->getData('time_from'))) {
            $object->setData('time_from', implode(',', $object->getData('time_from')));
        }
        if ($object->hasData('time_to') && is_array($object->getData('time_to'))) {
            $object->setData('time_to', implode(',', $object->getData('time_to')));
        }
        if (is_array($object->getData('csblock_conditions'))) {
            $object->setData('product_condition', $this->serializer->serialize($object->getData('csblock_conditions')));
        }

        return $this;
    }

    /**
     * @param \Magento\Framework\Model\AbstractModel $object
     * @return $this
     */
    protected function _afterSave(\Magento\Framework\Model\AbstractModel $object)
    {
        if ($object->getData('content')) {
            $this->_saveBlockContent($object->getData('content'), $object->getId(), $object->isObjectNew());
        }

        return $this;
    }

    /**
     * @param \Magento\Framework\Model\AbstractModel $object
     * @return $this
     */
    protected function _afterLoad(\Magento\Framework\Model\AbstractModel $object)
    {
        if ($object->getId()) {
            $object->setData('customer_groups', explode(',', (string)$object->getData('customer_groups')));
            if ($object->getData('product_condition')) {
                $conditions = $this->serializer->unserialize($object->getData('product_condition'));
                $object->setData('conditions', $conditions);
                $object->getRuleModel()->getConditions()->loadArray($conditions, 'csblock');
            }
        }
        return parent::_afterLoad($object);
    }

    protected function _saveBlockContent($data, $csblockId, $isNewObject)
    {
        foreach ($data['id'] as $key => $id) {
            $contentModel = $this->contentModelFactory->create();
            if ($id && !$isNewObject) {
                $contentModel->load($id);
            }
            $contentModel->setCsblockId($csblockId);
            $contentModel->setStoreId($data['store_id'][$key]);
            $contentModel->setStaticBlockId($data['static_block_id'][$key]);
            $contentModel->save();
        }

        return $this;
    }
}

Spamworldpro Mini