You are here

function fel_element_info_alter in Form element layout 7

Implements hook_element_info_alter().

File

./fel.module, line 45
Reorder #title, #description and #children in forms.

Code

function fel_element_info_alter(&$elements) {

  // Replace all #theme_wrapper[] = 'form_element' with our custom form_element
  // theme.
  $form_element_wrappers = array(
    // Core.
    'textfield',
    'machine_name',
    'password',
    'password_confirm',
    'textarea',
    'radio',
    'checkbox',
    'select',
    'date',
    'file',
    'item',
    'managed_file',
    // Contrib.
    'emailfield',
    'hierarchical_select',
    'interval',
    'link_field',
    'media',
    'mfw_managed_file',
    'numberfield',
    'rangefield',
    'searchfield',
    'select_or_other',
    'telfield',
    'urlfield',
  );
  foreach ($form_element_wrappers as $type) {
    if (!empty($elements[$type])) {
      fel_wrapper_replace('form_element', 'fel_form_element', $elements[$type]);
    }
  }

  // 'radios' and 'checkboxes' are special.
  $elements['checkboxes']['#pre_render'][] = 'fel_element_pre_render';
  $elements['radios']['#pre_render'][] = 'fel_element_pre_render';

  // Fieldsets.
  fel_wrapper_replace('fieldset', 'fel_fieldset', $elements['fieldset']);

  // 'text_format': Replace #theme_wrapper with our own and reshuffle the title,
  // description and element trio.
  if (!empty($elements['text_format']) and module_exists('filter')) {
    fel_wrapper_replace('text_format_wrapper', 'fel_text_format_wrapper', $elements['text_format']);
    $elements['text_format']['#process'][] = 'fel_filter_process_format';
  }

  // Contrib: Taxonomy Term Reference Tree Widget.
  if (!empty($elements['checkbox_tree'])) {
    $elements['checkbox_tree']['#pre_render'][] = 'fel_element_pre_render';
  }

  // Contrib: Autocomplete Deluxe.
  if (!empty($elements['autocomplete_deluxe'])) {
    $elements['autocomplete_deluxe']['#pre_render'][] = 'fel_element_pre_render';
  }

  // Contrib: Select (or other).
  if (!empty($elements['select_or_other'])) {
    $elements['select_or_other']['#process'][] = 'fel_select_or_other_element_process';
  }
}