public static function Element::setAttributes in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/lib/Drupal/Core/Render/Element.php \Drupal\Core\Render\Element::setAttributes()
Sets HTML attributes based on element properties.
Parameters
array $element: The renderable element to process. Passed by reference.
array $map: An associative array whose keys are element property names and whose values are the HTML attribute names to set on the corresponding property; e.g., array('#propertyname' => 'attributename'). If both names are identical except for the leading '#', then an attribute name value is sufficient and no property name needs to be specified.
24 calls to Element::setAttributes()
- Button::preRenderButton in core/
lib/ Drupal/ Core/ Render/ Element/ Button.php - Prepares a #type 'button' render element for input.html.twig.
- 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.
File
- core/
lib/ Drupal/ Core/ Render/ Element.php, line 178 - Contains \Drupal\Core\Render\Element.
Class
- Element
- Provides helper methods for Drupal render elements.
Namespace
Drupal\Core\RenderCode
public static function setAttributes(array &$element, array $map) {
foreach ($map as $property => $attribute) {
// If the key is numeric, the attribute name needs to be taken over.
if (is_int($property)) {
$property = '#' . $attribute;
}
// Do not overwrite already existing attributes.
if (isset($element[$property]) && !isset($element['#attributes'][$attribute])) {
$element['#attributes'][$attribute] = $element[$property];
}
}
}