Browse code

Minor Updates for GA4

Benjamin Roth authored on26/06/2023 16:19:11
Showing8 changed files
... ...
@@ -1,4 +1,4 @@
1
-OXID module: Google Analytics
1
+OXID module: Google Analytics GA4
2 2
 ====
3 3
 
4 4
 Adds google analytics incl. eCommerce tracking to Oxid
... ...
@@ -17,7 +17,7 @@ PHP > 5.3
17 17
 Installation
18 18
 ---- 
19 19
 Install files in your oxid modules/ folder. Alternatively you can install them in your modules/esales/ vendor folder.
20
-Add [{block name="es_analytics_code"}][{/block}] to html head in base.tpl.
20
+Add [{block name="es_analytics_ga4_code"}][{/block}] to html head in base.tpl.
21 21
 
22 22
 
23 23
 License
24 24
deleted file mode 100644
... ...
@@ -1,217 +0,0 @@
1
-<?php
2
-/**
3
- * eSales Media Analytics extension for OXID
4
- *
5
- * @author    Benjamin Roth [benjamin@esales-media.de]
6
- * @copyright 2015 eSales Media [http://www.esales-media.de]
7
- */
8
-
9
-/**
10
- * Class es_analytics defines activation events
11
- */
12
-class es_analytics_events
13
-{
14
-	// Module fields
15
-	protected static $arrFields = array
16
-	(
17
-//		array('OXFIELD','VARCHAR(4) NOT NULL default \'\'','oxarticles',false),
18
-	);
19
-
20
-	// Theme config options
21
-	protected static $arrConfig = array
22
-	(
23
-//		array('sManufacturerThumbnailsize','str','200*200','theme:azure','images'),
24
-	);
25
-
26
-	// Float theme config fields
27
-	protected static $_aParseFloat = array();
28
-
29
-	/**
30
-	 * Is called on module activation. Checks for database fields and adds them
31
-	 */
32
-	public static function onActivate()
33
-	{
34
-
35
-		$iShopId = oxRegistry::getConfig()->getShopId();
36
-		$oConfig = oxRegistry::getConfig();
37
-
38
-		$sDb_name = $oConfig->getConfigParam('dbName');
39
-
40
-		// SQL patterns
41
-		$sCheckSQL = "SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = '%s' AND COLUMN_NAME = '%s'";
42
-		$sAddSQL = "ALTER TABLE `%s` ADD `%s` %s";
43
-
44
-
45
-		// Check and create fields
46
-		$blnDbAltered = false;
47
-		foreach (self::$arrFields as $field)
48
-		{
49
-			if ($field[3])
50
-			{
51
-				$arrFieldVariants = array('','_1','_2','_3');
52
-			} else {
53
-				$arrFieldVariants = array('');
54
-			}
55
-
56
-			foreach ($arrFieldVariants as $fieldVariant)
57
-			{
58
-				$rCheck = oxDb::getDb()->getArray(sprintf($sCheckSQL,$field[2],$field[0].$fieldVariant),array($sDb_name));
59
-
60
-				if (!count($rCheck))
61
-				{
62
-					$blnDbAltered = true;
63
-					oxDb::getDb()->Execute(sprintf($sAddSQL,$field[2],$field[0].$fieldVariant,$field[1]));
64
-				}
65
-			}
66
-		}
67
-
68
-		// Check and create config fields
69
-		foreach (self::$arrConfig as $conf)
70
-		{
71
-			if (!$oConfig->getConfigParam($conf[0]))
72
-			{
73
-				$oConfig->saveShopConfVar($conf[1],$conf[0],self::_serializeConfVar($conf[1],$conf[0],$conf[2]),$iShopId,$conf[3]);
74
-
75
-				$sOxId = oxUtilsObject::getInstance()->generateUId();
76
-				$iPosition = oxDb::getDb()->getOne("SELECT MAX(`OXPOS`)+1 FROM oxconfigdisplay WHERE `OXCFGMODULE` = " . oxDb::getDb()->quote($conf[3]) . " AND `OXGROUPING` = " . oxDb::getDb()->quote($conf[4]));
77
-				$sInsertSql = "INSERT INTO `oxconfigdisplay` (`OXID`, `OXCFGMODULE`, `OXCFGVARNAME`, `OXGROUPING`,  `OXPOS`) " .
78
-				              "VALUES ('{$sOxId}', " . oxDb::getDb()->quote($conf[3]) . ", " . oxDb::getDb()->quote($conf[0]) . ", " . oxDb::getDb()->quote($conf[4]) . ", " . oxDb::getDb()->quote($iPosition) . ")";
79
-				oxDb::getDb()->execute($sInsertSql);
80
-			}
81
-		}
82
-
83
-		if ($blnDbAltered)
84
-		{
85
-			$oMetaData = oxNew('oxDbMetaDataHandler');
86
-			$oMetaData->updateViews();
87
-		}
88
-
89
-	}
90
-
91
-	public static function onDeactivate()
92
-	{
93
-		$iShopId = oxRegistry::getConfig()->getShopId();
94
-		$oConfig = oxRegistry::getConfig();
95
-
96
-		if ($oConfig->getConfigParam('blOxEsAnalyticsSweep'))
97
-		{
98
-			$sDb_name = $oConfig->getConfigParam('dbName');
99
-
100
-			// SQL patterns
101
-			$sCheckSQL = "SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = '%s' AND COLUMN_NAME = '%s'";
102
-			$sDelSQL = "ALTER TABLE `%s` DROP COLUMN `%s`";
103
-
104
-
105
-			// Check and delete fields
106
-			$blnDbAltered = false;
107
-			foreach (self::$arrFields as $field)
108
-			{
109
-				if ($field[3])
110
-				{
111
-					$arrFieldVariants = array('', '_1', '_2', '_3');
112
-				} else
113
-				{
114
-					$arrFieldVariants = array('');
115
-				}
116
-
117
-				foreach ($arrFieldVariants as $fieldVariant)
118
-				{
119
-					$rCheck = oxDb::getDb()->getArray(sprintf($sCheckSQL, $field[2], $field[0] . $fieldVariant), array($sDb_name));
120
-
121
-					if (count($rCheck))
122
-					{
123
-						$blnDbAltered = true;
124
-						oxDb::getDb()->Execute(sprintf($sDelSQL, $field[2], $field[0] . $fieldVariant));
125
-					}
126
-				}
127
-			}
128
-
129
-
130
-
131
-			if ($blnDbAltered)
132
-			{
133
-				$oMetaData = oxNew('oxDbMetaDataHandler');
134
-				$oMetaData->updateViews();
135
-			}
136
-
137
-			$oConfig->saveShopConfVar('bool','blOxEsAnalyticsSweep','false',$iShopId,'module:es:analytics');
138
-
139
-		}
140
-		// Check and delete config fields
141
-		foreach (self::$arrConfig as $conf)
142
-		{
143
-			if ($oConfig->getConfigParam($conf[0]))
144
-			{
145
-				// SQL patterns
146
-				$sDelConfSql = "DELETE FROM `oxconfigdisplay` WHERE OXCFGMODULE=" . oxDb::getDb()->quote($conf[3]) . " AND OXCFGVARNAME=" . oxDb::getDb()->quote($conf[0]);
147
-				oxDb::getDb()->Execute($sDelConfSql);
148
-				$sDelConfSql = "DELETE FROM `oxconfig` WHERE OXMODULE=" . oxDb::getDb()->quote($conf[3]) . " AND OXVARNAME=" . oxDb::getDb()->quote($conf[0]);
149
-				oxDb::getDb()->Execute($sDelConfSql);
150
-			}
151
-		}
152
-	}
153
-
154
-	protected static function _serializeConfVar($sType, $sName, $mValue)
155
-	{
156
-		$sData = $mValue;
157
-
158
-		switch ($sType) {
159
-			case "bool":
160
-				break;
161
-
162
-			case "str":
163
-			case "select":
164
-			case "int":
165
-				if (in_array($sName, self::$_aParseFloat)) {
166
-					$sData = str_replace(',', '.', $sData);
167
-				}
168
-				break;
169
-
170
-			case "arr":
171
-				if (!is_array($mValue)) {
172
-					$sData = self::_multilineToArray($mValue);
173
-				}
174
-				break;
175
-
176
-			case "aarr":
177
-				$sData = self::_multilineToAarray($mValue);
178
-				break;
179
-		}
180
-
181
-		return $sData;
182
-	}
183
-
184
-	protected static function _multilineToArray($sMultiline)
185
-	{
186
-		$aArr = explode("\n", $sMultiline);
187
-		if (is_array($aArr)) {
188
-			foreach ($aArr as $sKey => $sVal) {
189
-				$aArr[$sKey] = trim($sVal);
190
-				if ($aArr[$sKey] == "") {
191
-					unset($aArr[$sKey]);
192
-				}
193
-			}
194
-
195
-			return $aArr;
196
-		}
197
-	}
198
-
199
-	protected static function _multilineToAarray($sMultiline)
200
-	{
201
-		$oStr = getStr();
202
-		$aArr = array();
203
-		$aLines = explode("\n", $sMultiline);
204
-		foreach ($aLines as $sLine) {
205
-			$sLine = trim($sLine);
206
-			if ($sLine != "" && $oStr->preg_match("/(.+)=>(.+)/", $sLine, $aRegs)) {
207
-				$sKey = trim($aRegs[1]);
208
-				$sVal = trim($aRegs[2]);
209
-				if ($sKey != "" && $sVal != "") {
210
-					$aArr[$sKey] = $sVal;
211
-				}
212
-			}
213
-		}
214
-
215
-		return $aArr;
216
-	}
217
-}
218 0
new file mode 100644
... ...
@@ -0,0 +1,217 @@
1
+<?php
2
+/**
3
+ * eSales Media Analytics extension for OXID
4
+ *
5
+ * @author    Benjamin Roth [benjamin@esales-media.de]
6
+ * @copyright 2015 eSales Media [http://www.esales-media.de]
7
+ */
8
+
9
+/**
10
+ * Class es_analytics defines activation events
11
+ */
12
+class es_analytics_ga4_events
13
+{
14
+	// Module fields
15
+	protected static $arrFields = array
16
+	(
17
+//		array('OXFIELD','VARCHAR(4) NOT NULL default \'\'','oxarticles',false),
18
+	);
19
+
20
+	// Theme config options
21
+	protected static $arrConfig = array
22
+	(
23
+//		array('sManufacturerThumbnailsize','str','200*200','theme:azure','images'),
24
+	);
25
+
26
+	// Float theme config fields
27
+	protected static $_aParseFloat = array();
28
+
29
+	/**
30
+	 * Is called on module activation. Checks for database fields and adds them
31
+	 */
32
+	public static function onActivate()
33
+	{
34
+
35
+		$iShopId = oxRegistry::getConfig()->getShopId();
36
+		$oConfig = oxRegistry::getConfig();
37
+
38
+		$sDb_name = $oConfig->getConfigParam('dbName');
39
+
40
+		// SQL patterns
41
+		$sCheckSQL = "SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = '%s' AND COLUMN_NAME = '%s'";
42
+		$sAddSQL = "ALTER TABLE `%s` ADD `%s` %s";
43
+
44
+
45
+		// Check and create fields
46
+		$blnDbAltered = false;
47
+		foreach (self::$arrFields as $field)
48
+		{
49
+			if ($field[3])
50
+			{
51
+				$arrFieldVariants = array('','_1','_2','_3');
52
+			} else {
53
+				$arrFieldVariants = array('');
54
+			}
55
+
56
+			foreach ($arrFieldVariants as $fieldVariant)
57
+			{
58
+				$rCheck = oxDb::getDb()->getArray(sprintf($sCheckSQL,$field[2],$field[0].$fieldVariant),array($sDb_name));
59
+
60
+				if (!count($rCheck))
61
+				{
62
+					$blnDbAltered = true;
63
+					oxDb::getDb()->Execute(sprintf($sAddSQL,$field[2],$field[0].$fieldVariant,$field[1]));
64
+				}
65
+			}
66
+		}
67
+
68
+		// Check and create config fields
69
+		foreach (self::$arrConfig as $conf)
70
+		{
71
+			if (!$oConfig->getConfigParam($conf[0]))
72
+			{
73
+				$oConfig->saveShopConfVar($conf[1],$conf[0],self::_serializeConfVar($conf[1],$conf[0],$conf[2]),$iShopId,$conf[3]);
74
+
75
+				$sOxId = oxUtilsObject::getInstance()->generateUId();
76
+				$iPosition = oxDb::getDb()->getOne("SELECT MAX(`OXPOS`)+1 FROM oxconfigdisplay WHERE `OXCFGMODULE` = " . oxDb::getDb()->quote($conf[3]) . " AND `OXGROUPING` = " . oxDb::getDb()->quote($conf[4]));
77
+				$sInsertSql = "INSERT INTO `oxconfigdisplay` (`OXID`, `OXCFGMODULE`, `OXCFGVARNAME`, `OXGROUPING`,  `OXPOS`) " .
78
+				              "VALUES ('{$sOxId}', " . oxDb::getDb()->quote($conf[3]) . ", " . oxDb::getDb()->quote($conf[0]) . ", " . oxDb::getDb()->quote($conf[4]) . ", " . oxDb::getDb()->quote($iPosition) . ")";
79
+				oxDb::getDb()->execute($sInsertSql);
80
+			}
81
+		}
82
+
83
+		if ($blnDbAltered)
84
+		{
85
+			$oMetaData = oxNew('oxDbMetaDataHandler');
86
+			$oMetaData->updateViews();
87
+		}
88
+
89
+	}
90
+
91
+	public static function onDeactivate()
92
+	{
93
+		$iShopId = oxRegistry::getConfig()->getShopId();
94
+		$oConfig = oxRegistry::getConfig();
95
+
96
+		if ($oConfig->getConfigParam('blOxEsAnalyticsGA4Sweep'))
97
+		{
98
+			$sDb_name = $oConfig->getConfigParam('dbName');
99
+
100
+			// SQL patterns
101
+			$sCheckSQL = "SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = '%s' AND COLUMN_NAME = '%s'";
102
+			$sDelSQL = "ALTER TABLE `%s` DROP COLUMN `%s`";
103
+
104
+
105
+			// Check and delete fields
106
+			$blnDbAltered = false;
107
+			foreach (self::$arrFields as $field)
108
+			{
109
+				if ($field[3])
110
+				{
111
+					$arrFieldVariants = array('', '_1', '_2', '_3');
112
+				} else
113
+				{
114
+					$arrFieldVariants = array('');
115
+				}
116
+
117
+				foreach ($arrFieldVariants as $fieldVariant)
118
+				{
119
+					$rCheck = oxDb::getDb()->getArray(sprintf($sCheckSQL, $field[2], $field[0] . $fieldVariant), array($sDb_name));
120
+
121
+					if (count($rCheck))
122
+					{
123
+						$blnDbAltered = true;
124
+						oxDb::getDb()->Execute(sprintf($sDelSQL, $field[2], $field[0] . $fieldVariant));
125
+					}
126
+				}
127
+			}
128
+
129
+
130
+
131
+			if ($blnDbAltered)
132
+			{
133
+				$oMetaData = oxNew('oxDbMetaDataHandler');
134
+				$oMetaData->updateViews();
135
+			}
136
+
137
+			$oConfig->saveShopConfVar('bool','blOxEsAnalyticsGA4Sweep','false',$iShopId,'module:es:analytics:ga4');
138
+
139
+		}
140
+		// Check and delete config fields
141
+		foreach (self::$arrConfig as $conf)
142
+		{
143
+			if ($oConfig->getConfigParam($conf[0]))
144
+			{
145
+				// SQL patterns
146
+				$sDelConfSql = "DELETE FROM `oxconfigdisplay` WHERE OXCFGMODULE=" . oxDb::getDb()->quote($conf[3]) . " AND OXCFGVARNAME=" . oxDb::getDb()->quote($conf[0]);
147
+				oxDb::getDb()->Execute($sDelConfSql);
148
+				$sDelConfSql = "DELETE FROM `oxconfig` WHERE OXMODULE=" . oxDb::getDb()->quote($conf[3]) . " AND OXVARNAME=" . oxDb::getDb()->quote($conf[0]);
149
+				oxDb::getDb()->Execute($sDelConfSql);
150
+			}
151
+		}
152
+	}
153
+
154
+	protected static function _serializeConfVar($sType, $sName, $mValue)
155
+	{
156
+		$sData = $mValue;
157
+
158
+		switch ($sType) {
159
+			case "bool":
160
+				break;
161
+
162
+			case "str":
163
+			case "select":
164
+			case "int":
165
+				if (in_array($sName, self::$_aParseFloat)) {
166
+					$sData = str_replace(',', '.', $sData);
167
+				}
168
+				break;
169
+
170
+			case "arr":
171
+				if (!is_array($mValue)) {
172
+					$sData = self::_multilineToArray($mValue);
173
+				}
174
+				break;
175
+
176
+			case "aarr":
177
+				$sData = self::_multilineToAarray($mValue);
178
+				break;
179
+		}
180
+
181
+		return $sData;
182
+	}
183
+
184
+	protected static function _multilineToArray($sMultiline)
185
+	{
186
+		$aArr = explode("\n", $sMultiline);
187
+		if (is_array($aArr)) {
188
+			foreach ($aArr as $sKey => $sVal) {
189
+				$aArr[$sKey] = trim($sVal);
190
+				if ($aArr[$sKey] == "") {
191
+					unset($aArr[$sKey]);
192
+				}
193
+			}
194
+
195
+			return $aArr;
196
+		}
197
+	}
198
+
199
+	protected static function _multilineToAarray($sMultiline)
200
+	{
201
+		$oStr = getStr();
202
+		$aArr = array();
203
+		$aLines = explode("\n", $sMultiline);
204
+		foreach ($aLines as $sLine) {
205
+			$sLine = trim($sLine);
206
+			if ($sLine != "" && $oStr->preg_match("/(.+)=>(.+)/", $sLine, $aRegs)) {
207
+				$sKey = trim($aRegs[1]);
208
+				$sVal = trim($aRegs[2]);
209
+				if ($sKey != "" && $sVal != "") {
210
+					$aArr[$sKey] = $sVal;
211
+				}
212
+			}
213
+		}
214
+
215
+		return $aArr;
216
+	}
217
+}
... ...
@@ -28,14 +28,14 @@ $sMetadataVersion = '1.2';
28 28
  * Module information
29 29
  */
30 30
 $aModule = array(
31
-    'id'           => 'es_analytics',
31
+    'id'           => 'es_analytics_ga4',
32 32
     'title'        => array(
33
-		'de' => '<span style="color: #495058; display:inline-block; font-weight: 700;"><span style="-webkit-border-radius: 50%;-moz-border-radius: 50%;border-radius: 50%; background-color: #52aa00; display: inline-block; line-height: 1.2; width: 1.1em; height: 1.2em; padding-right: 0.1em; text-align: right; color: #fff; margin-right: 0.1em;">e</span>Sales <span style="color: #52aa00;">Media</span></span> Google Analytics',
34
-		'en' => '<span style="color: #495058; display:inline-block; font-weight: 700;"><span style="-webkit-border-radius: 50%;-moz-border-radius: 50%;border-radius: 50%; background-color: #52aa00; display: inline-block; line-height: 1.2; width: 1.1em; height: 1.2em; padding-right: 0.1em; text-align: right; color: #fff; margin-right: 0.1em;">e</span>Sales <span style="color: #52aa00;">Media</span></span> Google Analytics',
33
+		'de' => '<span style="color: #495058; display:inline-block; font-weight: 700;"><span style="-webkit-border-radius: 50%;-moz-border-radius: 50%;border-radius: 50%; background-color: #52aa00; display: inline-block; line-height: 1.2; width: 1.1em; height: 1.2em; padding-right: 0.1em; text-align: right; color: #fff; margin-right: 0.1em;">e</span>Sales <span style="color: #52aa00;">Media</span></span> Google Analytics GA4',
34
+		'en' => '<span style="color: #495058; display:inline-block; font-weight: 700;"><span style="-webkit-border-radius: 50%;-moz-border-radius: 50%;border-radius: 50%; background-color: #52aa00; display: inline-block; line-height: 1.2; width: 1.1em; height: 1.2em; padding-right: 0.1em; text-align: right; color: #fff; margin-right: 0.1em;">e</span>Sales <span style="color: #52aa00;">Media</span></span> Google Analytics GA4',
35 35
 	),
36 36
     'description'  => array(
37
-        'de' => 'Fügt Google Analytics zum Shop hinzu, inkl. E-Commerce Tracking',
38
-        'en' => 'Adds Google Analytics to the shop incl. eCommerce Tracking',
37
+        'de' => 'Fügt Google Analytics GA4 zum Shop hinzu, inkl. E-Commerce Tracking',
38
+        'en' => 'Adds Google Analytics GA4 to the shop incl. eCommerce Tracking',
39 39
     ),
40 40
     'thumbnail'    => 'picture.png',
41 41
     'version'      => '1.0.0',
... ...
@@ -43,26 +43,26 @@ $aModule = array(
43 43
     'url'          => 'http://www.esales-media.de',
44 44
     'email'        => 'info@esales-media.de',
45 45
 	'extend'      => array(
46
-//		'oxarticle' => 'esales/es_analytics/models/es_analytics_oxarticle',
46
+//		'oxarticle' => 'esales/es_analytics_ga4/models/es_analytics_ga4_oxarticle',
47 47
 	),
48 48
 	'files'       => array(
49
-//		'es_article_nutritionfacts' => 'esales/es_analytics/controllers/admin/es_article_nutritionfacts.php',
50
-		'es_analytics_events'  => 'esales/es_analytics/core/es_analytics_events.php',
49
+//		'es_article_nutritionfacts' => 'esales/es_analytics_ga4/controllers/admin/es_article_nutritionfacts.php',
50
+		'es_analytics_ga4_events'  => 'esales/es_analytics_ga4/core/es_analytics_ga4_events.php',
51 51
 	),
52 52
 	'templates'   => array(
53
-//		'es_article_nutritionfacts.tpl'    => 'esales/es_analytics/views/admin/tpl/es_article_nutritionfacts.tpl',
53
+//		'es_article_nutritionfacts.tpl'    => 'esales/es_analytics_ga4/views/admin/tpl/es_article_nutritionfacts.tpl',
54 54
 	),
55 55
     'blocks' => array(
56
-        array('template' => 'layout/base.tpl', 'block' => 'es_analytics_code', 'file' => 'views/blocks/es_analytics_code_head_css.tpl'),
56
+        array('template' => 'layout/base.tpl', 'block' => 'es_analytics_ga4_code', 'file' => 'views/blocks/es_analytics_ga4_code_head_css.tpl'),
57 57
     ),
58 58
     'events'       => array(
59
-        'onActivate'   => 'es_analytics_events::onActivate',
60
-        'onDeactivate'   => 'es_analytics_events::onDeactivate'
59
+        'onActivate'   => 'es_analytics_ga4_events::onActivate',
60
+        'onDeactivate'   => 'es_analytics_ga4_events::onDeactivate'
61 61
     ),
62 62
     'settings'    => array(
63
-        array('group' => 'main', 'name' => 'sOxEsAnalyticsId', 'type' => 'str', 'value' => ''),
64
-        array('group' => 'main', 'name' => 'sOxEsAdsId', 'type' => 'str', 'value' => ''),
65
-        array('group' => 'main', 'name' => 'sOxEsAdsConvLabel', 'type' => 'str', 'value' => ''),
66
-        array('group' => 'esUninstall', 'name' => 'blOxEsAnalyticsSweep', 'type' => 'bool', 'value' => 'false'),
63
+        array('group' => 'main', 'name' => 'sOxEsGA4AnalyticsId', 'type' => 'str', 'value' => ''),
64
+        array('group' => 'main', 'name' => 'sOxEsGA4AdsId', 'type' => 'str', 'value' => ''),
65
+        array('group' => 'main', 'name' => 'sOxEsGA4AdsConvLabel', 'type' => 'str', 'value' => ''),
66
+        array('group' => 'esUninstall', 'name' => 'blOxEsAnalyticsGA4Sweep', 'type' => 'bool', 'value' => 'false'),
67 67
     )
68 68
 );
69 69
new file mode 100644
... ...
@@ -0,0 +1,21 @@
1
+<?php
2
+/**
3
+ * eSales Media Nutrition Facts extension for OXID
4
+ *
5
+ * @author    Benjamin Roth [benjamin@esales-media.de]
6
+ * @copyright 2015 eSales Media [http://www.esales-media.de]
7
+ */
8
+
9
+// -------------------------------
10
+// RESOURCE IDENTIFIER = STRING
11
+// -------------------------------
12
+$sLangName = 'Deutsch';
13
+$aLang = array(
14
+    'charset'                                    => 'UTF-8',
15
+    'SHOP_MODULE_GROUP_esUninstall'              => 'Deinstallieren',
16
+    'SHOP_MODULE_sOxEsGA4AnalyticsId'               => 'Google Analytics ID (UA-XXXXX-X)',
17
+    'SHOP_MODULE_sOxEsGA4AdsId'                     => 'Google Ads ID (AW-XXXXX)',
18
+    'SHOP_MODULE_sOxEsGA4AdsConvLabel'              => 'Google Ads Conversion Label',
19
+    'SHOP_MODULE_blOxEsAnalyticsGA4Sweep'           => 'Alle zum Modul gehörenden Datenbankfelder löschen<p class="info">ACHTUNG: Bereits eingetragene Daten gehen verloren.</p>',
20
+
21
+);
0 22
deleted file mode 100644
... ...
@@ -1,21 +0,0 @@
1
-<?php
2
-/**
3
- * eSales Media Nutrition Facts extension for OXID
4
- *
5
- * @author    Benjamin Roth [benjamin@esales-media.de]
6
- * @copyright 2015 eSales Media [http://www.esales-media.de]
7
- */
8
-
9
-// -------------------------------
10
-// RESOURCE IDENTIFIER = STRING
11
-// -------------------------------
12
-$sLangName = 'Deutsch';
13
-$aLang = array(
14
-    'charset'                                    => 'UTF-8',
15
-    'SHOP_MODULE_GROUP_esUninstall'              => 'Deinstallieren',
16
-    'SHOP_MODULE_sOxEsAnalyticsId'               => 'Google Analytics ID (UA-XXXXX-X)',
17
-    'SHOP_MODULE_sOxEsAdsId'                     => 'Google Ads ID (AW-XXXXX)',
18
-    'SHOP_MODULE_sOxEsAdsConvLabel'              => 'Google Ads Conversion Label',
19
-    'SHOP_MODULE_blOxEsAnalyticsSweep'           => 'Alle zum Modul gehörenden Datenbankfelder löschen<p class="info">ACHTUNG: Bereits eingetragene Daten gehen verloren.</p>',
20
-
21
-);
22 0
deleted file mode 100644
... ...
@@ -1,93 +0,0 @@
1
-[{$smarty.block.parent}]
2
-
3
-[{assign var="oConfig" value=$oViewConf->getConfig()}]
4
-[{assign var=googleTrackingId value=$oConfig->getConfigParam('sOxEsAnalyticsId')}]
5
-[{assign var=googleAdsId value=$oConfig->getConfigParam('sOxEsAdsId')}]
6
-[{assign var=googleAdsConvLabel value=$oConfig->getConfigParam('sOxEsAdsConvLabel')}]
7
-[{if $googleTrackingId}]
8
-  <!-- Global site tag (gtag.js) - Google Analytics -->
9
-  <script async src="https://www.googletagmanager.com/gtag/js?id=[{$googleTrackingId}]"></script>
10
-  <script>
11
-    window.dataLayer = window.dataLayer || [];
12
-    function gtag(){dataLayer.push(arguments);}
13
-    gtag('js', new Date());
14
-
15
-    gtag('config', '[{$googleTrackingId}]', { 'anonymize_ip': true });
16
-[{/if}]
17
-
18
-[{if $googleAdsId}]
19
-  [{if !$googleTrackingId}]
20
-    <!-- Global site tag (gtag.js) - Google Ads -->
21
-    <script async src="https://www.googletagmanager.com/gtag/js?id=[{$googleAdsId}]"></script>
22
-    <script>
23
-      window.dataLayer = window.dataLayer || [];
24
-      function gtag(){dataLayer.push(arguments);}
25
-      gtag('js', new Date());
26
-
27
-      gtag('config', '[{$googleAdsId}]', { 'anonymize_ip': true });
28
-    </script>
29
-  [{else}]
30
-      gtag('config', '[{$googleAdsId}]', { 'anonymize_ip': true });
31
-    </script>
32
-  [{/if}]
33
-[{else}]
34
-  [{if $googleTrackingId}]
35
-    </script>
36
-  [{/if}]
37
-[{/if}]
38
-
39
-[{if $oViewConf->getActiveClassName() == 'thankyou'}]
40
-<script>
41
-  // Order infos
42
-  [{assign var="order" value=$oView->getOrder()}]
43
-
44
-  [{assign var="currate" value=$order->oxorder__oxcurrate->value}]
45
-  [{if $oConfig->getConfigParam('blEnterNetPrice')}]
46
-  [{math equation="sum / rate" sum=$order->getOrderNetSum() rate=$currate format="%.2f" assign="sTotal"}]
47
-  [{else}]
48
-  [{math equation="sum / rate" sum=$order->getTotalOrderSum() rate=$currate format="%.2f" assign="sTotal"}]
49
-  [{/if}]
50
-  [{math equation="sum - net" sum=$order->getTotalOrderSum() net=$order->getOrderNetSum() format="%.2f" assign="sTax"}]
51
-  [{math equation="sum / rate" sum=$order->oxorder__oxdelcost->value rate=$currate format="%.2f" assign="sShipping"}]
52
-
53
-  // Items
54
-  var orderitems = [];
55
-  [{foreach from=$order->getOrderArticles() item=oOrderArticle}]
56
-    [{if $oConfig->getConfigParam('blEnterNetPrice')}]
57
-    [{assign var="oPrice" value=$oOrderArticle->getPrice()}]
58
-    [{math equation="sum / rate" sum=$oPrice->getNettoPrice() rate=$currate format="%.2f" assign="sPrice"}]
59
-    [{else}]
60
-    [{assign var="sPrice" value=$oOrderArticle->oxorderarticles__oxprice->value}]
61
-    [{/if}]
62
-
63
-    orderitems.push({
64
-      'id': '[{$order->oxorder__oxordernr->value}]',                          [{* Transaction ID *}]
65
-      'name': '[{$oOrderArticle->oxorderarticles__oxtitle->value|escape:"quotes"}][{if $oOrderArticle->oxorderarticles__oxselvariant->value}] [{$oOrderArticle->oxorderarticles__oxselvariant->value}][{/if}]',          [{* Product name *}]
66
-      'sku': '[{$oOrderArticle->oxorderarticles__oxartnum->value|escape:"quotes"}]',          [{* SKU *}]
67
-      'price': '[{$sPrice}]',                                                 [{* Preis pro Einheit *}]
68
-      'quantity': '[{$oOrderArticle->oxorderarticles__oxamount->value}]'      [{* Menge *}]
69
-    });
70
-
71
-  [{/foreach}]
72
-
73
-  [{if $googleTrackingId}]
74
-    gtag('event', 'purchase', {
75
-      'transaction_id': '[{$order->oxorder__oxordernr->value}]',        [{* Transaction ID *}]
76
-      'affiliation':    '[{$oxcmp_shop->oxshops__oxname->value|escape:"quotes"}]',      [{* Store name *}]
77
-      'value':          '[{$sTotal}]',                                  [{* Grand Total *}]
78
-      'shipping':       '[{$sShipping}]',                               [{* Shipping *}]
79
-      'tax':            '[{$sTax}]',                                     [{* Tax *}]
80
-      'items': orderitems
81
-    });
82
-  [{/if}]
83
-
84
-  [{if $googleAdsId}]
85
-    gtag('event', 'conversion', {
86
-      'send_to': '[{$googleAdsId}]/[{$googleAdsConvLabel}]',
87
-      'transaction_id': '[{$order->oxorder__oxordernr->value}]',
88
-      'value':          '[{$sTotal}]'
89
-    });
90
-  [{/if}]
91
-
92
-</script>
93
-[{/if}]
94 0
\ No newline at end of file
95 1
new file mode 100644
... ...
@@ -0,0 +1,93 @@
1
+[{$smarty.block.parent}]
2
+
3
+[{assign var="oConfig" value=$oViewConf->getConfig()}]
4
+[{assign var=googleTrackingId value=$oConfig->getConfigParam('sOxEsAnalyticsId')}]
5
+[{assign var=googleAdsId value=$oConfig->getConfigParam('sOxEsAdsId')}]
6
+[{assign var=googleAdsConvLabel value=$oConfig->getConfigParam('sOxEsAdsConvLabel')}]
7
+[{if $googleTrackingId}]
8
+  <!-- Global site tag (gtag.js) - Google Analytics -->
9
+  <script async src="https://www.googletagmanager.com/gtag/js?id=[{$googleTrackingId}]"></script>
10
+  <script>
11
+    window.dataLayer = window.dataLayer || [];
12
+    function gtag(){dataLayer.push(arguments);}
13
+    gtag('js', new Date());
14
+
15
+    gtag('config', '[{$googleTrackingId}]', { 'anonymize_ip': true });
16
+[{/if}]
17
+
18
+[{if $googleAdsId}]
19
+  [{if !$googleTrackingId}]
20
+    <!-- Global site tag (gtag.js) - Google Ads -->
21
+    <script async src="https://www.googletagmanager.com/gtag/js?id=[{$googleAdsId}]"></script>
22
+    <script>
23
+      window.dataLayer = window.dataLayer || [];
24
+      function gtag(){dataLayer.push(arguments);}
25
+      gtag('js', new Date());
26
+
27
+      gtag('config', '[{$googleAdsId}]', { 'anonymize_ip': true });
28
+    </script>
29
+  [{else}]
30
+      gtag('config', '[{$googleAdsId}]', { 'anonymize_ip': true });
31
+    </script>
32
+  [{/if}]
33
+[{else}]
34
+  [{if $googleTrackingId}]
35
+    </script>
36
+  [{/if}]
37
+[{/if}]
38
+
39
+[{if $oViewConf->getActiveClassName() == 'thankyou'}]
40
+<script>
41
+  // Order infos
42
+  [{assign var="order" value=$oView->getOrder()}]
43
+
44
+  [{assign var="currate" value=$order->oxorder__oxcurrate->value}]
45
+  [{if $oConfig->getConfigParam('blEnterNetPrice')}]
46
+  [{math equation="sum / rate" sum=$order->getOrderNetSum() rate=$currate format="%.2f" assign="sTotal"}]
47
+  [{else}]
48
+  [{math equation="sum / rate" sum=$order->getTotalOrderSum() rate=$currate format="%.2f" assign="sTotal"}]
49
+  [{/if}]
50
+  [{math equation="sum - net" sum=$order->getTotalOrderSum() net=$order->getOrderNetSum() format="%.2f" assign="sTax"}]
51
+  [{math equation="sum / rate" sum=$order->oxorder__oxdelcost->value rate=$currate format="%.2f" assign="sShipping"}]
52
+
53
+  // Items
54
+  var orderitems = [];
55
+  [{foreach from=$order->getOrderArticles() item=oOrderArticle}]
56
+    [{if $oConfig->getConfigParam('blEnterNetPrice')}]
57
+    [{assign var="oPrice" value=$oOrderArticle->getPrice()}]
58
+    [{math equation="sum / rate" sum=$oPrice->getNettoPrice() rate=$currate format="%.2f" assign="sPrice"}]
59
+    [{else}]
60
+    [{assign var="sPrice" value=$oOrderArticle->oxorderarticles__oxprice->value}]
61
+    [{/if}]
62
+
63
+    orderitems.push({
64
+      'id': '[{$order->oxorder__oxordernr->value}]',                          [{* Transaction ID *}]
65
+      'name': '[{$oOrderArticle->oxorderarticles__oxtitle->value|escape:"quotes"}][{if $oOrderArticle->oxorderarticles__oxselvariant->value}] [{$oOrderArticle->oxorderarticles__oxselvariant->value}][{/if}]',          [{* Product name *}]
66
+      'sku': '[{$oOrderArticle->oxorderarticles__oxartnum->value|escape:"quotes"}]',          [{* SKU *}]
67
+      'price': '[{$sPrice}]',                                                 [{* Preis pro Einheit *}]
68
+      'quantity': '[{$oOrderArticle->oxorderarticles__oxamount->value}]'      [{* Menge *}]
69
+    });
70
+
71
+  [{/foreach}]
72
+
73
+  [{if $googleTrackingId}]
74
+    gtag('event', 'purchase', {
75
+      'transaction_id': '[{$order->oxorder__oxordernr->value}]',        [{* Transaction ID *}]
76
+      'affiliation':    '[{$oxcmp_shop->oxshops__oxname->value|escape:"quotes"}]',      [{* Store name *}]
77
+      'value':          '[{$sTotal}]',                                  [{* Grand Total *}]
78
+      'shipping':       '[{$sShipping}]',                               [{* Shipping *}]
79
+      'tax':            '[{$sTax}]',                                     [{* Tax *}]
80
+      'items': orderitems
81
+    });
82
+  [{/if}]
83
+
84
+  [{if $googleAdsId}]
85
+    gtag('event', 'conversion', {
86
+      'send_to': '[{$googleAdsId}]/[{$googleAdsConvLabel}]',
87
+      'transaction_id': '[{$order->oxorder__oxordernr->value}]',
88
+      'value':          '[{$sTotal}]'
89
+    });
90
+  [{/if}]
91
+
92
+</script>
93
+[{/if}]
0 94
\ No newline at end of file