LoadBlock.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Controller\Adminhtml\Order\Create;
  7. use Magento\Framework\App\Action\HttpGetActionInterface;
  8. use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
  9. use Magento\Backend\App\Action;
  10. use Magento\Backend\Model\View\Result\ForwardFactory;
  11. use Magento\Framework\View\Result\PageFactory;
  12. use Magento\Framework\Controller\Result\RawFactory;
  13. use Magento\Sales\Controller\Adminhtml\Order\Create as CreateAction;
  14. class LoadBlock extends CreateAction implements HttpPostActionInterface, HttpGetActionInterface
  15. {
  16. /**
  17. * @var RawFactory
  18. */
  19. protected $resultRawFactory;
  20. /**
  21. * @param Action\Context $context
  22. * @param \Magento\Catalog\Helper\Product $productHelper
  23. * @param \Magento\Framework\Escaper $escaper
  24. * @param PageFactory $resultPageFactory
  25. * @param ForwardFactory $resultForwardFactory
  26. * @param RawFactory $resultRawFactory
  27. */
  28. public function __construct(
  29. Action\Context $context,
  30. \Magento\Catalog\Helper\Product $productHelper,
  31. \Magento\Framework\Escaper $escaper,
  32. PageFactory $resultPageFactory,
  33. ForwardFactory $resultForwardFactory,
  34. RawFactory $resultRawFactory
  35. ) {
  36. $this->resultRawFactory = $resultRawFactory;
  37. parent::__construct(
  38. $context,
  39. $productHelper,
  40. $escaper,
  41. $resultPageFactory,
  42. $resultForwardFactory
  43. );
  44. }
  45. /**
  46. * Loading page block
  47. *
  48. * @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Framework\Controller\Result\Raw
  49. */
  50. public function execute()
  51. {
  52. $request = $this->getRequest();
  53. try {
  54. $this->_initSession()->_processData();
  55. } catch (\Magento\Framework\Exception\LocalizedException $e) {
  56. $this->_reloadQuote();
  57. $this->messageManager->addErrorMessage($e->getMessage());
  58. } catch (\Exception $e) {
  59. $this->_reloadQuote();
  60. $this->messageManager->addExceptionMessage($e, $e->getMessage());
  61. }
  62. $asJson = $request->getParam('json');
  63. $block = $request->getParam('block');
  64. /** @var \Magento\Framework\View\Result\Page $resultPage */
  65. $resultPage = $this->resultPageFactory->create();
  66. if ($asJson) {
  67. $resultPage->addHandle('sales_order_create_load_block_json');
  68. } else {
  69. $resultPage->addHandle('sales_order_create_load_block_plain');
  70. }
  71. if ($block) {
  72. $blocks = explode(',', $block);
  73. if ($asJson && !in_array('message', $blocks)) {
  74. $blocks[] = 'message';
  75. }
  76. foreach ($blocks as $block) {
  77. $resultPage->addHandle('sales_order_create_load_block_' . $block);
  78. }
  79. }
  80. $result = $resultPage->getLayout()->renderElement('content');
  81. if ($request->getParam('as_js_varname')) {
  82. $this->_objectManager->get(\Magento\Backend\Model\Session::class)->setUpdateResult($result);
  83. return $this->resultRedirectFactory->create()->setPath('sales/*/showUpdateResult');
  84. }
  85. return $this->resultRawFactory->create()->setContents($result);
  86. }
  87. }