function RenderElementBase::processGroup

Arranges elements into groups.

This method is useful for non-input elements that can be used in and outside the context of a form.

Parameters

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

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

array $complete_form: The complete form structure.

Return value

array The processed element.

2 calls to RenderElementBase::processGroup()
FormElement::processGroup in core/lib/Drupal/Core/Render/Element/FormElement.php
Arranges elements into groups.
RenderElement::processGroup in core/lib/Drupal/Core/Render/Element/RenderElement.php
Arranges elements into groups.
2 methods override RenderElementBase::processGroup()
FormElement::processGroup in core/lib/Drupal/Core/Render/Element/FormElement.php
Arranges elements into groups.
RenderElement::processGroup in core/lib/Drupal/Core/Render/Element/RenderElement.php
Arranges elements into groups.

File

core/lib/Drupal/Core/Render/Element/RenderElementBase.php, line 453

Class

RenderElementBase
Provides a base class for render element plugins.

Namespace

Drupal\Core\Render\Element

Code

public static function processGroup(&$element, FormStateInterface $form_state, &$complete_form) {
    $parents = implode('][', $element['#parents']);
    // Each details element forms a new group. The #type 'vertical_tabs' basically
    // only injects a new details element.
    $groups =& $form_state->getGroups();
    $groups[$parents]['#group_exists'] = TRUE;
    $element['#groups'] =& $groups;
    // Process vertical tabs group member details elements.
    if (isset($element['#group'])) {
        // Add this details element to the defined group (by reference).
        $group = $element['#group'];
        $groups[$group][] =& $element;
    }
    return $element;
}

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