Submit callback, clear out the advagg cache bin.

Also process the advagg_relocate_css_file_settings variable.

Sujets associés

1 string reference to 'advagg_relocate_admin_settings_form_submit'
advagg_relocate_admin_settings_form dans advagg_relocate/advagg_relocate.admin.inc
Form builder; Configure advagg settings.

Fichier

advagg_relocate/advagg_relocate.admin.inc, line 400

Code

function advagg_relocate_admin_settings_form_submit($form, &$form_state) {
    // Work around PHP bug with $_POST not containing all the data.
    $alt_post = array();
    $input = rawurldecode(file_get_contents('php://input'));
    parse_str($input, $alt_post);
    $alt_post = drupal_json_decode(str_replace(' ', '+', drupal_json_encode($alt_post)));
    $diff = advagg_diff_multi($_POST, $alt_post);
    if (!empty($diff)) {
        foreach ($diff as $k => $v) {
            if (isset($form_state['values'][$k])) {
                $form_state['values'][$k] = $v;
            }
        }
    }
    // Reset this form to defaults or recommended values; also show what changed.
    advagg_set_admin_form_defaults_recommended($form_state, 'advagg_relocate_admin_mode');
    // Get settings that start with advagg_relocate_css_file_settings.
    if (defined('PHP_VERSION_ID') && PHP_VERSION_ID >= 50600) {
        $vars = array_filter($form_state['values'], '_advagg_relocate_admin_is_css_file_settings', ARRAY_FILTER_USE_KEY);
    }
    else {
        $vars = array_intersect_key($form_state['values'], array_flip(array_filter(array_keys($form_state['values']), '_advagg_relocate_admin_is_css_file_settings')));
    }
    // Unset found values.
    foreach ($vars as $key => $value) {
        if (isset($form_state['values'][$key])) {
            unset($form_state['values'][$key]);
        }
        // If all is set, remove sub options for that file.
        if (strpos($key, 'advagg_relocate_css_file_settings_all_') === 0 && !empty($value)) {
            $sub_key = str_replace('advagg_relocate_css_file_settings_all_', 'advagg_relocate_css_file_settings_', $key);
            if (isset($vars[$sub_key])) {
                unset($vars[$sub_key]);
            }
        }
    }
    // Save under one variable.
    $saved_values = array();
    foreach ($vars as $key => $value) {
        $key = str_replace('advagg_relocate_css_file_settings_all_', 'all:', $key);
        $key = str_replace('advagg_relocate_css_file_settings_', '', $key);
        $saved_values[$key] = $value;
    }
    $form_state['values']['advagg_relocate_css_file_settings'] = $saved_values;
    // Clear caches.
    advagg_cache_clear_admin_submit();
}