You are here

function advagg_critical_css_admin_settings_form_submit in Advanced CSS/JS Aggregation 7.2

Submit callback, process the advagg_critical_css form.

Also clear out the advagg cache bin.

Related topics

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

File

advagg_critical_css/advagg_critical_css.admin.inc, line 285
Admin page callbacks for the advagg critical css module.

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.'));
}