![]() 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/Controller/Block/ |
<?php namespace Aheadworks\Csblock\Controller\Block; use Aheadworks\Csblock\Block\Csblock; use Magento\Framework\Translate\InlineInterface; use Magento\Framework\App\Action\Context; /** * Class Render * @package Aheadworks\Csblock\Controller\Block */ class Render extends \Magento\Framework\App\Action\Action { /** * @var InlineInterface */ private $translateInline; /** * @param Context $context * @param InlineInterface $translateInline */ public function __construct( Context $context, InlineInterface $translateInline ) { parent::__construct($context); $this->translateInline = $translateInline; } /** * Returns block content depends on ajax request * * @return void */ public function execute() { if (!$this->getRequest()->isAjax()) { /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultRedirectFactory->create(); return $resultRedirect->setRefererOrBaseUrl(); } $currentRoute = $this->getRequest()->getRouteName(); $currentControllerName = $this->getRequest()->getControllerName(); $currentActionName = $this->getRequest()->getActionName(); $currentRequestUri = $this->getRequest()->getRequestUri(); $blocks = $this->getRequest()->getParam('blocks'); $data = $this->getBlocks($blocks); $this->getRequest()->setRouteName($currentRoute); $this->getRequest()->setControllerName($currentControllerName); $this->getRequest()->setActionName($currentActionName); $this->getRequest()->setRequestUri($currentRequestUri); $this->translateInline->processResponseBody($data); $this->getResponse()->appendBody(json_encode($data)); } /** * Get blocks from layout * * @param string $blocks * @return string[] */ private function getBlocks($blocks) { if (!$blocks) { return []; } $blocks = json_decode($blocks); $data = []; $layout = $this->_view->getLayout(); foreach ($blocks as $blockName) { /** @var Csblock $blockInstance */ $blockInstance = $layout->createBlock(Csblock::class); if (is_object($blockInstance)) { $blockInstance->setNameInLayout($blockName); $data[$blockName] = $blockInstance->getBlockContentHtml(); } } return $data; } }