From d7640c23f9e53d1fd22ac022c2f8efb950359b10 Mon Sep 17 00:00:00 2001 From: joshuaruesweg Date: Fri, 12 Mar 2021 17:39:29 +0100 Subject: [PATCH] Remove styling elements for unfurled urls --- .../html/node/HtmlNodeUnfurlLink.class.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/wcfsetup/install/files/lib/system/html/node/HtmlNodeUnfurlLink.class.php b/wcfsetup/install/files/lib/system/html/node/HtmlNodeUnfurlLink.class.php index 50242896e7..1cec6f1617 100644 --- a/wcfsetup/install/files/lib/system/html/node/HtmlNodeUnfurlLink.class.php +++ b/wcfsetup/install/files/lib/system/html/node/HtmlNodeUnfurlLink.class.php @@ -3,6 +3,7 @@ namespace wcf\system\html\node; use wcf\data\unfurl\url\UnfurlUrlAction; +use wcf\util\DOMUtil; use wcf\util\Url; /** @@ -16,7 +17,7 @@ use wcf\util\Url; */ class HtmlNodeUnfurlLink extends HtmlNodePlainLink { - public const UNFURL_URL_ID_ATTRIBUTE_NAME = "unfurl-url-id"; + public const UNFURL_URL_ID_ATTRIBUTE_NAME = "data-unfurl-url-id"; /** * Marks a link element with the UnfurlUrlID. @@ -24,13 +25,25 @@ class HtmlNodeUnfurlLink extends HtmlNodePlainLink public static function setUnfurl(HtmlNodePlainLink $link): void { if ($link->isStandalone() && Url::is($link->href)) { + self::removeStyling($link); + $object = new UnfurlUrlAction([], 'findOrCreate', [ 'data' => [ 'url' => $link->href, ], ]); $returnValues = $object->executeAction(); - $link->topLevelParent->firstChild->setAttribute(self::UNFURL_URL_ID_ATTRIBUTE_NAME, $returnValues['returnValues']->urlID); + + $link->link->setAttribute(self::UNFURL_URL_ID_ATTRIBUTE_NAME, $returnValues['returnValues']->urlID); } } + + private static function removeStyling(HtmlNodePlainLink $element): void + { + foreach ($element->topLevelParent->childNodes as $child) { + DOMUtil::removeNode($child); + } + + $element->topLevelParent->appendChild($element->link); + } } -- 2.20.1