Remove ajaxPageState CSS/JS if misc/ajax.js is not used.

Paramètres

array $scripts: Render array.

3 calls to advagg_mod_js_no_ajaxpagestate()
advagg_get_js dans ./advagg.module
Returns a themed presentation of all JavaScript code for the current page.
advagg_get_js dans ./advagg.module
Returns a themed presentation of all JavaScript code for the current page.
advagg_mod_admin_settings_form dans advagg_mod/advagg_mod.admin.inc
Form builder; Configure advagg settings.
3 string references to 'advagg_mod_js_no_ajaxpagestate'
advagg_get_js dans ./advagg.module
Returns a themed presentation of all JavaScript code for the current page.
advagg_mod.module dans advagg_mod/advagg_mod.module
Advanced aggregation modifier module.
advagg_mod_admin_settings_form dans advagg_mod/advagg_mod.admin.inc
Form builder; Configure advagg settings.

Fichier

advagg_mod/advagg_mod.module, line 2027

Code

function advagg_mod_js_no_ajaxpagestate(array &$scripts) {
    if (!module_exists('advagg') || !advagg_enabled()) {
        return;
    }
    if (!variable_get('advagg_mod_js_no_ajaxpagestate', ADVAGG_MOD_JS_NO_AJAXPAGESTATE) || variable_get('advagg_cache_level', ADVAGG_CACHE_LEVEL) < 0) {
        return;
    }
    // Search for the ajax file in the #items array.
    $ajax_found = FALSE;
    if (isset($scripts['#items']) && is_array($scripts['#items'])) {
        foreach ($scripts['#items'] as $key => $values) {
            if (strpos($key, 'misc/ajax.js') !== FALSE || strpos($key, 'misc/ajax.min.js')) {
                $ajax_found = TRUE;
                break;
            }
        }
    }
    // The ajax.js file was not found and there is a settings array.
    if (!$ajax_found && isset($scripts['#items']['settings']['data'])) {
        foreach ($scripts['#items']['settings']['data'] as $delta => $setting) {
            if (array_key_exists('ajaxPageState', $setting)) {
                // Remove js files.
                if (isset($scripts['#items']['settings']['data'][$delta]['ajaxPageState']['js'])) {
                    unset($scripts['#items']['settings']['data'][$delta]['ajaxPageState']['js']);
                }
                // Remove css files.
                if (isset($scripts['#items']['settings']['data'][$delta]['ajaxPageState']['css'])) {
                    unset($scripts['#items']['settings']['data'][$delta]['ajaxPageState']['css']);
                }
                // Cleanup.
                if (empty($scripts['#items']['settings']['data'][$delta]['ajaxPageState'])) {
                    unset($scripts['#items']['settings']['data'][$delta]['ajaxPageState']);
                    if (empty($scripts['#items']['settings']['data'][$delta])) {
                        unset($scripts['#items']['settings']['data'][$delta]);
                    }
                }
            }
        }
    }
}