diff --git a/core/lib/Drupal/Core/Template/TwigExtension.php b/core/lib/Drupal/Core/Template/TwigExtension.php index 3ebe01b..c19f867 100644 --- a/core/lib/Drupal/Core/Template/TwigExtension.php +++ b/core/lib/Drupal/Core/Template/TwigExtension.php @@ -134,6 +134,7 @@ public function getFunctions() { new \Twig_SimpleFunction('attach_library', [$this, 'attachLibrary']), new \Twig_SimpleFunction('active_theme_path', [$this, 'getActiveThemePath']), new \Twig_SimpleFunction('active_theme', [$this, 'getActiveTheme']), + new \Twig_SimpleFunction('add_attribute', [$this, 'addAttribute']), ]; } @@ -264,7 +265,7 @@ public function getLink($text, $url, $attributes = []) { if (!$url instanceof Url) { $url = Url::fromUri($url); } - if ($attributes) { + if ($attributesAttribute) { if ($attributes instanceof Attribute) { $attributes = $attributes->toArray(); } @@ -594,4 +595,16 @@ public function safeJoin(\Twig_Environment $env, $value, $glue = '') { }, (array) $value)); } + /** + * Creates a \Drupal\Core\Template\Attribute object. + * + * @param array $attributes + * An associative array of key-value pairs to be converted to attributes. + * + * @return \Drupal\Core\Template\Attribute + * An Attribute object. + */ + public function addAttribute(array $attributes = []) { + return new Attribute($attributes); + } }