Ein neues Tag für einen neuen Controller hinzufügen
Es muss eine Tag-Klasse erstellt werden, welche von \norisk\nrGoogleTagManager\Core\Tag\nrGTM_Tag
erbt und die public method getTag
implementiert
class ContentTag extends \norisk\nrGoogleTagManager\Core\Tag\nrGTM_Tag
{
public function getTag(): array
{
$parent = parent::getTag();
$contentTag = $this->getContentTag();
return $this->output($parent, $contentTag);
}
protected function getContentTag(): array
{
$contentId = \OxidEsales\Eshop\Core\Registry::getConfig()->getRequestParameter('oxcid');
$loadId = \OxidEsales\Eshop\Core\Registry::getConfig()->getRequestParameter('oxloadid');
$content = oxNew(\OxidEsales\Eshop\Application\Model\Content::class);
$loaded = false;
if ($loadId) {
$loaded = $content->loadByIdent($loadId);
} elseif ($contentId) {
$loaded = $content->load($contentId);
}
if (!$loaded) {
return [];
}
return [
'title' => $content->getFieldData('oxtitle'),
'id' => $content->getId(),
];
}
}
Die Klasse ViewConfig
muss erweitert werden, um den neuen Controller und die Tag-Klasse zu nrGTM_ViewConfig::$gtmClassMap
hinzuzufügen
class nrExt_ViewConfig extends nrExt_ViewConfig_parent
{
public function __construct()
{
parent::__construct();
$this->gtmClassMap['content'] = ContentTag::class;
}
}
Last updated
Was this helpful?