form_helper_validation_validate_element

custom/form_helper/form_helper_validation/form_helper_validation.module, line 384

Versions
6
form_helper_validation_validate_element($rule, $element, &$form_state)

Execute element validation for any rule including custom rules for other modules.

Parameters

$rule An associated array containing a rules regular expression (regex) or function (func) with an option error message.

$element

&$form_state

Code

<?php
function form_helper_validation_validate_element($rule, $element, &$form_state) {
  $options = $element['#element_validate_options'];

  $title = ($element['#title']) ? $element['#title'] : $element['#name'];
  $value = $element['#value'];

  // Skip empty values since it validation should be handled by #required
  if ( empty($value) ) {
    return;
  }

  // Exit if data is valid
  if ( _form_helper_validation_validate($rule, $value, $options) ) {
    return;
  }

  // Set defautl t() params
  $t_params = array(
    '@type' => ($rule['type'])?t($rule['type']):t($rule_type),
    '@value' => $value,
    '@name' => $title,
  );

  // Add options to t() params
  if ($options) {
    foreach ($options as $key => $value) {
      $t_params['@'. $key] = $value;
    }
  }

  // Message
  if ( $options['message'] ) { // Custom element validation message
    $message = t($options['message'], $t_params);
  }
  else if ( $rule['message'] ) { // Custom rule validation message
    $message = t($rule['message'], $t_params);
  }
  else { // Default validation message
    $message = t("@name is not valid.", $t_params);
  }

  // Add optional example to message
  if ( $rule['example'] ) {
    $message .= ' ('. t('ex:') . $rule['example'] .')';
  }

  // Set form element's error message
  form_error($element, $message);
}
?>