Prevent "OXID Logger.ERROR: D3\GoogleAnalytics4\Modules\Application\Controller\d3GtmStartController is not an instance of OxidEsales\Eshop\Application\Component\Widget\WidgetController"

This commit is contained in:
Markus Gärtner 2024-08-08 10:21:22 +02:00
parent 81c7051f7b
commit 7bc73893c3
3 changed files with 70 additions and 0 deletions

View File

@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
namespace D3\GoogleAnalytics4\Application\Component\Widget;
class d3GtmStartWidget extends \OxidEsales\Eshop\Application\Component\Widget\WidgetController
{
}

View File

@ -0,0 +1,59 @@
<?php
namespace D3\GoogleAnalytics4\Modules\Core;
use OxidEsales\EshopCommunity\Core\Registry;
class WidgetControl extends WidgetControl_parent{
protected function _getStartController() // phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore
{
/*
* array (
'force_sid' => '2pistlaubiq58qtg3moudei0la',
'lang' => '0',
'actcontrol' => 'details',
'anid' => '064471',
'cl' => 'oxwarticledetails',
'cnid' => '159dd0f2fb2bd6e24ace53a0f1913797',
'listtype' => 'list',
'nocookie' => '1',
'oxwparent' => 'details',
'sid' => '2pistlaubiq58qtg3moudei0la',
'stoken' => 'A22D0F9E',
'varselid' =>
array (
0 => 'b842982bf522aa839bd88221f562fce8',
),
)
*/
$aParameter = $_GET;
if( is_null($aParameter['actcontrol'])
&& is_null($aParameter['actcontrol'])
&& is_null($aParameter['actcontrol'])
)
{
return 'D3\GoogleAnalytics4\Application\Component\Widget\d3GtmStartWidget';
}
return $this->getStartControllerKey();
}
protected function getStartControllerKey()
{
$controllerKey = Registry::getConfig()->getRequestControllerId();
// Use default route in case no controller id is given
if (!$controllerKey) {
$session = \OxidEsales\Eshop\Core\Registry::getSession();
if ($this->isAdmin()) {
$controllerKey = $session->getVariable("auth") ? 'admin_start' : 'login';
} else {
$controllerKey = $this->getFrontendStartControllerKey();
}
$session->setVariable('cl', $controllerKey);
}
return $controllerKey;
}
}

View File

@ -60,6 +60,7 @@ $aModule = [
'extend' => [
// Core
OEViewConfig::class => ViewConfig::class,
\OxidEsales\Eshop\Core\WidgetControl::class => \D3\GoogleAnalytics4\Modules\Core\WidgetControl::class,
// Model
OECategory::class => Category::class,