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

example.php //via Content Seite
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

example2.php
class nrExt_ViewConfig extends nrExt_ViewConfig_parent
{
  public function __construct()
  {
    parent::__construct();

    $this->gtmClassMap['content'] = ContentTag::class;
  }
}

Last updated

Was this helpful?