You are here

function advagg_mod_init in Advanced CSS/JS Aggregation 7.2

Implements hook_init().

File

advagg_mod/advagg_mod.module, line 289
Advanced aggregation modifier module.

Code

function advagg_mod_init() {
  if (!module_exists('advagg') || !advagg_enabled()) {
    return;
  }

  // Adjust devel_shutdown callback.
  if (variable_get('advagg_enabled', ADVAGG_ENABLED) && (variable_get('advagg_mod_js_defer', ADVAGG_MOD_JS_DEFER) || variable_get('advagg_mod_js_async', ADVAGG_MOD_JS_ASYNC))) {
    $callbacks =& drupal_register_shutdown_function();
    foreach ($callbacks as $key => $values) {
      if ($values['callback'] === 'devel_shutdown') {
        $callbacks[$key]['callback'] = 'advagg_mod_devel_shutdown';
        break;
      }
    }
    reset($callbacks);
  }

  // Return if unified_multisite_dir is not set.
  $dir = rtrim(variable_get('advagg_mod_unified_multisite_dir', ''), '/');
  if (!empty($dir) && file_exists($dir) && is_dir($dir)) {
    $counter_filename = $dir . '/' . ADVAGG_SPACE . 'advagg_global_counter';
    $local_counter = advagg_get_global_counter();
    if (!file_exists($counter_filename)) {
      module_load_include('inc', 'advagg', 'advagg.missing');
      advagg_save_data($counter_filename, $local_counter);
    }
    else {
      $shared_counter = (int) advagg_file_get_contents($counter_filename);
      if ($shared_counter == $local_counter) {

        // Counters are the same, return.
      }
      elseif ($shared_counter < $local_counter) {

        // Local counter is higher, update saved file and return.
        module_load_include('inc', 'advagg', 'advagg.missing');
        advagg_save_data($counter_filename, $local_counter, TRUE);
      }
      elseif ($shared_counter > $local_counter) {

        // Shared counter is higher, update local copy and return.
        variable_set('advagg_global_counter', $shared_counter);
      }
    }
  }

  // Disable js in footer on imce page.
  // Disable js defer on imce page.
  // https://www.drupal.org/node/2817523
  if (module_exists('imce')) {
    $args = arg();
    if ($args[0] === 'imce' && empty($args[1])) {
      if (variable_get('advagg_mod_js_footer', ADVAGG_MOD_JS_FOOTER)) {
        $GLOBALS['conf']['advagg_mod_js_footer'] = 0;
      }
      if (variable_get('advagg_mod_js_defer', ADVAGG_MOD_JS_DEFER)) {
        $GLOBALS['conf']['advagg_mod_js_defer'] = 0;
      }
    }
  }
}