Edit.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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;
  7. use Magento\Framework\App\Action\HttpGetActionInterface;
  8. use Magento\Backend\App\Action;
  9. /**
  10. * Edit CMS page action.
  11. */
  12. class Edit extends \Magento\Backend\App\Action implements HttpGetActionInterface
  13. {
  14. /**
  15. * Authorization level of a basic admin session
  16. *
  17. * @see _isAllowed()
  18. */
  19. const ADMIN_RESOURCE = 'Magento_Cms::save';
  20. /**
  21. * Core registry
  22. *
  23. * @var \Magento\Framework\Registry
  24. */
  25. protected $_coreRegistry;
  26. /**
  27. * @var \Magento\Framework\View\Result\PageFactory
  28. */
  29. protected $resultPageFactory;
  30. /**
  31. * @param Action\Context $context
  32. * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
  33. * @param \Magento\Framework\Registry $registry
  34. */
  35. public function __construct(
  36. Action\Context $context,
  37. \Magento\Framework\View\Result\PageFactory $resultPageFactory,
  38. \Magento\Framework\Registry $registry
  39. ) {
  40. $this->resultPageFactory = $resultPageFactory;
  41. $this->_coreRegistry = $registry;
  42. parent::__construct($context);
  43. }
  44. /**
  45. * Init actions
  46. *
  47. * @return \Magento\Backend\Model\View\Result\Page
  48. */
  49. protected function _initAction()
  50. {
  51. // load layout, set active menu and breadcrumbs
  52. /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
  53. $resultPage = $this->resultPageFactory->create();
  54. $resultPage->setActiveMenu('Magento_Cms::cms_page')
  55. ->addBreadcrumb(__('CMS'), __('CMS'))
  56. ->addBreadcrumb(__('Manage Pages'), __('Manage Pages'));
  57. return $resultPage;
  58. }
  59. /**
  60. * Edit CMS page
  61. *
  62. * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
  63. * @SuppressWarnings(PHPMD.NPathComplexity)
  64. */
  65. public function execute()
  66. {
  67. // 1. Get ID and create model
  68. $id = $this->getRequest()->getParam('page_id');
  69. $model = $this->_objectManager->create(\Magento\Cms\Model\Page::class);
  70. // 2. Initial checking
  71. if ($id) {
  72. $model->load($id);
  73. if (!$model->getId()) {
  74. $this->messageManager->addErrorMessage(__('This page no longer exists.'));
  75. /** \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
  76. $resultRedirect = $this->resultRedirectFactory->create();
  77. return $resultRedirect->setPath('*/*/');
  78. }
  79. }
  80. $this->_coreRegistry->register('cms_page', $model);
  81. // 5. Build edit form
  82. /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
  83. $resultPage = $this->_initAction();
  84. $resultPage->addBreadcrumb(
  85. $id ? __('Edit Page') : __('New Page'),
  86. $id ? __('Edit Page') : __('New Page')
  87. );
  88. $resultPage->getConfig()->getTitle()->prepend(__('Pages'));
  89. $resultPage->getConfig()->getTitle()
  90. ->prepend($model->getId() ? $model->getTitle() : __('New Page'));
  91. return $resultPage;
  92. }
  93. }