function eu_cookie_compliance_admin_category_form in EU Cookie Compliance (GDPR Compliance) 7.2
Same name and namespace in other branches
- 7 eu_cookie_compliance.admin.categories.inc \eu_cookie_compliance_admin_category_form()
Provides form for adding / editing a cookie consent category.
Parameters
array $form: Form array.
array $form_state: For state array.
string $machine_name: The machine name of the category.
Return value
array Form render array.
1 string reference to 'eu_cookie_compliance_admin_category_form'
- eu_cookie_compliance_menu in ./
eu_cookie_compliance.module - Implements hook_menu().
File
- ./
eu_cookie_compliance.admin.categories.inc, line 194 - This file provides administration forms for the cookie categories.
Code
function eu_cookie_compliance_admin_category_form(array $form, array $form_state, $machine_name = NULL) {
$form = array();
$categories = variable_get('eu_cookie_compliance_categories', array());
// Add this so i18n can add what it needs.
$form['eu_cookie_compliance_categories'] = array(
'#type' => 'hidden',
);
$form['#submit'][] = 'eu_cookie_compliance_admin_category_form_submit';
// We are in edit mode.
if ($machine_name !== NULL) {
$category = isset($categories[$machine_name]) ? $categories[$machine_name] : NULL;
if (!$category) {
drupal_set_message(t('You are tying to edit an invalid cookie category: %name.', array(
'%name' => $machine_name,
)), 'error');
drupal_goto('admin/config/system/eu-cookie-compliance/categories');
}
}
else {
$category = array(
'machine_name' => '',
'label' => '',
'description' => '',
'checkbox_default_state' => 'unchecked',
'weight' => 0,
);
}
$form['category'] = array(
'#type' => 'value',
'#value' => $category,
);
$form['label'] = array(
'#type' => 'textfield',
'#title' => t('Label'),
'#description' => t('The name that will be shown to the visitor.'),
'#required' => TRUE,
'#default_value' => check_plain($category['label']) ?: '',
);
$form['machine_name'] = array(
'#type' => 'machine_name',
'#default_value' => check_plain($category['machine_name']),
'#machine_name' => array(
'exists' => 'eu_cookie_compliance_admin_category_exists',
'source' => array(
'label',
),
),
'#disabled' => !empty($category['machine_name']),
);
$form['description'] = array(
'#type' => 'textarea',
'#title' => t('Description'),
'#description' => t('The description that will be shown to the visitor.'),
'#required' => FALSE,
'#default_value' => check_plain($category['description']) ?: '',
);
$form['checkbox_default_state'] = array(
'#type' => 'radios',
'#title' => t('Checkbox default state'),
'#description' => t("Determines the default state of this category's selection checkbox on the cookie consent popup."),
'#options' => _eu_cookie_compliance_get_category_checkbox_default_state_options_list(),
'#required' => TRUE,
'#default_value' => isset($category['checkbox_default_state']) ? $category['checkbox_default_state'] : 'unchecked',
);
$form = system_settings_form($form);
$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;
}
}
if ($category['machine_name']) {
$form['actions']['delete'] = array(
'#type' => 'markup',
'#markup' => l(t('Delete'), 'admin/config/system/eu-cookie-compliance/categories/' . check_plain($category['machine_name']) . '/delete', $options),
);
}
return $form;
}