You are here

function node_accessibility_form_node_type_form_alter in Node Accessibility 7

Same name and namespace in other branches
  1. 8 node_accessibility.module \node_accessibility_form_node_type_form_alter()

Implements hook_form_FORM_ID_alter() for the node type form.

File

./node_accessibility.module, line 249
Module file for the node accessibility project.

Code

function node_accessibility_form_node_type_form_alter(&$form, &$form_state, $form_id) {
  $node_type_settings_object = FALSE;
  $node_type_settings_array = array(
    'type' => NULL,
    'required' => NULL,
    'standards' => NULL,
  );
  $standards = quail_api_get_standards_list(NULL, 'snippet');
  $display_levels = quail_api_get_display_levels_list(NULL);
  $methods = quail_api_get_validation_methods(NULL);
  $methods_list = quail_api_get_validation_methods_list(NULL);
  $filter_formats = filter_formats();
  $formats = array();
  $options = array();
  foreach ($filter_formats as $filter_format => $filter_format_settings) {
    $formats[$filter_format] = $filter_format_settings->name;
  }
  $default_enabled = 'disabled';
  $default_standards = array();
  $default_method = 'quail_api_method_immediate';
  $default_format = 'full_html';
  if (!empty($form['#node_type']->type)) {
    $node_type = $form['#node_type']->type;
    $node_type_settings = node_accessibility_load_node_type_settings();
    if (isset($node_type_settings[$node_type])) {
      $default_enabled = isset($node_type_settings[$node_type]['required']) && $node_type_settings[$node_type]['required'] ? 'required' : 'optional';
      $default_standards = isset($node_type_settings[$node_type]['standards']) ? $node_type_settings[$node_type]['standards'] : $default_standards;
      $default_method = isset($node_type_settings[$node_type]['method']) ? $node_type_settings[$node_type]['method'] : $default_method;
      $default_format = isset($node_type_settings[$node_type]['format']) ? $node_type_settings[$node_type]['format'] : $default_format;
    }
  }
  $form['node_accessibility_validation'] = array(
    '#type' => 'fieldset',
    '#title' => t("Accessibility Validation"),
    '#description' => t("Provides options for enabled and disabled accessibility validation on text stored in this field."),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#tree' => TRUE,
    '#group' => 'additional_settings',
  );
  $form['node_accessibility_validation']['quail_enabled'] = array(
    '#type' => 'select',
    '#title' => t("Accessibility Validation"),
    '#default_value' => $default_enabled,
    '#options' => array(
      'disabled' => t("Disabled"),
      'optional' => t("Enabled (optional)"),
      'required' => t("Enabled (required)"),
    ),
    '#description' => t("Choose if accessibility validation should be enabled for this node type and if the node type is required to pass accessibility validation."),
  );
  $form['node_accessibility_validation']['method'] = array(
    '#type' => 'select',
    '#title' => t("Validation Method"),
    '#default_value' => $default_method,
    '#options' => $methods_list,
    '#description' => t("Choose the way in which validation is performed."),
    '#dependency' => array(
      'edit-node-accessibility-validation-quail-enabled' => array(
        'optional',
        'required',
      ),
    ),
  );

  // add documentation for each option
  $form['node_accessibility_validation']['method']['#description'] .= '<ul>';
  foreach ($methods as $method => $method_settings) {
    $form['node_accessibility_validation']['method']['#description'] .= '<li>' . $method_settings['human_name'] . ': ' . $method_settings['description'] . '</li>';
  }
  $form['node_accessibility_validation']['method']['#description'] .= '</ul>';
  $form['node_accessibility_validation']['format'] = array(
    '#type' => 'select',
    '#title' => t("Markup Format"),
    '#default_value' => $default_format,
    '#options' => $formats,
    '#description' => t("Choose the filter to use when presenting the results of validation checks. This is only used for the html markup associated with the problem or suggestion."),
    '#dependency' => array(
      'edit-node-accessibility-validation-quail-enabled' => array(
        'optional',
        'required',
      ),
    ),
  );
  $form['node_accessibility_validation']['standards'] = array(
    '#type' => 'checkboxes',
    '#title' => t("Accessibility Standards"),
    '#default_value' => $default_standards,
    '#options' => $standards,
    '#description' => t("Choose which accessibility standards to validate against. It is strongly suggested that only 1 standard should be used because many of the validation tests are performed by more than one standard."),
    '#dependency' => array(
      'edit-node-accessibility-validation-quail-enabled' => array(
        'optional',
        'required',
      ),
    ),
  );
  $form['#submit'][] = 'node_accessibility_node_type_form_submit';
}