| Current Path : /home/rtorresani/www/vendor/magento/module-url-rewrite/Controller/Adminhtml/Url/Rewrite/ |
| Current File : //home/rtorresani/www/vendor/magento/module-url-rewrite/Controller/Adminhtml/Url/Rewrite/Edit.php |
<?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();
}
}