You are here

function advagg_get_js_css_get_array in Advanced CSS/JS Aggregation 7

Same name and namespace in other branches
  1. 6 advagg.module \advagg_get_js_css_get_array()

Return a large array of the CSS & JS files loaded on this page.

Parameters

$js_files_excluded: array of js files to not include in the output array.

$css_files_excluded: array of css files to not include in the output array.

Return value

array.

File

./advagg.module, line 3210
Advanced CSS/JS aggregation module

Code

function advagg_get_js_css_get_array($js_files_excluded = array(), $css_files_excluded = array()) {
  global $conf, $_advagg;

  // Setup variables.
  $variables = array(
    'css' => array(),
    'js' => array(),
  );

  // Setup render functions.
  $css_function = variable_get('advagg_css_render_function', ADVAGG_CSS_RENDER_FUNCTION);
  $js_function = variable_get('advagg_js_render_function', ADVAGG_JS_RENDER_FUNCTION);
  $conf['advagg_css_render_function'] = 'advagg_css_array';
  $conf['advagg_js_render_function'] = 'advagg_js_array';

  // Run CSS code.
  $css_array = array();
  $variables['css'] = drupal_add_css(CSS_DEFAULT);
  if (module_exists('less')) {
    less_preprocess_page($variables, NULL);
  }
  $css_func_inline = advagg_add_css_inline();
  if (!empty($css_func_inline)) {
    $variables['css'] = advagg_merge_inline_css($variables['css'], $css_func_inline);
  }

  // Remove excluded CSS files.
  foreach ($variables['css'] as $media => $types) {
    foreach ($types as $type => $values) {
      foreach ($values as $filename => $preprocess) {
        if (in_array($filename, $css_files_excluded)) {
          unset($variables['css'][$media][$type][$filename]);
        }
      }
    }
  }
  $css_array = advagg_process_css($variables['css']);

  // Run JS code.
  $js_array = array();
  $variables['js']['header'] = drupal_add_js(NULL, array(
    'type' => NULL,
  ));
  if (variable_get('advagg_closure', ADVAGG_CLOSURE) && !empty($_advagg['closure'])) {
    $variables['js']['footer'] = drupal_add_js(NULL, array(
      'type' => NULL,
      'scope' => 'footer',
    ));
  }
  advagg_jquery_updater($variables['js']['header']);

  // Remove excluded JS files.
  foreach ($variables['js'] as $scope => $values) {
    foreach ($values as $type => $data) {
      foreach ($data as $filename => $info) {
        if (in_array($filename, $js_files_excluded)) {
          unset($variables['js'][$scope][$type][$filename]);
        }
      }
    }
  }
  $js_array = advagg_process_js($variables['js']);

  // Set render functions back to defaults.
  $conf['advagg_css_render_function'] = $css_function;
  $conf['advagg_js_render_function'] = $js_function;

  // Return arrays.
  return array(
    'js' => $js_array,
    'css' => $css_array,
  );
}