| Current Path : /home/rtorresani/www/vendor/magento/module-url-rewrite/Controller/Adminhtml/Url/ |
| Current File : //home/rtorresani/www/vendor/magento/module-url-rewrite/Controller/Adminhtml/Url/Rewrite.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\UrlRewrite\Controller\Adminhtml\Url;
use Magento\Backend\App\Action;
use Magento\Catalog\Model\Category;
use Magento\Catalog\Model\Product;
/**
* URL rewrite adminhtml controller
*/
abstract class Rewrite extends Action
{
/**
* Authorization level of a basic admin session
*
* @see _isAllowed()
*/
const ADMIN_RESOURCE = 'Magento_UrlRewrite::urlrewrite';
/**#@+
* Entity types
*/
const ENTITY_TYPE_CUSTOM = 'custom';
const ENTITY_TYPE_PRODUCT = 'product';
const ENTITY_TYPE_CATEGORY = 'category';
const ENTITY_TYPE_CMS_PAGE = 'cms-page';
/**#@-*/
/**#@-*/
protected $_product;
/**
* @var Category
*/
protected $_category;
/**
* @var \Magento\Cms\Model\Page
*/
protected $_cmsPage;
/**
* @var \Magento\UrlRewrite\Model\UrlRewrite
*/
protected $_urlRewrite;
/**
* Get Category from request
*
* @return Category
*/
protected function _getCategory()
{
if (!$this->_category) {
$this->_category = $this->_objectManager->create(\Magento\Catalog\Model\Category::class);
$categoryId = (int)$this->getRequest()->getParam('category', 0);
$urlRewrite = $this->_getUrlRewrite();
if (!$categoryId && $urlRewrite->getId()) {
$metaData = $urlRewrite->getMetadata();
if ($urlRewrite->getEntityType() === self::ENTITY_TYPE_CATEGORY) {
$categoryId = $urlRewrite->getEntityId();
} elseif (!empty($metaData['category_id'])) {
$categoryId = $metaData['category_id'];
}
}
if ($categoryId) {
$this->_category->load($categoryId);
}
}
return $this->_category;
}
/**
* Get Product from request
*
* @return Product
*/
protected function _getProduct()
{
if (!$this->_product) {
$this->_product = $this->_objectManager->create(\Magento\Catalog\Model\Product::class);
$productId = (int)$this->getRequest()->getParam('product', 0);
$urlRewrite = $this->_getUrlRewrite();
if (!$productId && $urlRewrite->getId() && $urlRewrite->getEntityType() === self::ENTITY_TYPE_PRODUCT) {
$productId = $this->_getUrlRewrite()->getEntityId();
}
if ($productId) {
$this->_product->load($productId);
}
}
return $this->_product;
}
/**
* Get CMS page from request
*
* @return \Magento\Cms\Model\Page
*/
protected function _getCmsPage()
{
if (!$this->_cmsPage) {
$this->_cmsPage = $this->_objectManager->create(\Magento\Cms\Model\Page::class);
$cmsPageId = (int)$this->getRequest()->getParam('cms_page', 0);
$urlRewrite = $this->_getUrlRewrite();
if (!$cmsPageId && $urlRewrite->getId() && $urlRewrite->getEntityType() === self::ENTITY_TYPE_CMS_PAGE) {
$cmsPageId = $this->_getUrlRewrite()->getEntityId();
}
if ($cmsPageId) {
$this->_cmsPage->load($cmsPageId);
}
}
return $this->_cmsPage;
}
/**
* Get URL rewrite from request
*
* @return \Magento\UrlRewrite\Model\UrlRewrite
*/
protected function _getUrlRewrite()
{
if (!$this->_urlRewrite) {
$this->_urlRewrite = $this->_objectManager->create(\Magento\UrlRewrite\Model\UrlRewrite::class);
$urlRewriteId = (int)$this->getRequest()->getParam('id', 0);
if ($urlRewriteId) {
$this->_urlRewrite->load($urlRewriteId);
}
}
return $this->_urlRewrite;
}
}