Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Details.php

function Details::preRenderDetails

Adds form element theming to details.

Parameters

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

Return value

array The modified element.

File

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

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, [
        'id',
    ]);
    // The .js-form-wrapper class is required for #states to treat details like
    // containers.
    static::setAttributes($element, [
        'js-form-wrapper',
        'form-wrapper',
    ]);
    // Collapsible details.
    $element['#attached']['library'][] = 'core/drupal.collapse';
    // Open the detail if specified or if a child has an error.
    if (!empty($element['#open']) || !empty($element['#children_errors'])) {
        $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;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal