![]() 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-sales/Controller/Adminhtml/Order/Create/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Sales\Controller\Adminhtml\Order\Create; use Magento\Backend\App\Action; use Magento\Backend\App\Action\Context; use Magento\Backend\Model\View\Result\ForwardFactory; use Magento\Framework\App\Action\HttpGetActionInterface; use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface; use Magento\Framework\App\ObjectManager; use Magento\Framework\Controller\Result\RawFactory; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\RegexValidator; use Magento\Framework\View\Result\PageFactory; use Magento\Sales\Controller\Adminhtml\Order\Create as CreateAction; use Magento\Store\Model\StoreManagerInterface; /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class LoadBlock extends CreateAction implements HttpPostActionInterface, HttpGetActionInterface { /** * @var RawFactory */ protected $resultRawFactory; /** * @var StoreManagerInterface */ private $storeManager; /** * @var RegexValidator */ private RegexValidator $regexValidator; /** * @param Context $context * @param Product $productHelper * @param Escaper $escaper * @param PageFactory $resultPageFactory * @param ForwardFactory $resultForwardFactory * @param RawFactory $resultRawFactory * @param StoreManagerInterface|null $storeManager * @param RegexValidator|null $regexValidator */ public function __construct( Action\Context $context, \Magento\Catalog\Helper\Product $productHelper, \Magento\Framework\Escaper $escaper, PageFactory $resultPageFactory, ForwardFactory $resultForwardFactory, RawFactory $resultRawFactory, StoreManagerInterface $storeManager = null, RegexValidator $regexValidator = null ) { $this->resultRawFactory = $resultRawFactory; parent::__construct( $context, $productHelper, $escaper, $resultPageFactory, $resultForwardFactory ); $this->storeManager = $storeManager ?: ObjectManager::getInstance() ->get(StoreManagerInterface::class); $this->regexValidator = $regexValidator ?: ObjectManager::getInstance()->get(RegexValidator::class); } /** * Loading page block * * @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Framework\Controller\Result\Raw * * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) * @throws LocalizedException */ public function execute() { $request = $this->getRequest(); if ($request->getParam('store_id') !== 'false') { $this->storeManager->setCurrentStore($request->getParam('store_id')); } try { $this->_initSession()->_processData(); } catch (\Magento\Framework\Exception\LocalizedException $e) { $this->_reloadQuote(); $this->messageManager->addErrorMessage($e->getMessage()); } catch (\Exception $e) { $this->_reloadQuote(); $this->messageManager->addExceptionMessage($e, $e->getMessage()); } $asJson = $request->getParam('json'); $block = $request->getParam('block'); if ($block && !$this->regexValidator->validateParamRegex($block)) { throw new LocalizedException( __('The url has invalid characters. Please correct and try again.') ); } /** @var \Magento\Framework\View\Result\Page $resultPage */ $resultPage = $this->resultPageFactory->create(); if ($asJson) { $resultPage->addHandle('sales_order_create_load_block_json'); } else { $resultPage->addHandle('sales_order_create_load_block_plain'); } if ($block) { $blocks = explode(',', $block); if ($asJson && !in_array('message', $blocks)) { $blocks[] = 'message'; } foreach ($blocks as $block) { $resultPage->addHandle('sales_order_create_load_block_' . $block); } } $result = $resultPage->getLayout()->renderElement('content'); if ($request->getParam('as_js_varname')) { $this->_objectManager->get(\Magento\Backend\Model\Session::class)->setUpdateResult($result); return $this->resultRedirectFactory->create()->setPath('sales/*/showUpdateResult'); } return $this->resultRawFactory->create()->setContents($result); } }