Submit callback, process the advagg_critical_css form.

Also clear out the advagg cache bin.

Sujets associés

1 string reference to 'advagg_critical_css_admin_settings_form_submit'
advagg_critical_css_admin_settings_form dans advagg_critical_css/advagg_critical_css.admin.inc
Form builder; Configure advagg settings.

Fichier

advagg_critical_css/advagg_critical_css.admin.inc, line 285

Code

function advagg_critical_css_admin_settings_form_submit($form, &$form_state) {
    // Exclude unnecessary elements.
    form_state_values_clean($form_state);
    // Save advagg_critical_css_selector_blacklist.
    if (!isset($form_state['values']['advagg_critical_css_selector_blacklist'])) {
        $form_state['values']['advagg_critical_css_selector_blacklist'] = '';
    }
    $advagg_critical_css_selector_blacklist = variable_get('advagg_critical_css_selector_blacklist', '');
    if ($form_state['values']['advagg_critical_css_selector_blacklist'] !== $advagg_critical_css_selector_blacklist) {
        variable_set('advagg_critical_css_selector_blacklist', $form_state['values']['advagg_critical_css_selector_blacklist']);
    }
    unset($form_state['values']['advagg_critical_css_selector_blacklist']);
    // Rearrange form values into key value pairs.
    $items = advagg_critical_css_get_rows_from_form($form_state['values']);
    // Get default values.
    $default_values = advagg_find_all_recommended_admin_values($form_state['complete form'], '#default_value');
    unset($default_values['form_token']);
    $default_items = advagg_critical_css_get_rows_from_form($default_values);
    // Get diff, see what items need to be saved.
    $diff = advagg_diff_multi($default_items, $items);
    $changed_items = array();
    foreach ($diff as $key => $values) {
        $changed_items[$key] = $items[$key];
    }
    // Get items to insert/update and delete.
    list($insert_update, $delete) = advagg_critical_css_get_db_operations_arrays($changed_items, $default_items);
    advagg_critical_css_table_insert_update($insert_update);
    advagg_critical_css_table_delete($delete);
    // Clear caches.
    advagg_cache_clear_admin_submit();
    drupal_set_message(t('The configuration options have been saved.'));
}