You are here

checkbox_validate.module in Checkbox Validate 6

Same filename and directory in other branches
  1. 5 checkbox_validate.module

File

checkbox_validate.module
View source
<?php

function checkbox_validate_form_alter(&$form, $form_state, $form_id) {
  $form = checkbox_validate_recurse($form);
  return;
}
function checkbox_validate_recurse($form_item) {
  if (!is_array($form_item)) {
    return;
  }
  while (list($key, $value) = each($form_item)) {
    if (strpos($key, '#') === 0) {
      if ($form_item['#type'] == 'checkbox' && $form_item['#required'] == TRUE) {
        $form_item['#element_validate'] = array(
          'checkbox_validate_validation',
        );
        $form_item['#pre_render'][] = 'checkbox_validate_add_required_symbol';

        //$form_item['#title'] .= ' <span class="form-required" title="This field is required.">*</span>';
        return $form_item;
      }
    }
    else {
      $form_item[$key] = checkbox_validate_recurse($value, $key);
    }
  }
  return $form_item;
}

// add required symbol here in this pre_render function
// so it doresn't display on error messages
function checkbox_validate_add_required_symbol($form) {
  $form['#title'] .= ' <span class="form-required" title="' . t('This field is required.') . '">*</span>';
  return $form;
}
function checkbox_validate_validation($element) {
  if (empty($element['#value'])) {
    form_error($element, t('!title field is required.', array(
      '!title' => filter_xss_admin($element['#title']),
    )));
  }
  return;
}
function checkbox_validate_theme() {
  return array(
    'checkbox_validate_required' => array(
      'arguments' => array(),
    ),
  );
}