You are here

function webform_validation_form_webform_client_form_alter in Webform Validation 7

Implements hook_form_BASE_FORM_ID_alter().

File

./webform_validation.module, line 100

Code

function webform_validation_form_webform_client_form_alter(&$form, &$form_state, $form_id) {
  $form['#validate'][] = 'webform_validation_validate';
  if (module_exists('maxlength')) {
    $nid = substr($form_id, strlen('webform_client_form') + 1);
    $rules = webform_validation_get_node_rules($nid);
    foreach ($rules as $ruleid => $rule) {
      if ($rule['validator'] == 'max_length') {
        $length_limit = $rule['data'];
        $components = $rule['components'];
        foreach ($components as $cid => $component) {

          // Define $form_element as the webform element representing this
          // component, even if it's nested in multiple arrays, as webform
          // elemens often are (e.g., fieldsets). Assign by reference here,
          // since we need to modify the form element itself and don't know
          // its array depth or keys by which to access it.
          $form_element =& _webform_validation_get_webform_element($component, $form);

          // Append to this form element the relevant properties which are
          // supported by maxlength module.
          $form_element['#pre_render'][] = 'maxlength_pre_render';
          $form_element['#maxlength'] = $length_limit;
          $form_element['#maxlength_js'] = TRUE;
        }
      }
    }
  }
}