![]() 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/ |
<?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; } }