* @link https://www.oxidmodule.com */ declare(strict_types=1); namespace D3\DebugBar\Modules\Core; use D3\DebugBar\Application\Component\DebugBarComponent; use OxidEsales\Eshop\Application\Controller\FrontendController; use OxidEsales\Eshop\Core\Registry; class ShopControl_DebugBar extends ShopControl_DebugBar_parent { public function __construct() { $this->_d3AddDebugBarComponent(); parent::__construct(); } /** * @return void */ protected function _d3AddDebugBarComponent(): void { $userComponentNames = Registry::getConfig()->getConfigParam('aUserComponentNames'); $d3CmpName = DebugBarComponent::class; $blDontUseCache = 1; if (!is_array($userComponentNames)) { $userComponentNames = []; } if (!in_array($d3CmpName, array_keys($userComponentNames))) { $userComponentNames[$d3CmpName] = $blDontUseCache; Registry::getConfig()->setConfigParam('aUserComponentNames', $userComponentNames); } } public function __destruct() { if (!isAdmin()) { /** @var FrontendController $activeView */ $activeView = Registry::getConfig()->getTopActiveView(); /** @var DebugBarComponent|null $debugBarComponent */ $debugBarComponent = $activeView->getComponent(DebugBarComponent::class); if ($debugBarComponent) { echo $debugBarComponent->getRenderer()->renderHead(); $debugBarComponent->addTimelineMessures(); echo $debugBarComponent->getRenderer()->render(); } } } }