Adds the loadcss js library if needed.

Paramètres

array $js: The JS array.

array $css: The CSS array.

2 calls to advagg_mod_add_loadcss_js_lib()
advagg_mod_advagg_modify_css_pre_render_alter dans advagg_mod/advagg_mod.module
Implements hook_advagg_modify_css_pre_render_alter().
advagg_mod_page_alter dans advagg_mod/advagg_mod.module
Implements hook_page_alter().

Fichier

advagg_mod/advagg_mod.module, line 1579

Code

function advagg_mod_add_loadcss_js_lib(array $js = array(), array $css = array()) {
    if (!module_exists('advagg') || !advagg_enabled()) {
        return;
    }
    // Return early if this setting is disabled.
    list(, , , , , , , , , , $css_defer) = advagg_mod_get_lists($js, $css);
    if (empty($css_defer)) {
        return;
    }
    static $added;
    $library = advagg_get_library('loadCSS', 'advagg_mod');
    $options_defaults = advagg_mod_loadcss_js_defaults();
    $preload = '-onload';
    if ($css_defer == 4) {
        $preload = '-preload';
    }
    $css_defer_js_code = variable_get('advagg_mod_css_defer_js_code', ADVAGG_MOD_CSS_DEFER_JS_CODE);
    // Inline load.
    if ($css_defer_js_code == 0) {
        if (!empty($library['installed'])) {
            libraries_load('loadCSS', "inline{$preload}");
        }
        else {
            foreach ($library['variants']["inline{$preload}"]['files']['js'] as $data => $options) {
                if (!isset($added[$data])) {
                    if (!empty($options['data'])) {
                        drupal_add_js($options['data'], $options + $options_defaults);
                        $added[$data] = TRUE;
                    }
                    else {
                        // Fallback to load as a file if no inline js.
                        $css_defer_js_code = 2;
                    }
                }
            }
        }
    }
    // Load as a file.
    if ($css_defer_js_code == 2) {
        if ($library['installed']) {
            if (variable_get('advagg_cache_level', ADVAGG_CACHE_LEVEL) >= 0 && $library['variants']['minified']['#files_exists']) {
                libraries_load('loadCSS', "minified{$preload}");
            }
            else {
                if ($preload) {
                    libraries_load('loadCSS');
                }
                else {
                    libraries_load('loadCSS', "normal{$preload}");
                }
            }
        }
        else {
            foreach ($library['variants']["local{$preload}"]['files']['js'] as $data => $options) {
                if (!isset($added[$data])) {
                    if (!empty($options['data'])) {
                        drupal_add_js($options['data'], $options + $options_defaults);
                        $added[$data] = TRUE;
                    }
                    else {
                        // Fallback to external load.
                        $css_defer_js_code = 4;
                    }
                }
            }
        }
    }
    // Load external library.
    if ($css_defer_js_code == 4) {
        foreach ($library['variants']["external{$preload}"]['files']['js'] as $data => $options) {
            if (!isset($added[$data])) {
                drupal_add_js($options['data'], $options + $options_defaults);
                $added[$data] = TRUE;
            }
        }
    }
}