123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Cms\Controller\Adminhtml\Page;
- use Magento\Framework\App\Action\HttpPostActionInterface;
- /**
- * Delete CMS page action.
- */
- class Delete extends \Magento\Backend\App\Action implements HttpPostActionInterface
- {
- /**
- * Authorization level of a basic admin session
- *
- * @see _isAllowed()
- */
- const ADMIN_RESOURCE = 'Magento_Cms::page_delete';
- /**
- * Delete action
- *
- * @return \Magento\Backend\Model\View\Result\Redirect
- */
- public function execute()
- {
- // check if we know what should be deleted
- $id = $this->getRequest()->getParam('page_id');
- /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
- $resultRedirect = $this->resultRedirectFactory->create();
-
- if ($id) {
- $title = "";
- try {
- // init model and delete
- $model = $this->_objectManager->create(\Magento\Cms\Model\Page::class);
- $model->load($id);
-
- $title = $model->getTitle();
- $model->delete();
-
- // display success message
- $this->messageManager->addSuccessMessage(__('The page has been deleted.'));
-
- // go to grid
- $this->_eventManager->dispatch('adminhtml_cmspage_on_delete', [
- 'title' => $title,
- 'status' => 'success'
- ]);
-
- return $resultRedirect->setPath('*/*/');
- } catch (\Exception $e) {
- $this->_eventManager->dispatch(
- 'adminhtml_cmspage_on_delete',
- ['title' => $title, 'status' => 'fail']
- );
- // display error message
- $this->messageManager->addErrorMessage($e->getMessage());
- // go back to edit form
- return $resultRedirect->setPath('*/*/edit', ['page_id' => $id]);
- }
- }
-
- // display error message
- $this->messageManager->addErrorMessage(__('We can\'t find a page to delete.'));
-
- // go to grid
- return $resultRedirect->setPath('*/*/');
- }
- }
|