alter Zwiscehnstand
This commit is contained in:
parent
827704a2b0
commit
ed767efa8a
70
Application/Extend/ViewConfig.php
Normal file → Executable file
70
Application/Extend/ViewConfig.php
Normal file → Executable file
@ -25,46 +25,74 @@ class ViewConfig extends ViewConfig_parent
|
|||||||
|
|
||||||
// Google Tag Manager Container ID
|
// Google Tag Manager Container ID
|
||||||
private $sContainerId = null;
|
private $sContainerId = null;
|
||||||
|
|
||||||
public function getGtmContainerId()
|
public function getGtmContainerId()
|
||||||
{
|
{
|
||||||
if ( $this->sContainerId === null ) {
|
if ($this->sContainerId === null)
|
||||||
|
{
|
||||||
$this->sContainerId = ContainerFactory::getInstance()
|
$this->sContainerId = ContainerFactory::getInstance()
|
||||||
->getContainer()
|
->getContainer()
|
||||||
->get(ModuleSettingBridgeInterface::class)
|
->get(ModuleSettingBridgeInterface::class)
|
||||||
->get('vt_gtm_containerid', 'vt-gtm');
|
->get('vt_gtm_sContainerID', 'vt-gtm');
|
||||||
}
|
}
|
||||||
return $this->sContainerId;
|
return $this->sContainerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private $blGA4enabled = null;
|
||||||
|
|
||||||
|
public function isGA4enabled()
|
||||||
|
{
|
||||||
|
if ($this->blGA4enabled === null)
|
||||||
|
{
|
||||||
|
$this->sContainerId = ContainerFactory::getInstance()
|
||||||
|
->getContainer()
|
||||||
|
->get(ModuleSettingBridgeInterface::class)
|
||||||
|
->get('vt_gtm_blEnableGA4', 'vt-gtm');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->blGA4enabled;
|
||||||
|
}
|
||||||
|
|
||||||
public function getGtmDataLayer()
|
public function getGtmDataLayer()
|
||||||
{
|
{
|
||||||
if( !$this->getGtmContainerId() ) return "[]";
|
if (!$this->getGtmContainerId()) return "[]";
|
||||||
|
|
||||||
$oConfig = Registry::getConfig();
|
$oConfig = Registry::getConfig();
|
||||||
$oView = $oConfig->getTopActiveView(); /** @var FrontendController $oShop */
|
$oView = $oConfig->getTopActiveView();
|
||||||
|
/** @var FrontendController $oShop */
|
||||||
//$oShop = oxRegistry::getConfig()->getActiveShop(); /** @var oxShop $oShop */
|
//$oShop = oxRegistry::getConfig()->getActiveShop(); /** @var oxShop $oShop */
|
||||||
$oUser = $oConfig->getUser();
|
$oUser = $oConfig->getUser();
|
||||||
|
|
||||||
$dataLayer = [
|
$cl = $this->getTopActionClassName();
|
||||||
'page_title' => $oView->getTitle(),
|
$aPageTypes = [
|
||||||
'controller' => $this->getTopActionClassName(),
|
"content" => "cms",
|
||||||
'user' => ( $oUser ? "true" : "false" )
|
"details" => "product",
|
||||||
|
"alist" => "listing",
|
||||||
|
"search" => "listing",
|
||||||
|
"basket" => "checkout",
|
||||||
|
"user" => "checkout",
|
||||||
|
"payment" => "checkout",
|
||||||
|
"order" => "checkout",
|
||||||
|
"thankyou" => "checkout",
|
||||||
];
|
];
|
||||||
|
|
||||||
return json_encode([$dataLayer],JSON_PRETTY_PRINT);
|
$dataLayer = [
|
||||||
|
'page' => [
|
||||||
|
'type' => $aPageTypes[$cl] ?? "unknown",
|
||||||
|
'title' => $oView->getTitle(),
|
||||||
|
'cl' => $cl,
|
||||||
|
],
|
||||||
|
'userid' => ($oUser ? $oUser->getId() : false),
|
||||||
|
'sessionid' => session_id() ?? false,
|
||||||
|
//'httpref' => $_SERVER["HTTP_REFERER"] ?? "unknown"
|
||||||
|
];
|
||||||
|
|
||||||
|
return json_encode([$dataLayer], JSON_PRETTY_PRINT);
|
||||||
|
|
||||||
unset($dataLayer["user"]["http"]); // das brauchen wir hier nicht
|
unset($dataLayer["user"]["http"]); // das brauchen wir hier nicht
|
||||||
|
|
||||||
$cl = $this->getActiveClassName();
|
|
||||||
if( $cl === "content" ) $dataLayer["page"]["type"] = "cms";
|
|
||||||
elseif( $cl === "details" ) $dataLayer["page"]["type"] = "product";
|
|
||||||
elseif( in_array($cl,["alist","search"]) ) $dataLayer["page"]["type"] = "listing";
|
|
||||||
elseif( in_array($cl,["basket","user","payment","order","thankyou"]) ) $dataLayer["page"]["type"] = "checkout";
|
|
||||||
|
|
||||||
|
return json_encode([$dataLayer], JSON_PRETTY_PRINT);
|
||||||
return json_encode([$dataLayer],JSON_PRETTY_PRINT);
|
|
||||||
/*
|
/*
|
||||||
// --- Produktdaten ---
|
// --- Produktdaten ---
|
||||||
$transactionProducts = [];
|
$transactionProducts = [];
|
||||||
@ -87,11 +115,15 @@ class ViewConfig extends ViewConfig_parent
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function triggerGA4events()
|
||||||
|
{
|
||||||
|
// general events
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function isPromotionList($listId)
|
public function isPromotionList($listId)
|
||||||
{
|
{
|
||||||
$oConfig = Registry::getConfig();
|
$oConfig = Registry::getConfig();
|
||||||
$aPromotionListIds = $oConfig->getConfigParam("") ?? [ 'bargainItems', 'newItems', 'topBox', 'alsoBought', 'accessories', 'cross' ];
|
$aPromotionListIds = $oConfig->getConfigParam("") ?? ['bargainItems', 'newItems', 'topBox', 'alsoBought', 'accessories', 'cross'];
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
2
Application/views/admin/de/module_options.php
Normal file → Executable file
2
Application/views/admin/de/module_options.php
Normal file → Executable file
@ -26,6 +26,6 @@ input.confinput:hover {outline:3px solid #ff3600;}
|
|||||||
$aLang = [
|
$aLang = [
|
||||||
'charset' => 'UTF-8',
|
'charset' => 'UTF-8',
|
||||||
'SHOP_MODULE_GROUP_vt_gtm_settings' => $style . 'Einstellungen',
|
'SHOP_MODULE_GROUP_vt_gtm_settings' => $style . 'Einstellungen',
|
||||||
'SHOP_MODULE_vt_gtm_containerid' => 'Container ID',
|
'SHOP_MODULE_vt_gtm_sContainerID' => 'Container ID',
|
||||||
'SHOP_MODULE_vt_gtm_promotionlistids' => 'Promotion Produktlisten IDs <div>Weitere Infos zu dieser Einstellung: <b><u><a href="https://github.com/vanilla-thunder/oxid-module-gtm/wiki/Promotion-Produktlisten" target="_blank">Modui-Wiki</a></u></b></div>',
|
'SHOP_MODULE_vt_gtm_promotionlistids' => 'Promotion Produktlisten IDs <div>Weitere Infos zu dieser Einstellung: <b><u><a href="https://github.com/vanilla-thunder/oxid-module-gtm/wiki/Promotion-Produktlisten" target="_blank">Modui-Wiki</a></u></b></div>',
|
||||||
];
|
];
|
||||||
|
1
Application/views/blocks/_gtm_js.tpl
Normal file → Executable file
1
Application/views/blocks/_gtm_js.tpl
Normal file → Executable file
@ -12,6 +12,7 @@
|
|||||||
})(window, document, 'script', 'dataLayer', '[{$oViewConf->getGtmContainerId()}]');
|
})(window, document, 'script', 'dataLayer', '[{$oViewConf->getGtmContainerId()}]');
|
||||||
</script>
|
</script>
|
||||||
<!-- End Google Tag Manager -->
|
<!-- End Google Tag Manager -->
|
||||||
|
[{$oViewConf->triggerGA4events()}]
|
||||||
[{if $oViewConf->getTopActionClassName() === "alist" }]
|
[{if $oViewConf->getTopActionClassName() === "alist" }]
|
||||||
[{* include file="ga4_view_item_list.tpl" gtmCategory=$oView->getActiveCategory() gtmProducts=$oView->getArticleList() listtype=$oView->getListType() *}]
|
[{* include file="ga4_view_item_list.tpl" gtmCategory=$oView->getActiveCategory() gtmProducts=$oView->getArticleList() listtype=$oView->getListType() *}]
|
||||||
[{elseif $oViewConf->getTopActionClassName() === "details" }]
|
[{elseif $oViewConf->getTopActionClassName() === "details" }]
|
||||||
|
0
Application/views/ga4/add_payment_info.tpl
Executable file
0
Application/views/ga4/add_payment_info.tpl
Executable file
0
Application/views/ga4/add_shipping_info.tpl
Executable file
0
Application/views/ga4/add_shipping_info.tpl
Executable file
0
Application/views/ga4/begin_checkout.tpl
Executable file
0
Application/views/ga4/begin_checkout.tpl
Executable file
0
Application/views/ga4/generate_lead.tpl
Executable file
0
Application/views/ga4/generate_lead.tpl
Executable file
0
Application/views/ga4/login.tpl
Executable file
0
Application/views/ga4/login.tpl
Executable file
0
Application/views/ga4/purchase.tpl
Executable file
0
Application/views/ga4/purchase.tpl
Executable file
0
Application/views/ga4/remove_from_cart.tpl
Executable file
0
Application/views/ga4/remove_from_cart.tpl
Executable file
0
Application/views/ga4/search.tpl
Executable file
0
Application/views/ga4/search.tpl
Executable file
0
Application/views/ga4/select_content.tpl
Executable file
0
Application/views/ga4/select_content.tpl
Executable file
0
Application/views/ga4/select_item.tpl
Executable file
0
Application/views/ga4/select_item.tpl
Executable file
0
Application/views/ga4/select_promotion.tpl
Executable file
0
Application/views/ga4/select_promotion.tpl
Executable file
0
Application/views/ga4/sign_up.tpl
Executable file
0
Application/views/ga4/sign_up.tpl
Executable file
0
Application/views/ga4/view_cart.tpl
Executable file
0
Application/views/ga4/view_cart.tpl
Executable file
0
Application/views/ga4/view_promotion.tpl
Executable file
0
Application/views/ga4/view_promotion.tpl
Executable file
49
README.md
Normal file → Executable file
49
README.md
Normal file → Executable file
@ -1,32 +1,21 @@
|
|||||||
# [vt] Google Tag Manager
|
# [vt] Google Tag Manager
|
||||||
Google Tag Manager integration for OXID eShop v6.2 und höher
|
Google Tag Manager integration for OXID eShop v6.2 und höher
|
||||||
module version 0.2.0 ( 2018-12-04 )
|
module version 0.5.0 ( 2021-12-10 )
|
||||||
|
|
||||||
# Installation
|
## Installation
|
||||||
* ``composer require vanilla-thunder/oxid-module-gtm --no-update``
|
* ``composer require vanilla-thunder/oxid-module-gtm --no-update``
|
||||||
|
|
||||||
* Inhalt von "copy_this" in den Shop hochladen
|
|
||||||
* Modul aktivieren und Moduleinstellungen konfigurieren
|
* Modul aktivieren und Moduleinstellungen konfigurieren
|
||||||
|
|
||||||
# Tag Manager konfigurieren:
|
## Tag Manager konfigurieren:
|
||||||
+ https://support.google.com/tagmanager/answer/9442095
|
+ https://support.google.com/tagmanager/answer/9442095
|
||||||
|
|
||||||
|
## Google Analytics 4 Einrichtung
|
||||||
|
|
||||||
|
## GA4 Events / Customizing
|
||||||
|
für alle implementierten GA4 Events existieren Templates unter `source/modules/GoogleTagManager/Application/views/ga4/`, dabei entspricht der Dateiname dem Eventnamen in GA4.
|
||||||
|
Die Einbindung dieser Event-Templates erfolgt über TPL-Blöcke unter `source/modules/GoogleTagManager/Application/views/blocks/`.
|
||||||
|
|
||||||
|
## Universal Analytics Events
|
||||||
|
|
||||||
Alle drei unterstützten Tag Manager werden mit Daten aus einer gemeinsamen Datenschicht (dataLayer) gefüttert.
|
|
||||||
Für die einfachste Übersicht der enthaltenen Daten empfehle ich den Vorschau-Modus vom Google Tag Manager.
|
|
||||||
|
|
||||||
Bei jedem Seitenaufruf wird die Datenschicht mit einigen wenigen Infos erstellt, die man zum reinen Erfassen der Seitenaufrufe benötigt:
|
|
||||||
+ **page.type** - Seitentyp: default / cms / product / listing / checkout (an google analytics angelehnt)
|
|
||||||
+ **page.title** - Seitentitel (außer Startseite, sie hat keinen Titel. Danke OXID...)
|
|
||||||
+ **page.class** - OXID Controller Klasse (start, search, etc)
|
|
||||||
+ **user.country** - Land des Benutzers, sofern dieser angemeldet ist.
|
|
||||||
+ **user.httpref** - http referrer
|
|
||||||
|
|
||||||
Alle für Ecommerce Tracking releavanten Daten werden mit speziellen Ecommerce Events in die Datenschicht eingefügt.
|
|
||||||
Hier ist ein Beispiel für die Einrichtung von Enhanced Ecomemrce Tracking über Google Tag Manager:
|
|
||||||
|
|
||||||
**"EE-Trigger" für Ecomemrce-Tags (Beispiel für Google Tag Manager):**
|
**"EE-Trigger" für Ecomemrce-Tags (Beispiel für Google Tag Manager):**
|
||||||
+ Triggertyp: Benutzerdefiniertes Ereignis
|
+ Triggertyp: Benutzerdefiniertes Ereignis
|
||||||
@ -41,16 +30,26 @@ Hier ist ein Beispiel für die Einrichtung von Enhanced Ecomemrce Tracking über
|
|||||||
+ Label: {{Event Label}}
|
+ Label: {{Event Label}}
|
||||||
+ Trigger : EE-Trigger
|
+ Trigger : EE-Trigger
|
||||||
|
|
||||||
Eine Video-Anleitung mit der kompletten Google Analytics Einrichtung folgt in Kürze.
|
## Verfügbare Datalayer Variablen
|
||||||
|
Für die einfachste Übersicht der enthaltenen Daten empfehle ich den Vorschau-Modus vom Google Tag Manager.
|
||||||
|
|
||||||
|
Bei jedem Seitenaufruf wird die Datenschicht mit einigen wenigen Infos erstellt, die man zum reinen Erfassen der Seitenaufrufe benötigt:
|
||||||
|
+ **page.type** - Seitentyp: default / cms / product / listing / checkout (an google analytics angelehnt)
|
||||||
|
+ **page.title** - Seitentitel (außer Startseite, sie hat keinen Titel. Danke OXID...)
|
||||||
|
+ **page.cl** - OXID Controller Klasse (start, search, etc)
|
||||||
|
+ **userid** - oxID vom Benutzer bzw `false` falls nicht eingeloggt
|
||||||
|
+ **sessionid** - session iD
|
||||||
|
|
||||||
|
Alle für Ecommerce Tracking releavanten Daten werden mit speziellen Ecommerce Events in die Datenschicht eingefügt.
|
||||||
|
Hier ist ein Beispiel für die Einrichtung von Enhanced Ecomemrce Tracking über Google Tag Manager:
|
||||||
|
|
||||||
|
|
||||||
### Google Analytics 4 Referenz
|
|
||||||
https://developers.google.com/tag-manager/ecommerce-ga4
|
|
||||||
|
|
||||||
|
|
||||||
### LICENSE AGREEMENT
|
### LICENSE AGREEMENT
|
||||||
[bla] tag-manager
|
[vt] google-tag-manager
|
||||||
Copyright (C) 2018 bestlife AG
|
Copyright (C) 2021 Marat Bedoev
|
||||||
info: oxid@bestlife.ag
|
info: info@mb-dev.pro oder so /** @todo: überarbeiten, wenn ich wieder nüchtern bin */
|
||||||
|
|
||||||
This program is free software;
|
This program is free software;
|
||||||
you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation;
|
you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation;
|
||||||
|
61
metadata.php
Normal file → Executable file
61
metadata.php
Normal file → Executable file
@ -26,13 +26,26 @@ $aModule = [
|
|||||||
\OxidEsales\Eshop\Core\ViewConfig::class => VanillaThunder\GoogleTagManager\Application\Extend\ViewConfig::class
|
\OxidEsales\Eshop\Core\ViewConfig::class => VanillaThunder\GoogleTagManager\Application\Extend\ViewConfig::class
|
||||||
],
|
],
|
||||||
'templates' => [
|
'templates' => [
|
||||||
// separate ee-event templates for easy integration
|
// GA4 events
|
||||||
//'ga4_add_to_cart.tpl' => 'vt/GoogleTagManager/Application/views/ga4/add_to_cart.tpl',
|
'ga4_add_payment_info.tpl' => 'vt/GoogleTagManager/Application/views/ga4/add_payment_info.tpl',
|
||||||
//'ga4_view_item.tpl' => 'vt/GoogleTagManager/Application/views/ga4/view_item.tpl',
|
'add_shipping_info.tpl' => 'vt/GoogleTagManager/Application/views/ga4/add_shipping_info.tpl',
|
||||||
//'ga4_view_item_list.tpl' => 'vt/GoogleTagManager/Application/views/ga4/view_item_list.tpl',
|
'ga4_add_to_cart.tpl' => 'vt/GoogleTagManager/Application/views/ga4/add_to_cart.tpl',
|
||||||
'gtm_ua_impression' => 'vt/GoogleTagManager/Application/views/ua/impression.tpl'
|
'ga4_begin_checkout.tpl' => 'vt/GoogleTagManager/Application/views/ga4/begin_checkout.tpl',
|
||||||
|
'ga4_generate_lead.tpl' => 'vt/GoogleTagManager/Application/views/ga4/generate_lead.tpl',
|
||||||
|
'ga4_login.tpl' => 'vt/GoogleTagManager/Application/views/ga4/login.tpl',
|
||||||
|
'ga4_purchase.tpl' => 'vt/GoogleTagManager/Application/views/ga4/purchase.tpl',
|
||||||
|
'ga4_remove_from_cart.tpl' => 'vt/GoogleTagManager/Application/views/ga4/remove_from_cart.tpl',
|
||||||
|
'ga4_search.tpl' => 'vt/GoogleTagManager/Application/views/ga4/search.tpl',
|
||||||
|
'ga4_select_content.tpl' => 'vt/GoogleTagManager/Application/views/ga4/select_content.tpl',
|
||||||
|
'ga4_select_item.tpl' => 'vt/GoogleTagManager/Application/views/ga4/select_item.tpl',
|
||||||
|
'ga4_select_promotion.tpl' => 'vt/GoogleTagManager/Application/views/ga4/select_promotion.tpl',
|
||||||
|
'ga4_sign_up.tpl' => 'vt/GoogleTagManager/Application/views/ga4/sign_up.tpl',
|
||||||
|
'ga4_view_cart.tpl' => 'vt/GoogleTagManager/Application/views/ga4/view_cart.tpl',
|
||||||
|
'ga4_view_item.tpl' => 'vt/GoogleTagManager/Application/views/ga4/view_item.tpl',
|
||||||
|
'ga4_view_item_list.tpl' => 'vt/GoogleTagManager/Application/views/ga4/view_item_list.tpl',
|
||||||
|
'ga4_view_promotion.tpl' => 'vt/GoogleTagManager/Application/views/ga4/view_promotion.tpl',
|
||||||
/*
|
/*
|
||||||
|
'gtm_ua_impression' => 'vt/GoogleTagManager/Application/views/ua/impression.tpl'
|
||||||
'gtm_view_promotion.tpl' => 'vt/GoogleTagManager/Application/views/view_promotion.tpl',
|
'gtm_view_promotion.tpl' => 'vt/GoogleTagManager/Application/views/view_promotion.tpl',
|
||||||
'gtm_select_promotion.tpl' => 'vt/GoogleTagManager/Application/views/select_promotion.tpl',
|
'gtm_select_promotion.tpl' => 'vt/GoogleTagManager/Application/views/select_promotion.tpl',
|
||||||
'gtm_begin_checkout.tpl' => 'vt/GoogleTagManager/Application/views/begin_checkout.tpl',
|
'gtm_begin_checkout.tpl' => 'vt/GoogleTagManager/Application/views/begin_checkout.tpl',
|
||||||
@ -57,21 +70,11 @@ $aModule = [
|
|||||||
'block' => 'header_main',
|
'block' => 'header_main',
|
||||||
'file' => '/Application/views/blocks/add_to_cart.tpl'
|
'file' => '/Application/views/blocks/add_to_cart.tpl'
|
||||||
],
|
],
|
||||||
// impressions
|
// widget_product_list
|
||||||
[
|
[
|
||||||
'template' => 'widget/product/listitem_grid.tpl',
|
'template' => 'widget/product/list.tpl',
|
||||||
'block' => 'widget_product_listitem_grid',
|
'block' => 'widget_product_list',
|
||||||
'file' => '/Application/views/blocks/impression.tpl'
|
'file' => '/Application/views/blocks/widget_product_list.tpl'
|
||||||
],
|
|
||||||
[
|
|
||||||
'template' => 'widget/product/listitem_infogrid.tpl',
|
|
||||||
'block' => 'widget_product_listitem_infogrid',
|
|
||||||
'file' => '/Application/views/blocks/impression.tpl'
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'template' => 'widget/product/listitem_line.tpl',
|
|
||||||
'block' => 'widget_product_listitem_line',
|
|
||||||
'file' => '/Application/views/blocks/impression.tpl'
|
|
||||||
],
|
],
|
||||||
// details
|
// details
|
||||||
[
|
[
|
||||||
@ -119,38 +122,46 @@ $aModule = [
|
|||||||
'settings' => [
|
'settings' => [
|
||||||
[
|
[
|
||||||
'group' => 'vt_gtm_settings',
|
'group' => 'vt_gtm_settings',
|
||||||
'name' => 'vt_gtm_containerid',
|
'name' => 'vt_gtm_sContainerID',
|
||||||
'type' => 'str',
|
'type' => 'str',
|
||||||
'value' => 'GTM-',
|
'value' => 'GTM-',
|
||||||
'position' => 0
|
'position' => 0
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'group' => 'vt_gtm_settings',
|
'group' => 'vt_gtm_settings',
|
||||||
'name' => 'vt_gtm_enable_ga4',
|
'name' => 'vt_gtm_blGA4enabled',
|
||||||
'type' => 'bool',
|
'type' => 'bool',
|
||||||
'value' => true,
|
'value' => true,
|
||||||
'position' => 1
|
'position' => 1
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'group' => 'vt_gtm_settings',
|
'group' => 'vt_gtm_settings',
|
||||||
'name' => 'vt_gtm_enable_ua',
|
'name' => 'vt_gtm_blUAenabled',
|
||||||
'type' => 'bool',
|
'type' => 'bool',
|
||||||
'value' => true,
|
'value' => true,
|
||||||
'position' => 2
|
'position' => 2
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'group' => 'vt_gtm_settings',
|
'group' => 'vt_gtm_settings',
|
||||||
'name' => 'vt_gtm_mpapisecret',
|
'name' => 'vt_gtm_sMpapisecret',
|
||||||
'type' => 'str',
|
'type' => 'str',
|
||||||
'value' => '',
|
'value' => '',
|
||||||
'position' => 3
|
'position' => 3
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'group' => 'vt_gtm_settings',
|
'group' => 'vt_gtm_settings',
|
||||||
'name' => 'vt_gtm_promotionlistids',
|
'name' => 'vt_gtm_aPromotionlistIDs',
|
||||||
'type' => 'arr',
|
'type' => 'arr',
|
||||||
'value' => [],
|
'value' => [],
|
||||||
'position' => 4
|
'position' => 4
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'group' => 'vt_gtm_settings',
|
||||||
|
'name' => 'vt_gtm_blEnableDebug',
|
||||||
|
'type' => 'bool',
|
||||||
|
'value' => false,
|
||||||
|
'position' => 999
|
||||||
]
|
]
|
||||||
|
|
||||||
]
|
]
|
||||||
];
|
];
|
BIN
thumbnail.png
Executable file
BIN
thumbnail.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
Loading…
Reference in New Issue
Block a user