resultPageFactory = $resultPageFactory; $this->_coreRegistry = $registry; parent::__construct($context); } /** * {@inheritdoc} */ protected function _isAllowed() { return $this->_authorization->isAllowed('FME_Banners::banners'); } /** * 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('FME_Banners::banners') ->addBreadcrumb(__('Banners'), __('Banners')) ->addBreadcrumb(__('Manage Banners'), __('Manage Banners')); 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('banners_id'); $model = $this->_objectManager->create('FME\Banners\Model\Banners'); // 2. Initial checking if ($id) { $model->load($id); if (!$model->getId()) { $this->messageManager->addError(__('This record no longer exists.')); /** \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultRedirectFactory->create(); return $resultRedirect->setPath('*/*/'); } } // 3. Set entered data if was error when we do save $data = $this->_objectManager->get('Magento\Backend\Model\Session')->getFormData(true); if (!empty($data)) { $model->setData($data); } // 4. Register model to use later in blocks $this->_coreRegistry->register('banners', $model); // 5. Build edit form /** @var \Magento\Backend\Model\View\Result\Page $resultPage */ $resultPage = $this->_initAction(); $resultPage->addBreadcrumb( $id ? __('Edit Banners') : __('New Banners'), $id ? __('Edit Banners') : __('New Banners') ); $resultPage->getConfig()->getTitle()->prepend(__('Banners')); $resultPage->getConfig()->getTitle() ->prepend($model->getId() ? __('Edit "%1"', $model->getTitle()) : __('New Banners')); return $resultPage; } }