Chooser.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Cms\Controller\Adminhtml\Page\Widget;
  7. use Magento\Framework\App\Action\HttpGetActionInterface;
  8. use Magento\Framework\App\Action\HttpPostActionInterface;
  9. use Magento\Backend\App\Action;
  10. /**
  11. * Chooser Source action.
  12. */
  13. class Chooser extends Action implements HttpPostActionInterface, HttpGetActionInterface
  14. {
  15. /**
  16. * Authorization level of a basic admin session
  17. */
  18. const ADMIN_RESOURCE = 'Magento_Widget::widget_instance';
  19. /**
  20. * @var \Magento\Framework\View\LayoutFactory
  21. */
  22. protected $layoutFactory;
  23. /**
  24. * @var \Magento\Framework\Controller\Result\RawFactory
  25. */
  26. protected $resultRawFactory;
  27. /**
  28. * @param Action\Context $context
  29. * @param \Magento\Framework\Controller\Result\RawFactory $resultRawFactory
  30. * @param \Magento\Framework\View\LayoutFactory $layoutFactory
  31. */
  32. public function __construct(
  33. Action\Context $context,
  34. \Magento\Framework\Controller\Result\RawFactory $resultRawFactory,
  35. \Magento\Framework\View\LayoutFactory $layoutFactory
  36. ) {
  37. $this->layoutFactory = $layoutFactory;
  38. $this->resultRawFactory = $resultRawFactory;
  39. parent::__construct($context);
  40. }
  41. /**
  42. * Chooser Source action
  43. *
  44. * @return \Magento\Framework\Controller\Result\Raw
  45. */
  46. public function execute()
  47. {
  48. $uniqId = $this->getRequest()->getParam('uniq_id');
  49. /** @var \Magento\Framework\View\Layout $layout */
  50. $layout = $this->layoutFactory->create();
  51. $pagesGrid = $layout->createBlock(
  52. \Magento\Cms\Block\Adminhtml\Page\Widget\Chooser::class,
  53. '',
  54. ['data' => ['id' => $uniqId]]
  55. );
  56. $html = $pagesGrid->toHtml();
  57. /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
  58. $resultRaw = $this->resultRawFactory->create();
  59. return $resultRaw->setContents($html);
  60. }
  61. }