123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- /**
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite;
- use Magento\Framework\App\Action\HttpGetActionInterface as HttpGetActionInterface;
- class Edit extends \Magento\UrlRewrite\Controller\Adminhtml\Url\Rewrite implements HttpGetActionInterface
- {
- /**#@+
- * Modes
- */
- const ID_MODE = 'id';
- const PRODUCT_MODE = 'product';
- const CATEGORY_MODE = 'category';
- const CMS_PAGE_MODE = 'cms_page';
- /**#@-*/
- /**
- * Get current mode
- *
- * @return string
- */
- protected function _getMode()
- {
- if ($this->_getProduct()->getId() || $this->getRequest()->has('product')) {
- $mode = self::PRODUCT_MODE;
- } elseif ($this->_getCategory()->getId() || $this->getRequest()->has('category')) {
- $mode = self::CATEGORY_MODE;
- } elseif ($this->_getCmsPage()->getId() || $this->getRequest()->has('cms_page')) {
- $mode = self::CMS_PAGE_MODE;
- } elseif ($this->getRequest()->has('id')) {
- $mode = self::ID_MODE;
- } else {
- $mode = $this->_objectManager->get(\Magento\UrlRewrite\Block\Selector::class)->getDefaultMode();
- }
- return $mode;
- }
- /**
- * Show urlrewrite edit/create page
- *
- * @return void
- */
- public function execute()
- {
- $this->_view->loadLayout();
- $this->_setActiveMenu('Magento_UrlRewrite::urlrewrite');
- $mode = $this->_getMode();
- switch ($mode) {
- case self::PRODUCT_MODE:
- $editBlock = $this->_view->getLayout()->createBlock(
- \Magento\UrlRewrite\Block\Catalog\Product\Edit::class,
- '',
- [
- 'data' => [
- 'category' => $this->_getCategory(),
- 'product' => $this->_getProduct(),
- 'is_category_mode' => $this->getRequest()->has('category'),
- 'url_rewrite' => $this->_getUrlRewrite(),
- ]
- ]
- );
- break;
- case self::CATEGORY_MODE:
- $editBlock = $this->_view->getLayout()->createBlock(
- \Magento\UrlRewrite\Block\Catalog\Category\Edit::class,
- '',
- [
- 'data' => ['category' => $this->_getCategory(), 'url_rewrite' => $this->_getUrlRewrite()]
- ]
- );
- break;
- case self::CMS_PAGE_MODE:
- $editBlock = $this->_view->getLayout()->createBlock(
- \Magento\UrlRewrite\Block\Cms\Page\Edit::class,
- '',
- [
- 'data' => ['cms_page' => $this->_getCmsPage(), 'url_rewrite' => $this->_getUrlRewrite()]
- ]
- );
- break;
- case self::ID_MODE:
- default:
- $editBlock = $this->_view->getLayout()->createBlock(
- \Magento\UrlRewrite\Block\Edit::class,
- '',
- ['data' => ['url_rewrite' => $this->_getUrlRewrite()]]
- );
- break;
- }
- $this->_view->getPage()->getConfig()->getTitle()->prepend($editBlock->getHeaderText());
- $this->_addContent($editBlock);
- $this->_view->renderLayout();
- }
- }
|