Browse code

Minor Updates for GA4

Benjamin Roth authored on26/06/2023 16:19:11
Showing1 changed files
1 1
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
-}
Browse code

Initial commit

Benjamin Roth authored on31/08/2015 14:53:33
Showing1 changed files
1 1
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_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
+}