Preview.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\Newsletter\Controller\Adminhtml\Template;
  8. use Magento\Framework\App\Action\HttpGetActionInterface;
  9. /**
  10. * View a rendered template.
  11. */
  12. class Preview extends \Magento\Newsletter\Controller\Adminhtml\Template implements HttpGetActionInterface
  13. {
  14. /**
  15. * Preview Newsletter template
  16. *
  17. * @return void|$this
  18. */
  19. public function execute()
  20. {
  21. $this->_view->loadLayout();
  22. $data = $this->getRequest()->getParams();
  23. $isEmptyRequestData = empty($data) || !isset($data['id']);
  24. $isEmptyPreviewData = !$this->_getSession()->hasPreviewData() || empty($this->_getSession()->getPreviewData());
  25. if ($isEmptyRequestData && $isEmptyPreviewData) {
  26. $this->_forward('noroute');
  27. return $this;
  28. }
  29. // set default value for selected store
  30. /** @var \Magento\Store\Model\StoreManager $storeManager */
  31. $storeManager = $this->_objectManager->get(\Magento\Store\Model\StoreManager::class);
  32. $defaultStore = $storeManager->getDefaultStoreView();
  33. if (!$defaultStore) {
  34. $allStores = $storeManager->getStores();
  35. if (isset($allStores[0])) {
  36. $defaultStore = $allStores[0];
  37. }
  38. }
  39. $data['preview_store_id'] = $defaultStore ? $defaultStore->getId() : null;
  40. $this->_view->getLayout()->getBlock('preview_form')->setFormData($data);
  41. $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Newsletter Templates'));
  42. $this->_view->renderLayout();
  43. }
  44. }