You are here

public static function RenderElement::processGroup in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Render/Element/RenderElement.php \Drupal\Core\Render\Element\RenderElement::processGroup()
  2. 10 core/lib/Drupal/Core/Render/Element/RenderElement.php \Drupal\Core\Render\Element\RenderElement::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.

File

core/lib/Drupal/Core/Render/Element/RenderElement.php, line 436

Class

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