![]() 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/app/code/Soon/CsBlock/Controller/Adminhtml/Block/ |
<?php /** * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * @author Hervé Guétin <[email protected]> <@herveguetin> * @copyright Copyright (c) 2017 Agence Soon (http://www.agence-soon.fr) */ namespace Soon\CsBlock\Controller\Adminhtml\Block; use Magento\Backend\App\Action; use Magento\Backend\App\Action\Context; use Magento\Framework\App\ResponseInterface; use Magento\Framework\Exception\LocalizedException; use Soon\CsBlock\Model\Block; use Soon\CsBlock\Model\BlockFactory; class Save extends Action { /** * @var BlockFactory */ private $blockFactory; /** * @var Block */ private $block; /** * @var array */ private $postData; public function __construct( Context $context, BlockFactory $blockFactory ) { parent::__construct($context); $this->blockFactory = $blockFactory; } /** * Dispatch request * * @return \Magento\Framework\Controller\ResultInterface|ResponseInterface * @throws \Magento\Framework\Exception\NotFoundException */ public function execute() { $this->postData = $this->getRequest()->getParams(); /** @var Block $block */ $this->block = $this->blockFactory->create(); $this->populateBlockData(); try { $this->save(); } catch (LocalizedException $e) { $this->messageManager->addErrorMessage($e->getMessage()); } catch (\RuntimeException $e) { $this->messageManager->addErrorMessage($e->getMessage()); } catch (\Exception $e) { $this->messageManager->addExceptionMessage($e, __('Something went wrong while saving the block.')); } return $this->resultRedirectFactory->create()->setPath('*/block/grid'); } private function populateBlockData() { if (isset($this->postData['block_id'])) { $this->block->getResource()->load($this->block, $this->postData['block_id']); } $usedData = []; foreach ($this->postData as $k => $v) { if ($k == 'block_type' || strpos($k, 'soon_csblock__') !== false) { $usedData[$k] = $v; } } $this->block->setData('content', serialize($usedData)); $this->block->setData('title', $this->postData['title']); } private function save() { $this->block->getResource()->save($this->block); $this->messageManager->addSuccessMessage(__('Block was successfully saved')); $this->_getSession()->setFormData(false); } }