Skip to content

Commit aa6d5cd

Browse files
authored
Merge pull request #85 from iMattPro/issue/84
Allow Measurement ID
2 parents 5ef6522 + 195c2a1 commit aa6d5cd

27 files changed

+121
-77
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ matrix:
1717
env: DB=mysqli
1818
- php: 7.3
1919
env: DB=mysqli
20-
- php: 7.4snapshot
20+
- php: 7.4
2121
env: DB=mysqli
2222
- php: nightly
2323
env: DB=mysqli

event/listener.php

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -137,22 +137,29 @@ public function add_googleanalytics_configs($event)
137137
*/
138138
public function validate_googleanalytics_id($event)
139139
{
140-
$input = isset($event['cfg_array']['googleanalytics_id']) ? $event['cfg_array']['googleanalytics_id'] : '';
141-
142140
// Check if the validate test is for google_analytics
143-
if ($input !== '' && $event['config_definition']['validate'] === 'googleanalytics_id')
141+
if ($event['config_definition']['validate'] !== 'googleanalytics_id' || empty($event['cfg_array']['googleanalytics_id']))
144142
{
145-
// Store the error and input event data
146-
$error = $event['error'];
143+
return;
144+
}
147145

148-
// Add error message if the input is not a valid Google Analytics ID
149-
if (!preg_match('/^UA-\d{4,9}-\d{1,4}$/', $input))
150-
{
151-
$error[] = $this->user->lang('ACP_GOOGLEANALYTICS_ID_INVALID', $input);
152-
}
146+
// Store the input and error event data
147+
$input = $event['cfg_array']['googleanalytics_id'];
148+
$error = $event['error'];
153149

154-
// Update error event data
155-
$event['error'] = $error;
150+
// Add error message if the input is not a valid Google Analytics ID
151+
if (!preg_match('/^UA-\d{4,9}-\d{1,4}$|^G-[A-Z0-9]{10}$/', $input))
152+
{
153+
$error[] = $this->user->lang('ACP_GOOGLEANALYTICS_ID_INVALID', $input);
156154
}
155+
156+
// Add error message if GTAG is not selected for use with a Measurement ID
157+
if (preg_match('/^G-[A-Z0-9]{10}$/', $input) && (int) $event['cfg_array']['googleanalytics_tag'] === 0)
158+
{
159+
$error[] = $this->user->lang('ACP_GOOGLEANALYTICS_TAG_INVALID', $input);
160+
}
161+
162+
// Update error event data
163+
$event['error'] = $error;
157164
}
158165
}

language/ar/googleanalytics_acp.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,9 @@
4141
$lang = array_merge($lang, array(
4242
'ACP_GOOGLEANALYTICS' => 'Google Analytics',
4343
'ACP_GOOGLEANALYTICS_ID' => 'Google Analytics ID',
44-
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'أكتب كود Google Analytics ID الخاص بك، مثل: <br /><br /><samp>UA-0000000-00</samp>.إحصائيات قوقل يمكنها تتبع أعضاء منتداك المسجلين عبر الأجهزة والجلسات المتعددة، حتى يكون عدد الأعضاء أكثر دقة. لتفعيل هذه الوظيفة المحَسِّنة يجب أن يكون رقم تتبع المستخدم ID مضبوط في حسابك إحصائيات قوقل. <a href="https://support.google.com/analytics/answer/3123666">اضغط هنا للمعلومات أكثر <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
45-
'ACP_GOOGLEANALYTICS_ID_INVALID' => '“%s” كود Google Analytics ID الذي أدخلته غير صالح.<br />يجب أن يكون على الشكل “UA-0000000-00”.',
44+
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'أكتب كود Google Analytics ID الخاص بك، مثل: <br /><br /><samp>UA-000000-00</samp> or Measurement ID <samp>G-XXXXXXXXXX</samp>.إحصائيات قوقل يمكنها تتبع أعضاء منتداك المسجلين عبر الأجهزة والجلسات المتعددة، حتى يكون عدد الأعضاء أكثر دقة. لتفعيل هذه الوظيفة المحَسِّنة يجب أن يكون رقم تتبع المستخدم ID مضبوط في حسابك إحصائيات قوقل. <a href="https://support.google.com/analytics/answer/3123666">اضغط هنا للمعلومات أكثر <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
45+
'ACP_GOOGLEANALYTICS_ID_INVALID' => '“%s” كود Google Analytics ID الذي أدخلته غير صالح.<br />يجب أن يكون على الشكل “UA-000000-00” or “G-XXXXXXXXXX”.',
46+
'ACP_GOOGLEANALYTICS_TAG_INVALID' => '“Global Site Tag (gtag.js)” must be the selected Google Analytics Script Tag when using a Measurement ID.',
4647
'ACP_GA_ANONYMIZE_IP' => 'Turn on IP Anonymization',
4748
'ACP_GA_ANONYMIZE_IP_EXPLAIN' => 'Enable this option if you want the data collected by Google Analytics to be compliant with the EU‘s General Data Protection Regulation (GDPR). Note that enabling this option may slightly reduce the accuracy of geographic reporting.',
4849
'ACP_GOOGLEANALYTICS_TAG' => 'Google Analytics Script Tag',

language/cs/googleanalytics_acp.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,9 @@
4040
$lang = array_merge($lang, array(
4141
'ACP_GOOGLEANALYTICS' => 'Google Analytics',
4242
'ACP_GOOGLEANALYTICS_ID' => 'Google Analytics ID',
43-
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'Zadejte Vaše ID ve službě Google Analytics, např.: <samp>UA-0000000-00</samp>.<br /><br />Google Analytics dokáže sledovat přihlášené uživatele napříč zařízeními pro přesnější informace o návštěvnících. Pro povolení této rozšířené funkcionality musíte povolit funkci User ID ve svém účtu Google Analytics. <a href="https://support.google.com/analytics/answer/3123666">Klikněte pro více informací <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
44-
'ACP_GOOGLEANALYTICS_ID_INVALID' => '“%s” není platné ID klienta ve službě Google Analytics.<br />Mělo by být ve tvaru “UA-0000000-00”.',
43+
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'Zadejte Vaše ID ve službě Google Analytics, např.: <samp>UA-000000-00</samp> or Measurement ID <samp>G-XXXXXXXXXX</samp>.<br /><br />Google Analytics dokáže sledovat přihlášené uživatele napříč zařízeními pro přesnější informace o návštěvnících. Pro povolení této rozšířené funkcionality musíte povolit funkci User ID ve svém účtu Google Analytics. <a href="https://support.google.com/analytics/answer/3123666">Klikněte pro více informací <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
44+
'ACP_GOOGLEANALYTICS_ID_INVALID' => '“%s” není platné ID klienta ve službě Google Analytics.<br />Mělo by být ve tvaru “UA-000000-00” or “G-XXXXXXXXXX”.',
45+
'ACP_GOOGLEANALYTICS_TAG_INVALID' => '“Global Site Tag (gtag.js)” must be the selected Google Analytics Script Tag when using a Measurement ID.',
4546
'ACP_GA_ANONYMIZE_IP' => 'Turn on IP Anonymization',
4647
'ACP_GA_ANONYMIZE_IP_EXPLAIN' => 'Enable this option if you want the data collected by Google Analytics to be compliant with the EU‘s General Data Protection Regulation (GDPR). Note that enabling this option may slightly reduce the accuracy of geographic reporting.',
4748
'ACP_GOOGLEANALYTICS_TAG' => 'Google Analytics Script Tag',

language/da/googleanalytics_acp.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,9 @@
4242
$lang = array_merge($lang, array(
4343
'ACP_GOOGLEANALYTICS' => 'Google Analytics',
4444
'ACP_GOOGLEANALYTICS_ID' => 'Google Analytics ID',
45-
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'Indtast din Google Analytics ID kode, f.eks.: <samp>UA-0000000-00</samp>.<br /><br />Google Analytics kan spore dine registrerede brugere på tværs af flere enheder og sessioner, for et mere præcist bruger tal i dine rapportere. For at aktivere denne forbedrede funktionalitet skal User ID sporing være konfigureret i din Google Analytics konto. <a href="https://support.google.com/analytics/answer/3123666">Klik for yderligere information <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
46-
'ACP_GOOGLEANALYTICS_ID_INVALID' => '“%s” er ikke en gyldig Google Analytics ID kode.<br />Det skal være i formen: “UA-0000000-00”.',
45+
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'Indtast din Google Analytics ID kode, f.eks.: <samp>UA-000000-00</samp> or Measurement ID <samp>G-XXXXXXXXXX</samp>.<br /><br />Google Analytics kan spore dine registrerede brugere på tværs af flere enheder og sessioner, for et mere præcist bruger tal i dine rapportere. For at aktivere denne forbedrede funktionalitet skal User ID sporing være konfigureret i din Google Analytics konto. <a href="https://support.google.com/analytics/answer/3123666">Klik for yderligere information <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
46+
'ACP_GOOGLEANALYTICS_ID_INVALID' => '“%s” er ikke en gyldig Google Analytics ID kode.<br />Det skal være i formen: “UA-000000-00” or “G-XXXXXXXXXX”.',
47+
'ACP_GOOGLEANALYTICS_TAG_INVALID' => '“Global Site Tag (gtag.js)” must be the selected Google Analytics Script Tag when using a Measurement ID.',
4748
'ACP_GA_ANONYMIZE_IP' => 'Turn on IP Anonymization',
4849
'ACP_GA_ANONYMIZE_IP_EXPLAIN' => 'Enable this option if you want the data collected by Google Analytics to be compliant with the EU‘s General Data Protection Regulation (GDPR). Note that enabling this option may slightly reduce the accuracy of geographic reporting.',
4950
'ACP_GOOGLEANALYTICS_TAG' => 'Google Analytics Script Tag',

language/de/googleanalytics_acp.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,9 @@
4040
$lang = array_merge($lang, array(
4141
'ACP_GOOGLEANALYTICS' => 'Google Analytics',
4242
'ACP_GOOGLEANALYTICS_ID' => 'Google Analytics-ID',
43-
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'Gib deine Google Analytics-ID ein, z.B.: <samp>UA-0000000-00</samp>.<br /><br />Google Analytics kann deine registrierten Benutzer für eine genauere Benutzerzählung über mehrere Geräte und Sitzungen hinweg verfolgen. Um diese verbesserte User ID-Funktion nutzen zu können, muss sie in deinem Google Analytics-Account aktiviert sein. <a href="https://support.google.com/analytics/answer/3123666">Klicke hier für mehr Informationen <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
44-
'ACP_GOOGLEANALYTICS_ID_INVALID' => '“%s” ist keine valide Google Analytics-ID.<br />Sie sollte die folgende Form haben: “UA-0000000-00”.',
43+
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'Gib deine Google Analytics-ID ein, z.B.: <samp>UA-000000-00</samp> or Measurement ID <samp>G-XXXXXXXXXX</samp>.<br /><br />Google Analytics kann deine registrierten Benutzer für eine genauere Benutzerzählung über mehrere Geräte und Sitzungen hinweg verfolgen. Um diese verbesserte User ID-Funktion nutzen zu können, muss sie in deinem Google Analytics-Account aktiviert sein. <a href="https://support.google.com/analytics/answer/3123666">Klicke hier für mehr Informationen <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
44+
'ACP_GOOGLEANALYTICS_ID_INVALID' => '“%s” ist keine valide Google Analytics-ID.<br />Sie sollte die folgende Form haben: “UA-000000-00” or “G-XXXXXXXXXX”.',
45+
'ACP_GOOGLEANALYTICS_TAG_INVALID' => '“Global Site Tag (gtag.js)” must be the selected Google Analytics Script Tag when using a Measurement ID.',
4546
'ACP_GA_ANONYMIZE_IP' => 'Turn on IP Anonymization',
4647
'ACP_GA_ANONYMIZE_IP_EXPLAIN' => 'Enable this option if you want the data collected by Google Analytics to be compliant with the EU‘s General Data Protection Regulation (GDPR). Note that enabling this option may slightly reduce the accuracy of geographic reporting.',
4748
'ACP_GOOGLEANALYTICS_TAG' => 'Google Analytics Script Tag',

language/de_x_sie/googleanalytics_acp.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,9 @@
4040
$lang = array_merge($lang, array(
4141
'ACP_GOOGLEANALYTICS' => 'Google Analytics',
4242
'ACP_GOOGLEANALYTICS_ID' => 'Google Analytics-ID',
43-
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'Geben Sie Ihre Google Analytics-ID ein, z.B.: <samp>UA-0000000-00</samp>.<br /><br />Google Analytics kann Ihre registrierten Benutzer für eine genauere Benutzerzählung über mehrere Geräte und Sitzungen hinweg verfolgen. Um diese verbesserte User ID-Funktion nutzen zu können, muss sie in Ihrem Google Analytics-Account aktiviert sein. <a href="https://support.google.com/analytics/answer/3123666">Klicken Sie hier für mehr Informationen <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
44-
'ACP_GOOGLEANALYTICS_ID_INVALID' => '“%s” ist keine valide Google Analytics-ID.<br />Sie sollte die folgende Form haben: “UA-0000000-00”.',
43+
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'Geben Sie Ihre Google Analytics-ID ein, z.B.: <samp>UA-000000-00</samp> or Measurement ID <samp>G-XXXXXXXXXX</samp>.<br /><br />Google Analytics kann Ihre registrierten Benutzer für eine genauere Benutzerzählung über mehrere Geräte und Sitzungen hinweg verfolgen. Um diese verbesserte User ID-Funktion nutzen zu können, muss sie in Ihrem Google Analytics-Account aktiviert sein. <a href="https://support.google.com/analytics/answer/3123666">Klicken Sie hier für mehr Informationen <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
44+
'ACP_GOOGLEANALYTICS_ID_INVALID' => '“%s” ist keine valide Google Analytics-ID.<br />Sie sollte die folgende Form haben: “UA-000000-00” or “G-XXXXXXXXXX”.',
45+
'ACP_GOOGLEANALYTICS_TAG_INVALID' => '“Global Site Tag (gtag.js)” must be the selected Google Analytics Script Tag when using a Measurement ID.',
4546
'ACP_GA_ANONYMIZE_IP' => 'Turn on IP Anonymization',
4647
'ACP_GA_ANONYMIZE_IP_EXPLAIN' => 'Enable this option if you want the data collected by Google Analytics to be compliant with the EU‘s General Data Protection Regulation (GDPR). Note that enabling this option may slightly reduce the accuracy of geographic reporting.',
4748
'ACP_GOOGLEANALYTICS_TAG' => 'Google Analytics Script Tag',

language/el/googleanalytics_acp.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,9 @@
4141
$lang = array_merge($lang, array(
4242
'ACP_GOOGLEANALYTICS' => 'Google Analytics',
4343
'ACP_GOOGLEANALYTICS_ID' => 'Google Analytics ID',
44-
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'Εισάγετε το αναγνωριστικό παρακολούθησης (ID code) του Google Analytics, π.χ.: <samp>UA-0000000-00</samp>.<br /><br />Το Google Analytics μπορεί να παρακολουθεί εγγεγραμμένους χρήστες σας σε πολλαπλές συσκευές και συνεδρίες, για μια πιο ακριβή καταμέτρηση των χρηστών στις αναφορές σας. Για να ενεργοποιήσετε αυτή τη βελτιωμένη λειτουργία παρακολούθησης του User ID πρέπει να ρυθμίσετε το λογαριασμό σας στο Google Analytics. <a href="https://support.google.com/analytics/answer/3123666?hl=el">Πατήστε εδώ για περισσότερες πληροφορίες <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
45-
'ACP_GOOGLEANALYTICS_ID_INVALID' => 'Το "%s" δεν είναι έγκυρο αναγνωριστικό παρακολούθησης (ID code) του Google Analytics.<br />Πρέπει να είναι μορφής "UA-0000000-00".',
44+
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'Εισάγετε το αναγνωριστικό παρακολούθησης (ID code) του Google Analytics, π.χ.: <samp>UA-000000-00</samp> or Measurement ID <samp>G-XXXXXXXXXX</samp>.<br /><br />Το Google Analytics μπορεί να παρακολουθεί εγγεγραμμένους χρήστες σας σε πολλαπλές συσκευές και συνεδρίες, για μια πιο ακριβή καταμέτρηση των χρηστών στις αναφορές σας. Για να ενεργοποιήσετε αυτή τη βελτιωμένη λειτουργία παρακολούθησης του User ID πρέπει να ρυθμίσετε το λογαριασμό σας στο Google Analytics. <a href="https://support.google.com/analytics/answer/3123666?hl=el">Πατήστε εδώ για περισσότερες πληροφορίες <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
45+
'ACP_GOOGLEANALYTICS_ID_INVALID' => 'Το "%s" δεν είναι έγκυρο αναγνωριστικό παρακολούθησης (ID code) του Google Analytics.<br />Πρέπει να είναι μορφής “UA-000000-00” or “G-XXXXXXXXXX”.',
46+
'ACP_GOOGLEANALYTICS_TAG_INVALID' => '“Global Site Tag (gtag.js)” must be the selected Google Analytics Script Tag when using a Measurement ID.',
4647
'ACP_GA_ANONYMIZE_IP' => 'Turn on IP Anonymization',
4748
'ACP_GA_ANONYMIZE_IP_EXPLAIN' => 'Enable this option if you want the data collected by Google Analytics to be compliant with the EU‘s General Data Protection Regulation (GDPR). Note that enabling this option may slightly reduce the accuracy of geographic reporting.',
4849
'ACP_GOOGLEANALYTICS_TAG' => 'Google Analytics Script Tag',

language/en/googleanalytics_acp.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,9 @@
4040
$lang = array_merge($lang, array(
4141
'ACP_GOOGLEANALYTICS' => 'Google Analytics',
4242
'ACP_GOOGLEANALYTICS_ID' => 'Google Analytics ID',
43-
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'Enter your Google Analytics ID code, e.g.: <samp>UA-0000000-00</samp>.<br /><br />Google Analytics can track your registered users across multiple devices and sessions, for a more accurate user count in your reports. To enable this enhanced functionality User ID tracking must be configured in your Google Analytics account. <a href="https://support.google.com/analytics/answer/3123666">Click for more information <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
44-
'ACP_GOOGLEANALYTICS_ID_INVALID' => '“%s” is not a valid Google Analytics ID code.<br />It should be in the form “UA-0000000-00”.',
43+
'ACP_GOOGLEANALYTICS_ID_EXPLAIN' => 'Enter your Google Analytics Tracking ID <samp>UA-000000-00</samp> or Measurement ID <samp>G-XXXXXXXXXX</samp>. Leave this field empty if you do not use Google Analytics.<br /><br />Google Analytics can track your registered users across multiple devices and sessions, for a more accurate user count in your reports. To enable this enhanced functionality User ID tracking must be configured in your Google Analytics account. <a href="https://support.google.com/analytics/answer/3123666">Click for more information <i class="icon fa-external-link fa-fw" aria-hidden="true"></i></a>.',
44+
'ACP_GOOGLEANALYTICS_ID_INVALID' => '“%s” is not a valid Google Analytics ID code.<br />It should be in the form “UA-000000-00” or “G-XXXXXXXXXX”.',
45+
'ACP_GOOGLEANALYTICS_TAG_INVALID' => '“Global Site Tag (gtag.js)” must be the selected Google Analytics Script Tag when using a Measurement ID.',
4546
'ACP_GA_ANONYMIZE_IP' => 'Turn on IP Anonymization',
4647
'ACP_GA_ANONYMIZE_IP_EXPLAIN' => 'Enable this option if you want the data collected by Google Analytics to be compliant with the EU‘s General Data Protection Regulation (GDPR). Note that enabling this option may slightly reduce the accuracy of geographic reporting.',
4748
'ACP_GOOGLEANALYTICS_TAG' => 'Google Analytics Script Tag',

0 commit comments

Comments
 (0)