You are here

function eu_cookie_compliance_admin_categories_form in EU Cookie Compliance (GDPR Compliance) 7.2

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

Form to order cookie consent categories & an overview at the same time.

Parameters

array $form: Form array.

array $form_state: Form state array.

Return value

array Form render array.

1 string reference to 'eu_cookie_compliance_admin_categories_form'
eu_cookie_compliance_menu in ./eu_cookie_compliance.module
Implements hook_menu().

File

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

Code

function eu_cookie_compliance_admin_categories_form(array $form, array $form_state) {
  $form = array(
    '#tree' => TRUE,
    'categories' => array(),
  );
  $categories = variable_get('eu_cookie_compliance_categories', array());
  $form['#submit'][] = 'eu_cookie_compliance_admin_categories_form_submit';
  $form['eu_cookie_compliance_categories'] = array(
    '#type' => 'hidden',
  );
  $options_list = _eu_cookie_compliance_get_category_checkbox_default_state_options_list();
  foreach ($categories as $machine_name => $category) {
    $form['categories'][$machine_name]['label'] = array(
      '#markup' => check_plain($category['label']),
    );
    $form['categories'][$machine_name]['machine_name'] = array(
      '#markup' => check_plain($machine_name),
    );
    $form['categories'][$machine_name]['description'] = array(
      '#markup' => check_plain($category['description']),
    );
    $form['categories'][$machine_name]['checkbox_default_state'] = array(
      '#markup' => isset($options_list[$category['checkbox_default_state']]) ? $options_list[$category['checkbox_default_state']] : $options_list['unchecked'],
    );

    // This field is invisible, but contains sort info (weights).
    $form['categories'][$machine_name]['weight'] = array(
      '#type' => 'weight',
      '#title' => t('Weight'),
      '#title_display' => 'invisible',
      '#default_value' => $category['weight'],
    );
    $options = array();

    // Adapt links to follow realm language if present.
    $query_parameters = drupal_get_query_parameters();
    if (isset($query_parameters['variable_realm_key_language'])) {
      $language_list = language_list();
      $language = $language_list[$query_parameters['variable_realm_key_language']] ?: FALSE;
      if ($language) {
        $options['language'] = $language;
      }
    }
    $form['categories'][$machine_name]['op'] = array(
      '#markup' => l(t('Edit'), '/admin/config/system/eu-cookie-compliance/categories/' . check_plain($machine_name) . '/edit', $options) . ' | ' . l(t('Delete'), '/admin/config/system/eu-cookie-compliance/categories/' . check_plain($machine_name) . '/delete', $options),
    );
  }
  $options = array();

  // Adapt links to follow realm language if present.
  $query_parameters = drupal_get_query_parameters();
  if (isset($query_parameters['variable_realm_key_language'])) {
    $language_list = language_list();
    $language = $language_list[$query_parameters['variable_realm_key_language']] ?: FALSE;
    if ($language) {
      $options['language'] = $language;
    }
  }
  $form['add_new'] = array(
    '#type' => 'markup',
    '#markup' => t('<ul class="action-links"><li><a href="@path">Add new category</a></li></ul>', array(
      '@path' => url('admin/config/system/eu-cookie-compliance/categories/add', $options),
    )),
  );
  $form = system_settings_form($form);
  unset($form['#theme']);
  return $form;
}