You are here

protected function WebformCustomComposite::prepareElementPreRenderCallbacks in Webform 6.x

Same name and namespace in other branches
  1. 8.5 src/Plugin/WebformElement/WebformCustomComposite.php \Drupal\webform\Plugin\WebformElement\WebformCustomComposite::prepareElementPreRenderCallbacks()

Prepare an element's pre render callbacks.

Parameters

array $element: An element.

\Drupal\webform\WebformSubmissionInterface $webform_submission: A webform submission.

Overrides WebformElementBase::prepareElementPreRenderCallbacks

File

src/Plugin/WebformElement/WebformCustomComposite.php, line 98

Class

WebformCustomComposite
Provides a custom composite element.

Namespace

Drupal\webform\Plugin\WebformElement

Code

protected function prepareElementPreRenderCallbacks(array &$element, WebformSubmissionInterface $webform_submission = NULL) {
  parent::prepareElementPreRenderCallbacks($element, $webform_submission);

  // Set custom wrapper type to theme wrappers.
  // @see \Drupal\webform\Element\WebformMultiple::getInfo
  // @see \Drupal\webform\Element\WebformCompositeFormElementTrait::preRenderWebformCompositeFormElement
  if (isset($element['#wrapper_type'])) {
    $element['#theme_wrappers'] = [
      $element['#wrapper_type'],
    ];
    $element += [
      '#attributes' => [],
    ];
    switch ($element['#wrapper_type']) {
      case 'fieldset':
        $element['#attributes']['class'][] = 'fieldgroup';
        $element['#attributes']['class'][] = 'form-composite';
        break;
      case 'container':

        // Apply wrapper attributes to attributes.
        if (isset($element['#wrapper_attributes'])) {
          $element['#attributes'] = NestedArray::mergeDeep($element['#attributes'], $element['#wrapper_attributes']);
        }
        break;
    }
  }
}