You are here

function eu_cookie_compliance_admin_category_form_submit in EU Cookie Compliance (GDPR Compliance) 7

Same name and namespace in other branches
  1. 7.2 eu_cookie_compliance.admin.categories.inc \eu_cookie_compliance_admin_category_form_submit()

Submit handler for adding / editing a cookie consent category.

All that happens here is massaging form values to match what system_settings_form expects. Bonus is that i18n variables can then also work its magic, with a little help from eu_cookie_compliance_variable_settings_form_alter.

Parameters

array $form: Form array.

array $form_state: Form state array.

1 string reference to 'eu_cookie_compliance_admin_category_form_submit'
eu_cookie_compliance_admin_category_form in ./eu_cookie_compliance.admin.categories.inc
Provides form for adding / editing a cookie consent category.

File

./eu_cookie_compliance.admin.categories.inc, line 306
This file provides administration forms for the cookie categories.

Code

function eu_cookie_compliance_admin_category_form_submit(array $form, array &$form_state) {
  $categories = variable_get('eu_cookie_compliance_categories', array());
  if (!isset($categories[$form_state['values']['machine_name']])) {
    $categories[$form_state['values']['machine_name']] = array(
      'weight' => 0,
    );
  }
  $categories[$form_state['values']['machine_name']] = array_merge($categories[$form_state['values']['machine_name']], array(
    'machine_name' => $form_state['values']['machine_name'],
    'label' => $form_state['values']['label'],
    'description' => $form_state['values']['description'],
    'checkbox_default_state' => $form_state['values']['checkbox_default_state'],
  ));
  $label = $form_state['values']['label'];
  if (!empty($form_state['values']['domain_id'])) {
    $domain_id = $form_state['values']['domain_id'];
  }
  else {
    $domain_id = NULL;
  }
  $form_state['values'] = array();
  $form_state['values']['eu_cookie_compliance_categories'] = $categories;
  if ($domain_id) {
    $form_state['values']['domain_id'] = $domain_id;
  }
  eu_cookie_compliance_clear_caches();
  drupal_set_message(t('The category %label has been saved.', array(
    '%label' => $label,
  )));
  $form_state['redirect'] = 'admin/config/system/eu-cookie-compliance/categories';
}