From eb2b8352f5d3b900c306b5b3fc3972f0509e5fc0 Mon Sep 17 00:00:00 2001 From: Florent Torregrosa <14238-florenttorregrosa@users.noreply.drupalcode.org> Date: Fri, 6 Sep 2024 19:45:18 +0000 Subject: [PATCH] Issue #3469755 by grimreaper: Links normalize drops link options --- src/Plugin/UiPatterns/SettingType/LinksSettingType.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Plugin/UiPatterns/SettingType/LinksSettingType.php b/src/Plugin/UiPatterns/SettingType/LinksSettingType.php index 52a1cef..75569fd 100644 --- a/src/Plugin/UiPatterns/SettingType/LinksSettingType.php +++ b/src/Plugin/UiPatterns/SettingType/LinksSettingType.php @@ -30,7 +30,7 @@ class LinksSettingType extends ComplexSettingTypeBase { * @return array */ public static function normalize(array $items): array { - foreach ($items as $index => &$item) { + foreach ($items as $index => $item) { if (!is_array($item)) { unset($items[$index]); continue; @@ -52,13 +52,16 @@ class LinksSettingType extends ComplexSettingTypeBase { if (!isset($item["url"]) && isset($item["link"])) { // Example: links.html.twig. $item["url"] = $item["link"]["#url"]; - $item["url"]->setOptions($item["link"]["#options"]); + if (isset($item["link"]["#options"])) { + $item["url"]->mergeOptions($item["link"]["#options"]); + } unset($item["link"]); } $item = self::normalizeUrl($item); if (array_key_exists("below", $item)) { $item["below"] = self::normalize($item["below"]); } + $items[$index] = $item; } $items = array_values($items); return $items; -- GitLab