Load.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Block\Adminhtml\Order\Create;
  7. /**
  8. * Adminhtml sales order create newsletter block
  9. *
  10. * @api
  11. * @author Magento Core Team <core@magentocommerce.com>
  12. * @since 100.0.2
  13. */
  14. class Load extends \Magento\Framework\View\Element\Template
  15. {
  16. /**
  17. * @var \Magento\Framework\View\Helper\Js
  18. */
  19. protected $_jsHelper = null;
  20. /**
  21. * Json encoder
  22. *
  23. * @var \Magento\Framework\Json\EncoderInterface
  24. */
  25. protected $_jsonEncoder;
  26. /**
  27. * @param \Magento\Framework\View\Element\Template\Context $context
  28. * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder
  29. * @param \Magento\Framework\View\Helper\Js $jsHelper
  30. * @param array $data
  31. */
  32. public function __construct(
  33. \Magento\Framework\View\Element\Template\Context $context,
  34. \Magento\Framework\Json\EncoderInterface $jsonEncoder,
  35. \Magento\Framework\View\Helper\Js $jsHelper,
  36. array $data = []
  37. ) {
  38. $this->_jsonEncoder = $jsonEncoder;
  39. $this->_jsHelper = $jsHelper;
  40. parent::__construct($context, $data);
  41. }
  42. /**
  43. * Render block HTML
  44. *
  45. * @return string
  46. */
  47. protected function _toHtml()
  48. {
  49. $result = [];
  50. $layout = $this->getLayout();
  51. foreach ($this->getChildNames() as $name) {
  52. $result[$name] = $layout->renderElement($name);
  53. }
  54. $resultJson = $this->_jsonEncoder->encode($result);
  55. $jsVarname = $this->getRequest()->getParam('as_js_varname');
  56. if ($jsVarname) {
  57. return $this->_jsHelper->getScript(sprintf('var %s = %s', $jsVarname, $resultJson));
  58. } else {
  59. return $resultJson;
  60. }
  61. }
  62. }