Arranges fieldsets into groups.

Parameters

$element: An associative array containing the properties and children of the fieldset. Note that $element must be taken by reference here, so processed child elements are taken over into $form_state.

$form_state: The $form_state array for the form this fieldset belongs to.

Return value

The processed element.

Related topics

1 string reference to 'form_process_fieldset'
system_element_info in modules/system/system.module
Implements hook_element_info().

File

includes/form.inc, line 3778
Functions for form and batch generation and processing.

Code

function form_process_fieldset(&$element, &$form_state) {
  $parents = implode('][', $element['#parents']);

  // Each fieldset forms a new group. The #type 'vertical_tabs' basically only
  // injects a new fieldset.
  $form_state['groups'][$parents]['#group_exists'] = TRUE;
  $element['#groups'] =& $form_state['groups'];

  // Process vertical tabs group member fieldsets.
  if (isset($element['#group'])) {

    // Add this fieldset to the defined group (by reference).
    $group = $element['#group'];
    $form_state['groups'][$group][] =& $element;
  }

  // Contains form element summary functionalities.
  $element['#attached']['library'][] = array(
    'system',
    'drupal.form',
  );

  // The .form-wrapper class is required for #states to treat fieldsets like
  // containers.
  if (!isset($element['#attributes']['class'])) {
    $element['#attributes']['class'] = array();
  }

  // Collapsible fieldsets
  if (!empty($element['#collapsible'])) {
    $element['#attached']['library'][] = array(
      'system',
      'drupal.collapse',
    );
    $element['#attributes']['class'][] = 'collapsible';
    if (!empty($element['#collapsed'])) {
      $element['#attributes']['class'][] = 'collapsed';
    }
  }
  return $element;
}