Save.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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\HttpPostActionInterface as HttpPostActionInterface;
  9. use Magento\Framework\App\TemplateTypesInterface;
  10. use Magento\Framework\Exception\LocalizedException;
  11. class Save extends \Magento\Newsletter\Controller\Adminhtml\Template implements HttpPostActionInterface
  12. {
  13. /**
  14. * Save Newsletter Template
  15. *
  16. * @return void
  17. */
  18. public function execute()
  19. {
  20. $request = $this->getRequest();
  21. if (!$request->isPost()) {
  22. $this->getResponse()->setRedirect($this->getUrl('*/template'));
  23. return;
  24. }
  25. $template = $this->_objectManager->create(\Magento\Newsletter\Model\Template::class);
  26. $id = (int)$request->getParam('id');
  27. if ($id) {
  28. $template->load($id);
  29. }
  30. try {
  31. $template->addData(
  32. $request->getParams()
  33. )->setTemplateSubject(
  34. $request->getParam('subject')
  35. )->setTemplateCode(
  36. $request->getParam('code')
  37. )->setTemplateSenderEmail(
  38. $request->getParam('sender_email')
  39. )->setTemplateSenderName(
  40. $request->getParam('sender_name')
  41. )->setTemplateText(
  42. $request->getParam('text')
  43. )->setTemplateStyles(
  44. $request->getParam('styles')
  45. )->setModifiedAt(
  46. $this->_objectManager->get(\Magento\Framework\Stdlib\DateTime\DateTime::class)->gmtDate()
  47. );
  48. if (!$template->getId()) {
  49. $template->setTemplateType(TemplateTypesInterface::TYPE_HTML);
  50. }
  51. if ($this->getRequest()->getParam('_change_type_flag')) {
  52. $template->setTemplateType(TemplateTypesInterface::TYPE_TEXT);
  53. $template->setTemplateStyles('');
  54. }
  55. if ($this->getRequest()->getParam('_save_as_flag')) {
  56. $template->setId(null);
  57. }
  58. $template->save();
  59. $this->messageManager->addSuccess(__('The newsletter template has been saved.'));
  60. $this->_getSession()->setFormData(false);
  61. $this->_getSession()->unsPreviewData();
  62. $this->_redirect('*/template');
  63. return;
  64. } catch (LocalizedException $e) {
  65. $this->messageManager->addError(nl2br($e->getMessage()));
  66. $this->_getSession()->setData('newsletter_template_form_data', $this->getRequest()->getParams());
  67. } catch (\Exception $e) {
  68. $this->messageManager->addException($e, __('Something went wrong while saving this template.'));
  69. $this->_getSession()->setData('newsletter_template_form_data', $this->getRequest()->getParams());
  70. }
  71. $this->_forward('new');
  72. }
  73. }