6 * Installation file for Google Analytics module.
9 function googleanalytics_install() {
10 variable_set('googleanalytics_visibility', 0);
12 // Remove tracking from all administrative pages, see http://drupal.org/node/34970.
20 variable_set('googleanalytics_pages', implode("\n", $pages));
23 function googleanalytics_uninstall() {
24 variable_del('googleanalytics_account');
25 variable_del('googleanalytics_codesnippet_before');
26 variable_del('googleanalytics_codesnippet_after');
27 variable_del('googleanalytics_segmentation');
28 variable_del('googleanalytics_trackoutgoing');
29 variable_del('googleanalytics_trackmailto');
30 variable_del('googleanalytics_trackfiles');
31 variable_del('googleanalytics_trackfiles_extensions');
32 variable_del('googleanalytics_cache');
33 variable_del('googleanalytics_last_cache');
34 variable_del('googleanalytics_site_search');
35 variable_del('googleanalytics_js_scope');
36 variable_del('googleanalytics_custom');
37 variable_del('googleanalytics_roles');
38 variable_del('googleanalytics_visibility');
39 variable_del('googleanalytics_pages');
40 variable_del('googleanalytics_translation_set');
44 * Remove cache directory if module is disabled (or uninstalled).
46 function googleanalytics_disable() {
47 $path = file_directory_path() .
'/googleanalytics';
48 if (file_exists($path)) {
49 file_directory_path($path .
'/ga.js');
55 function googleanalytics_update_6000() {
58 variable_set('googleanalytics_trackfiles_extensions', variable_get('googleanalytics_trackfiles', GA_TRACKFILES_EXTENSIONS
));
59 $trackfiles = variable_get('googleanalytics_trackfiles', GA_TRACKFILES_EXTENSIONS
) ? TRUE
: FALSE
;
60 variable_set('googleanalytics_trackfiles', $trackfiles);
61 $ret[] = array('success' => TRUE
, 'query' => 'Updated download tracking settings.');
66 function googleanalytics_update_6001() {
69 variable_set('googleanalytics_visibility', 0);
71 // Remove tracking from all administrative pages, see http://drupal.org/node/34970.
78 variable_set('googleanalytics_pages', implode("\n", $pages));
79 $ret[] = array('success' => TRUE
, 'query' => 'Added page tracking to every page except the listed pages: '.
implode(', ', $pages));
85 * Upgrade role settings and per user tracking settings
86 * of "User 1" and remove outdated tracking variables.
88 function googleanalytics_update_6002() {
91 // Upgrade enabled/disabled roles to new logic (correct for upgrades from 5.x-1.4 and 6.x-1.0).
93 foreach (user_roles() as
$rid => $name) {
94 if (variable_get('googleanalytics_track_'.
$rid, FALSE
)) {
95 // Role ID is activated for user tracking.
97 $ret[] = array('success' => TRUE
, 'query' => 'Enabled page tracking for role: ' .
$name);
100 $ret[] = array('success' => TRUE
, 'query' => 'Disabled page tracking for role: ' .
$name);
103 variable_set('googleanalytics_roles', $roles);
105 // Upgrade disabled tracking of "user 1" to new logic.
106 if (!$track_user1 = variable_get('googleanalytics_track__user1', 1)) {
107 variable_set('googleanalytics_custom', 1);
109 // Load user 1 object, set appropiate value and save new user settings back.
110 $account = user_load(array('uid' => 1));
111 $account = user_save($account, array('googleanalytics' => array('custom' => 0)), 'account');
112 $ret[] = array('success' => TRUE
, 'query' => 'Disabled user specific page tracking for website administrator.');
115 // Delete outdated tracking settings.
116 $ret[] = update_sql("DELETE FROM {variable} WHERE name LIKE 'googleanalytics_track_%'");
122 * #262468: Clear menu cache to solve stale menu data in 5.x-1.5 and 6.x-1.1
124 function googleanalytics_update_6003() {
131 * Change visibility setting for path "user/*".
133 function googleanalytics_update_6004() {
136 // Orginal pages setting.
144 $diff = array_diff($pages, preg_split('/(\r\n?|\n)/', variable_get('googleanalytics_pages', implode("\n", $pages))));
146 // No diff to original settings found. Update with new settings.
153 variable_set('googleanalytics_pages', implode("\n", $pages));
154 $ret[] = array('success' => TRUE
, 'query' => 'Path visibility filter setting changed from "user*" to "user/*/*".');
157 $ret[] = array('success' => TRUE
, 'query' => 'Custom path visibility filter setting found. Update skipped!');
164 * Change visibility setting for path "admin*".
166 function googleanalytics_update_6005() {
169 // Orginal pages setting.
177 $diff = array_diff($pages, preg_split('/(\r\n?|\n)/', variable_get('googleanalytics_pages', implode("\n", $pages))));
179 // No diff to original settings found. Update with new settings.
187 variable_set('googleanalytics_pages', implode("\n", $pages));
188 $ret[] = array('success' => TRUE
, 'query' => 'Path visibility filter setting changed from "admin*" to "admin" and "admin/*".');
191 $ret[] = array('success' => TRUE
, 'query' => 'Custom path visibility filter setting found. Update skipped!');
198 * Upgrade custom javascript settings.
200 function googleanalytics_update_6006() {
203 variable_set('googleanalytics_codesnippet_before', variable_get('googleanalytics_codesnippet', ''));
204 variable_del('googleanalytics_codesnippet');
205 $ret[] = array('success' => TRUE
, 'query' => 'Upgraded custom javascript codesnippet setting.');
211 * Remove "User identifier" and "User name" from segmentation fields.
213 * This is a data protection and privacy law change. For more information see Google Analytics
214 * terms of use section 8.1 (http://www.google.com/analytics/en-GB/tos.html).
216 function googleanalytics_update_6007() {
219 $profile_fields = variable_get('googleanalytics_segmentation', array());
220 unset($profile_fields['uid']);
221 unset($profile_fields['name']);
222 variable_set('googleanalytics_segmentation', $profile_fields);
223 $ret[] = array('success' => TRUE
, 'query' => 'Removed "User identifier" and "User name" from segmentation fields.');
229 * Remove outdated legacy support variables and files.
231 function googleanalytics_update_6200() {
234 $path = file_directory_path() .
'/googleanalytics';
235 if (file_exists($path)) {
236 file_delete($path .
'/urchin.js');
238 variable_del('googleanalytics_legacy_version');
240 $ret[] = array('success' => TRUE
, 'query' => 'Removed legacy support.');