You are here

function _google_tag_data_layer_snippet in GoogleTagManager 7

Returns JavaScript data layer snippet or adds items to data layer.

Return value

string|null The data layer snippet or NULL.

2 calls to _google_tag_data_layer_snippet()
google_tag_snippets in includes/snippet.inc
Returns JavaScript snippets.
_google_tag_classes_save in includes/admin.inc
Stores data layer classes based on current settings.

File

includes/snippet.inc, line 106
Contains the JavaScript snippet insertion code.

Code

function _google_tag_data_layer_snippet(&$classes = array()) {

  // Gather data.
  $data_layer = _google_tag_variable_clean('google_tag_data_layer', 'dataLayer');
  $whitelist = variable_get('google_tag_whitelist_classes', GOOGLE_TAG_WHITELIST_CLASSES);
  $blacklist = variable_get('google_tag_blacklist_classes', GOOGLE_TAG_BLACKLIST_CLASSES);
  $classes = array();
  $names = array(
    'whitelist',
    'blacklist',
  );
  foreach ($names as $name) {
    google_tag_text_clean(${$name}, 'array');
    if (empty(${$name})) {
      continue;
    }
    $classes["gtm.{$name}"] = ${$name};
  }

  // Build data layer snippet.
  $script = $classes ? "var {$data_layer} = [" . drupal_json_encode($classes) . '];' : '';
  return $script;
}