function form_process_fieldset

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

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;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.