You are here

function _google_tag_assets_create in GoogleTagManager 7

Same name and namespace in other branches
  1. 8 google_tag.module \_google_tag_assets_create()

Saves snippet files and data layer classes based on current settings.

Use case: variable_realm is not enabled

  • one set of snippet files stored in public://google_tag

Use case: variable_realm is enabled

  • multiple sets of snippet files stored in public://google_tag/{realm}
  • sub case: no google_tag variables are realm-specific update all snippet files based on global default variables
  • sub case: some google_tag variables are realm-specific update all snippet files based on global and realm-specific variables
2 calls to _google_tag_assets_create()
google_tag_assets_create in ./google_tag.module
Saves snippet files and data layer classes based on current settings.
google_tag_settings_form_submit in includes/admin.inc
Form submission handler for google_tag_settings_form().

File

includes/admin.inc, line 245
Contains the administrative page and form callbacks.

Code

function _google_tag_assets_create() {
  @file_unmanaged_delete_recursive('public://google_tag');
  if (module_exists('variable_realm') && module_exists('variable_store')) {

    // Backup global config as switching realm overwrites this array.
    $backup = $GLOBALS['conf'];

    // i18n_variable module depends on variable_realm, variable_store
    $realms = variable_realm_list();
    foreach ($realms as $realm_name => $realm_title) {
      $keys = variable_realm_keys($realm_name);
      foreach ($keys as $key_name => $key_title) {
        _google_tag_message_display('realm:key = @realm:@key', array(
          '@realm' => $realm_name,
          '@key' => $key_name,
        ));
        variable_realm_switch($realm_name, $key_name);
        if (_google_tag_directory_prepare($realm_name)) {
          _google_tag_snippets_save($realm_name, $key_name);
          _google_tag_classes_save($realm_name, $key_name);
        }
      }
    }
    $GLOBALS['conf'] = $backup;
  }
  else {
    if (_google_tag_directory_prepare()) {
      _google_tag_snippets_save();
      _google_tag_classes_save();
    }
  }
  _drupal_flush_css_js();
  drupal_clear_js_cache();
}