function RenderElementBase::setAttributes

Overrides ElementInterface::setAttributes

21 calls to RenderElementBase::setAttributes()
Checkbox::preRenderCheckbox in core/lib/Drupal/Core/Render/Element/Checkbox.php
Prepares a #type 'checkbox' render element for input.html.twig.
Color::preRenderColor in core/lib/Drupal/Core/Render/Element/Color.php
Prepares a #type 'color' render element for input.html.twig.
Date::preRenderDate in core/lib/Drupal/Core/Render/Element/Date.php
Adds form-specific attributes to a 'date' #type element.
Details::preRenderDetails in core/lib/Drupal/Core/Render/Element/Details.php
Adds form element theming to details.
Email::preRenderEmail in core/lib/Drupal/Core/Render/Element/Email.php
Prepares a #type 'email' render element for input.html.twig.

... See full list

2 methods override RenderElementBase::setAttributes()
FormElement::setAttributes in core/lib/Drupal/Core/Render/Element/FormElement.php
Sets a form element's class attribute.
RenderElement::setAttributes in core/lib/Drupal/Core/Render/Element/RenderElement.php
Sets a form element's class attribute.

File

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

Class

RenderElementBase
Provides a base class for render element plugins.

Namespace

Drupal\Core\Render\Element

Code

public static function setAttributes(&$element, $class = []) {
    if (!empty($class)) {
        if (!isset($element['#attributes']['class'])) {
            $element['#attributes']['class'] = [];
        }
        $element['#attributes']['class'] = array_merge($element['#attributes']['class'], $class);
    }
    // This function is invoked from form element theme functions, but the
    // rendered form element may not necessarily have been processed by
    // \Drupal::formBuilder()->doBuildForm().
    if (!empty($element['#required'])) {
        $element['#attributes']['class'][] = 'required';
        $element['#attributes']['required'] = 'required';
        $element['#attributes']['aria-required'] = 'true';
    }
    if (isset($element['#parents']) && isset($element['#errors']) && !empty($element['#validated'])) {
        $element['#attributes']['class'][] = 'error';
        $element['#attributes']['aria-invalid'] = 'true';
    }
}

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