diff --git a/app/code/Magento/Catalog/Helper/Product/View.php b/app/code/Magento/Catalog/Helper/Product/View.php index e56711f361de2..3141cbb933c5e 100644 --- a/app/code/Magento/Catalog/Helper/Product/View.php +++ b/app/code/Magento/Catalog/Helper/Product/View.php @@ -9,6 +9,7 @@ use Magento\Catalog\Model\Product\Attribute\LayoutUpdateManager; use Magento\Framework\App\ObjectManager; use Magento\Framework\View\Result\Page as ResultPage; +use Magento\Store\Model\ScopeInterface; /** * Catalog category helper @@ -173,25 +174,57 @@ public function initProductLayout(ResultPage $resultPage, $product, $params = nu } $urlSafeSku = rawurlencode($product->getSku()); + + $enableIdHandle = $this->scopeConfig->isSetFlag( + 'catalog/layout_settings/enable_id_handle', + ScopeInterface::SCOPE_STORE + ); + $enableAttributeSetHandle = $this->scopeConfig->isSetFlag( + 'catalog/layout_settings/enable_attribute_set_handle', + ScopeInterface::SCOPE_STORE + ); // Load default page handles and page configurations if ($params && $params->getBeforeHandles()) { foreach ($params->getBeforeHandles() as $handle) { $resultPage->addPageLayoutHandles(['type' => $product->getTypeId()], $handle, false); - $resultPage->addPageLayoutHandles(['attribute_set' => $product->getAttributeSetId()], $handle, false); - $resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku], $handle); + if ($enableAttributeSetHandle) { + $resultPage->addPageLayoutHandles( + ['attribute_set' => $product->getAttributeSetId()], + $handle, + false + ); + } + if ($enableIdHandle) { + $resultPage->addPageLayoutHandles( + ['id' => $product->getId(), 'sku' => $urlSafeSku], + $handle + ); + } } } $resultPage->addPageLayoutHandles(['type' => $product->getTypeId()], null, false); - $resultPage->addPageLayoutHandles(['attribute_set' => $product->getAttributeSetId()], null, false); - $resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku]); + if ($enableAttributeSetHandle) { + $resultPage->addPageLayoutHandles(['attribute_set' => $product->getAttributeSetId()], null, false); + } + if ($enableIdHandle) { + $resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku]); + } if ($params && $params->getAfterHandles()) { foreach ($params->getAfterHandles() as $handle) { $resultPage->addPageLayoutHandles(['type' => $product->getTypeId()], $handle, false); - $resultPage->addPageLayoutHandles(['attribute_set' => $product->getAttributeSetId()], $handle, false); - $resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku], $handle); + if ($enableAttributeSetHandle) { + $resultPage->addPageLayoutHandles( + ['attribute_set' => $product->getAttributeSetId()], + $handle, + false + ); + } + if ($enableIdHandle) { + $resultPage->addPageLayoutHandles(['id' => $product->getId(), 'sku' => $urlSafeSku], $handle); + } } } diff --git a/app/code/Magento/Catalog/etc/adminhtml/system.xml b/app/code/Magento/Catalog/etc/adminhtml/system.xml index e82b08b5229bd..614e988eabd21 100644 --- a/app/code/Magento/Catalog/etc/adminhtml/system.xml +++ b/app/code/Magento/Catalog/etc/adminhtml/system.xml @@ -1,8 +1,8 @@ @@ -240,6 +240,22 @@ Jpeg quality for resized images 1-100%. + +
+ + advanced + Magento_Developer::config + + + + + Magento\Config\Model\Config\Source\Yesno + + + + Magento\Config\Model\Config\Source\Yesno + +
diff --git a/app/code/Magento/Catalog/etc/config.xml b/app/code/Magento/Catalog/etc/config.xml index 04f5e8fb3e883..c38f31d796e04 100644 --- a/app/code/Magento/Catalog/etc/config.xml +++ b/app/code/Magento/Catalog/etc/config.xml @@ -1,8 +1,8 @@ @@ -97,6 +97,12 @@ datetime - + + + + 1 + 0 + +