public static function Details::preRenderDetails

public static Details::preRenderDetails($element)

Adds form element theming to details.

Parameters

$element: An associative array containing the properties and children of the details.

Return value

The modified element.

File

core/lib/Drupal/Core/Render/Element/Details.php, line 69

Class

Details
Provides a render element for a details element, similar to a fieldset.

Namespace

Drupal\Core\Render\Element

Code

public static function preRenderDetails($element) {
  Element::setAttributes($element, array('id'));

  // The .js-form-wrapper class is required for #states to treat details like
  // containers.
  static::setAttributes($element, array('js-form-wrapper', 'form-wrapper'));

  // Collapsible details.
  $element['#attached']['library'][] = 'core/drupal.collapse';
  if (!empty($element['#open'])) {
    $element['#attributes']['open'] = 'open';
  }

  // Do not render optional details elements if there are no children.
  if (isset($element['#parents'])) {
    $group = implode('][', $element['#parents']);
    if (!empty($element['#optional']) && !Element::getVisibleChildren($element['#groups'][$group])) {
      $element['#printed'] = TRUE;
    }
  }

  return $element;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Render!Element!Details.php/function/Details::preRenderDetails/8.1.x