resultPageFactory = $resultPageFactory; $this->_coreRegistry = $registry; parent::__construct($context); } /** * Init actions * * @return \Magento\Backend\Model\View\Result\Page */ protected function _initAction() { // load layout, set active menu and breadcrumbs /** @var \Magento\Backend\Model\View\Result\Page $resultPage */ $resultPage = $this->resultPageFactory->create(); $resultPage->setActiveMenu('Magento_Cms::cms_page') ->addBreadcrumb(__('CMS'), __('CMS')) ->addBreadcrumb(__('Manage Pages'), __('Manage Pages')); return $resultPage; } /** * Edit CMS page * * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect * @SuppressWarnings(PHPMD.NPathComplexity) */ public function execute() { // 1. Get ID and create model $id = $this->getRequest()->getParam('page_id'); $model = $this->_objectManager->create(\Magento\Cms\Model\Page::class); // 2. Initial checking if ($id) { $model->load($id); if (!$model->getId()) { $this->messageManager->addErrorMessage(__('This page no longer exists.')); /** \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultRedirectFactory->create(); return $resultRedirect->setPath('*/*/'); } } $this->_coreRegistry->register('cms_page', $model); // 5. Build edit form /** @var \Magento\Backend\Model\View\Result\Page $resultPage */ $resultPage = $this->_initAction(); $resultPage->addBreadcrumb( $id ? __('Edit Page') : __('New Page'), $id ? __('Edit Page') : __('New Page') ); $resultPage->getConfig()->getTitle()->prepend(__('Pages')); $resultPage->getConfig()->getTitle() ->prepend($model->getId() ? $model->getTitle() : __('New Page')); return $resultPage; } }