diff --git a/app/code/Magento/Backend/etc/adminhtml/system.xml b/app/code/Magento/Backend/etc/adminhtml/system.xml index 162aba1cfa3ef6fd6d86ada42171e834be6bcb80..e755e364cde87cdb9b7b04ad6b5d7e86ee8eb35b 100644 --- a/app/code/Magento/Backend/etc/adminhtml/system.xml +++ b/app/code/Magento/Backend/etc/adminhtml/system.xml @@ -142,13 +142,17 @@ <label>Developer</label> <tab>advanced</tab> <resource>Magento_Backend::dev</resource> - <group id="debug" translate="label" type="text" sortOrder="20" showInDefault="0" showInWebsite="1" showInStore="1"> + <group id="debug" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Debug</label> - <field id="template_hints" translate="label" type="select" sortOrder="20" showInDefault="0" showInWebsite="1" showInStore="1"> - <label>Template Path Hints</label> + <field id="template_hints_storefront" translate="label" type="select" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1"> + <label>Enabled Template Path Hints for Storefront</label> <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> </field> - <field id="template_hints_blocks" translate="label" type="select" sortOrder="21" showInDefault="0" showInWebsite="1" showInStore="1"> + <field id="template_hints_admin" translate="label" type="select" sortOrder="20" showInDefault="1" showInWebsite="0" showInStore="0"> + <label>Enabled Template Path Hints for Admin</label> + <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> + </field> + <field id="template_hints_blocks" translate="label" type="select" sortOrder="21" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Add Block Names to Hints</label> <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> </field> diff --git a/app/code/Magento/Developer/Model/TemplateEngine/Plugin/DebugHints.php b/app/code/Magento/Developer/Model/TemplateEngine/Plugin/DebugHints.php index 9d816ef52028891ba125124379e6be7cdb6ebf96..e0cb96a0f220fb5a505caf8c3aa6b7acfe0731fc 100644 --- a/app/code/Magento/Developer/Model/TemplateEngine/Plugin/DebugHints.php +++ b/app/code/Magento/Developer/Model/TemplateEngine/Plugin/DebugHints.php @@ -5,87 +5,100 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ - -// @codingStandardsIgnoreFile - namespace Magento\Developer\Model\TemplateEngine\Plugin; +use Magento\Developer\Helper\Data as DevHelper; +use Magento\Developer\Model\TemplateEngine\Decorator\DebugHintsFactory; +use Magento\Framework\App\Config\ScopeConfigInterface; +use Magento\Framework\View\TemplateEngineFactory; +use Magento\Framework\View\TemplateEngineInterface; use Magento\Store\Model\ScopeInterface; +use Magento\Store\Model\StoreManagerInterface; class DebugHints { - /**#@+ - * XPath of configuration of the debugging hints + /** + * XPath of configuration of the debug block names */ - const XML_PATH_DEBUG_TEMPLATE_HINTS = 'dev/debug/template_hints'; - const XML_PATH_DEBUG_TEMPLATE_HINTS_BLOCKS = 'dev/debug/template_hints_blocks'; - /**#@-*/ + /** + * @var ScopeConfigInterface + */ + protected $scopeConfig; /** - * @var \Magento\Framework\ObjectManagerInterface + * @var StoreManagerInterface */ - private $objectManager; + protected $storeManager; /** - * @var \Magento\Framework\App\Config\ScopeConfigInterface + * @var DevHelper */ - private $scopeConfig; + protected $devHelper; /** - * @var \Magento\Store\Model\StoreManagerInterface + * @var DebugHintsFactory */ - private $storeManager; + protected $debugHintsFactory; /** - * @var \Magento\Developer\Helper\Data + * XPath of configuration of the debug hints + + * Allowed values: + * dev/debug/template_hints_storefront + * dev/debug/template_hints_admin + * + * @var string */ - private $devHelper; + protected $debugHintsPath; /** - * @param \Magento\Framework\ObjectManagerInterface $objectManager - * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig - * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Developer\Helper\Data $devHelper + * @param ScopeConfigInterface $scopeConfig + * @param StoreManagerInterface $storeManager + * @param DevHelper $devHelper + * @param DebugHintsFactory $debugHintsFactory + * @param string $debugHintsPath */ public function __construct( - \Magento\Framework\ObjectManagerInterface $objectManager, - \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, - \Magento\Store\Model\StoreManagerInterface $storeManager, - \Magento\Developer\Helper\Data $devHelper + ScopeConfigInterface $scopeConfig, + StoreManagerInterface $storeManager, + DevHelper $devHelper, + DebugHintsFactory $debugHintsFactory, + $debugHintsPath ) { - $this->objectManager = $objectManager; $this->scopeConfig = $scopeConfig; $this->storeManager = $storeManager; $this->devHelper = $devHelper; + $this->debugHintsFactory = $debugHintsFactory; + $this->debugHintsPath = $debugHintsPath; } /** * Wrap template engine instance with the debugging hints decorator, depending of the store configuration * - * @param \Magento\Framework\View\TemplateEngineFactory $subject - * @param \Magento\Framework\View\TemplateEngineInterface $invocationResult + * @param TemplateEngineFactory $subject + * @param TemplateEngineInterface $invocationResult * - * @return \Magento\Framework\View\TemplateEngineInterface + * @return TemplateEngineInterface * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterCreate( - \Magento\Framework\View\TemplateEngineFactory $subject, - \Magento\Framework\View\TemplateEngineInterface $invocationResult + TemplateEngineFactory $subject, + TemplateEngineInterface $invocationResult ) { $storeCode = $this->storeManager->getStore()->getCode(); - if ($this->scopeConfig->getValue(self::XML_PATH_DEBUG_TEMPLATE_HINTS, ScopeInterface::SCOPE_STORE, $storeCode) + if ($this->scopeConfig->getValue($this->debugHintsPath, ScopeInterface::SCOPE_STORE, $storeCode) && $this->devHelper->isDevAllowed()) { $showBlockHints = $this->scopeConfig->getValue( self::XML_PATH_DEBUG_TEMPLATE_HINTS_BLOCKS, ScopeInterface::SCOPE_STORE, $storeCode ); - return $this->objectManager->create( - 'Magento\Developer\Model\TemplateEngine\Decorator\DebugHints', - ['subject' => $invocationResult, 'showBlockHints' => $showBlockHints] - ); + return $this->debugHintsFactory->create([ + 'subject' => $invocationResult, + 'showBlockHints' => $showBlockHints, + ]); } return $invocationResult; } diff --git a/app/code/Magento/Developer/etc/adminhtml/di.xml b/app/code/Magento/Developer/etc/adminhtml/di.xml new file mode 100644 index 0000000000000000000000000000000000000000..ff22a95f0e92c698ff6d80185c0f5e505fca1e32 --- /dev/null +++ b/app/code/Magento/Developer/etc/adminhtml/di.xml @@ -0,0 +1,17 @@ +<?xml version="1.0"?> +<!-- +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd"> + <type name="Magento\Framework\View\TemplateEngineFactory"> + <plugin name="debug_hints" type="Magento\Developer\Model\TemplateEngine\Plugin\DebugHints" sortOrder="10"/> + </type> + <type name="Magento\Developer\Model\TemplateEngine\Plugin\DebugHints"> + <arguments> + <argument name="debugHintsPath" xsi:type="string">dev/debug/template_hints_admin</argument> + </arguments> + </type> +</config> diff --git a/app/code/Magento/Developer/etc/frontend/di.xml b/app/code/Magento/Developer/etc/frontend/di.xml index 0c1a3a45d3b261f71ec977b2ee6a2201b6d37650..3fd5f545b9d04f1f9c68f9b2b969984c9ffaefba 100644 --- a/app/code/Magento/Developer/etc/frontend/di.xml +++ b/app/code/Magento/Developer/etc/frontend/di.xml @@ -9,4 +9,9 @@ <type name="Magento\Framework\View\TemplateEngineFactory"> <plugin name="debug_hints" type="Magento\Developer\Model\TemplateEngine\Plugin\DebugHints" sortOrder="10"/> </type> + <type name="Magento\Developer\Model\TemplateEngine\Plugin\DebugHints"> + <arguments> + <argument name="debugHintsPath" xsi:type="string">dev/debug/template_hints_storefront</argument> + </arguments> + </type> </config> diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php index 353b7bef2f399d008fcee3a39a21802e0b9cb333..fa4ee8e1c8825fe8f62bf1d774f654f9aa7139b5 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php @@ -168,7 +168,6 @@ return [ [ 'XML_PATH_DEBUG_TEMPLATE_HINTS', 'Magento\Framework\View\Element\Template', - 'Magento\Core\Model\TemplateEngine\Plugin::XML_PATH_DEBUG_TEMPLATE_HINTS', ], [ 'XML_PATH_DEBUG_TEMPLATE_HINTS_BLOCKS',