Save.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\Email\Controller\Adminhtml\Email\Template;
  8. use Magento\Framework\App\TemplateTypesInterface;
  9. class Save extends \Magento\Email\Controller\Adminhtml\Email\Template
  10. {
  11. /**
  12. * Save transactional email action
  13. *
  14. * @return void
  15. */
  16. public function execute()
  17. {
  18. $request = $this->getRequest();
  19. $id = $this->getRequest()->getParam('id');
  20. $template = $this->_initTemplate('id');
  21. if (!$template->getId() && $id) {
  22. $this->messageManager->addErrorMessage(__('This email template no longer exists.'));
  23. $this->_redirect('adminhtml/*/');
  24. return;
  25. }
  26. try {
  27. $template->setTemplateSubject(
  28. $request->getParam('template_subject')
  29. )->setTemplateCode(
  30. $request->getParam('template_code')
  31. )->setTemplateText(
  32. $request->getParam('template_text')
  33. )->setTemplateStyles(
  34. $request->getParam('template_styles')
  35. )->setModifiedAt(
  36. $this->_objectManager->get(\Magento\Framework\Stdlib\DateTime\DateTime::class)->gmtDate()
  37. )->setOrigTemplateCode(
  38. $request->getParam('orig_template_code')
  39. )->setOrigTemplateVariables(
  40. $request->getParam('orig_template_variables')
  41. );
  42. if (!$template->getId()) {
  43. $template->setTemplateType(TemplateTypesInterface::TYPE_HTML);
  44. }
  45. if ($request->getParam('_change_type_flag')) {
  46. $template->setTemplateType(TemplateTypesInterface::TYPE_TEXT);
  47. $template->setTemplateStyles('');
  48. }
  49. $template->save();
  50. $this->_objectManager->get(\Magento\Backend\Model\Session::class)->setFormData(false);
  51. $this->messageManager->addSuccessMessage(__('You saved the email template.'));
  52. $this->_redirect('adminhtml/*');
  53. } catch (\Exception $e) {
  54. $this->_objectManager->get(
  55. \Magento\Backend\Model\Session::class
  56. )->setData(
  57. 'email_template_form_data',
  58. $request->getParams()
  59. );
  60. $this->messageManager->addErrorMessage($e->getMessage());
  61. $this->_forward('new');
  62. }
  63. }
  64. }