You are here

protected static function GoogleAnalyticsAdminSettingsForm::validateCreateFieldName in Google Analytics 8.2

Checks whether a field name is valid.

Parameters

string $name: The option value entered by the user.

Return value

string|null The error message if the specified value is invalid, NULL otherwise.

1 call to GoogleAnalyticsAdminSettingsForm::validateCreateFieldName()
GoogleAnalyticsAdminSettingsForm::validateCreateFieldValues in src/Form/GoogleAnalyticsAdminSettingsForm.php
The #element_validate callback for create only fields.

File

src/Form/GoogleAnalyticsAdminSettingsForm.php, line 950

Class

GoogleAnalyticsAdminSettingsForm
Configure Google_Analytics settings for this site.

Namespace

Drupal\google_analytics\Form

Code

protected static function validateCreateFieldName($name) {

  // List of supported field names:
  // https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#create
  $create_only_fields = [
    'allowAnchor',
    'alwaysSendReferrer',
    'clientId',
    'cookieName',
    'cookieDomain',
    'cookieExpires',
    'legacyCookieDomain',
    'legacyHistoryImport',
    'sampleRate',
    'siteSpeedSampleRate',
    'storage',
    'useAmpClientId',
  ];
  if ($name == 'name') {
    return t('Create only field name %name is a disallowed field name. Changing the <em>Tracker Name</em> is currently not supported.', [
      '%name' => $name,
    ]);
  }
  if ($name == 'allowLinker') {
    return t('Create only field name %name is a disallowed field name. Please select <em>Multiple top-level domains</em> under <em>Tracking scope > Domains</em> to enable cross domain tracking.', [
      '%name' => $name,
    ]);
  }
  if ($name == 'userId') {
    return t('Create only field name %name is a disallowed field name. Please enable <em>Track User ID</em> under <em>Tracking scope > Users</em>.', [
      '%name' => $name,
    ]);
  }
  if (!in_array($name, $create_only_fields)) {
    return t('Create only field name %name is an unknown field name. Field names are case sensitive. Please see <a href=":url">create only fields</a> documentation for supported field names.', [
      '%name' => $name,
      ':url' => 'https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#create',
    ]);
  }
}