Newer
Older
<?php
/**
* @file
* Installation file for Google Analytics module.
*/
use Drupal\Core\Url;
use Drupal\user\Entity\Role;
/**
* Implements hook_install().
*/
function google_analytics_install() {
// Make the default install more user and GDPR friendly.
$role = Role::load('authenticated');
$role->grantPermission('opt-in or out of google analytics tracking');
$success = $role->save();
if ($success) {
$messenger = \Drupal::messenger();
$messenger->addMessage(t('Module %module granted %permission permission to authenticated users.', ['%module' => 'Google Analytics', '%permission' => t('Opt-in or out of tracking')]), 'status');
}
}
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/**
* Implements hook_uninstall().
*
* Remove cache directory if module is uninstalled.
*/
function google_analytics_uninstall() {
google_analytics_clear_js_cache();
}
/**
* Implements hook_requirements().
*/
function google_analytics_requirements($phase) {
$requirements = [];
if ($phase == 'runtime') {
$config = \Drupal::config('google_analytics.settings');
// Raise warning if Google user account has not been set yet.
if (!preg_match('/^UA-\d+-\d+$/', $config->get('account'))) {
$requirements['google_analytics_account'] = [
'title' => t('Google Analytics module'),
'description' => t('Google Analytics module has not been configured yet. Please configure its settings from the <a href=":url">Google Analytics settings page</a>.', [':url' => Url::fromRoute('google_analytics.admin_settings_form')->toString()]),
'severity' => REQUIREMENT_WARNING,
'value' => t('Not configured'),
];
}
// Raise warning if debugging is enabled.
if ($config->get('debug')) {
$requirements['google_analytics_debugging'] = [
'title' => t('Google Analytics module'),
'description' => t('Google Analytics module has debugging enabled. Please disable debugging setting in production sites from the <a href=":url">Google Analytics settings page</a>.', [':url' => Url::fromRoute('google_analytics.admin_settings_form')->toString()]),
'severity' => REQUIREMENT_WARNING,
'value' => t('Debugging enabled'),
];
}
// Raise warning if php code is being used.
if ($config->get('visibility.request_path_mode') && $config->get('visibility.request_path_mode') === '2') {
$requirements['google_analytics_php'] = [
'title' => t('Google Analytics module'),
'description' => t('Using PHP code in Google Analytics is deprecated and not available in Drupal 9. You must move your logic into a custom module, and change the <a href=":url">Page Visibility settings</a> to suppress this message.', [':url' => Url::fromRoute('google_analytics.admin_settings_form')->toString()]),
'severity' => REQUIREMENT_ERROR,
'value' => t('PHP code exists'),
];
}