You are here

function template_preprocess_ife_form_element in Inline Form Errors 6.2

Same name and namespace in other branches
  1. 6 ife.theme.inc \template_preprocess_ife_form_element()

Form element preprocess theming function

File

./ife.theme.inc, line 47
Theme functions

Code

function template_preprocess_ife_form_element(&$vars) {
  $element = $vars['element'];

  //theme the field

  //some strange things happening here with expandables vs singles
  if (in_array($vars['element']['#field_type'], ife_expandable_field_types())) {
    $vars['field'] = drupal_render($element);
  }
  else {
    $vars['field'] = theme($element['#field_type'], $element);
  }
  $errors = array();

  //get main ellement error
  $element_error = ife_element_get_error($element);
  if (trim($element_error)) {
    $errors[] = $element_error;
  }

  //cck type support
  if ($element['value']) {
    $values = element_children($element['value']);

    //get main field error
    $element['value']['#display_type'] = $element['#display_type'];
    $element_error = ife_element_get_error($element['value']);
    if (trim($element_error)) {
      $errors[] = $element_error;
    }

    //get sub errors
    if (count($values)) {
      foreach ($values as $key) {

        //pass along display_type
        $element['value'][$key]['#display_type'] = $element['#display_type'];

        //get errors
        $element_error = ife_element_get_error($element['value'][$key]);
        if (trim($element_error)) {
          $errors[] = $element_error;
        }
      }
    }
  }
  if (count($errors)) {
    if (count($errors) > 1) {
      $vars['error_message'] = theme('item_list', $errors);
    }
    else {
      $vars['error_message'] = $errors[0];
    }
    $vars['error'] = TRUE;
  }
}