$element->setAttribute('href', preg_replace('~^https?://~', RouteHandler::getProtocol(), $href));
}
else {
- $element->setAttribute('class', 'externalURL');
-
- $rel = '';
- if (EXTERNAL_LINK_REL_NOFOLLOW) {
- $rel = 'nofollow';
- }
-
- if (EXTERNAL_LINK_TARGET_BLANK) {
- if (!empty($rel)) $rel .= ' ';
-
- $rel .= 'noopener noreferrer';
-
- $element->setAttribute('target', '_blank');
- }
-
- if (!empty($rel)) {
- $element->setAttribute('rel', $rel);
- }
+ self::markLinkAsExternal($element);
}
$value = StringUtil::trim($element->textContent);
}
}
}
+
+ /**
+ * Marks an element as external.
+ *
+ * @param \DOMElement $element
+ */
+ public static function markLinkAsExternal(\DOMElement $element) {
+ $element->setAttribute('class', 'externalURL');
+
+ $rel = '';
+ if (EXTERNAL_LINK_REL_NOFOLLOW) {
+ $rel = 'nofollow';
+ }
+
+ if (EXTERNAL_LINK_TARGET_BLANK) {
+ if (!empty($rel)) $rel .= ' ';
+
+ $rel .= 'noopener noreferrer';
+
+ $element->setAttribute('target', '_blank');
+ }
+
+ if (!empty($rel)) {
+ $element->setAttribute('rel', $rel);
+ }
+ }
}
$link = $element->ownerDocument->createElement('a');
$link->setAttribute('href', $src);
$link->textContent = $src;
+ HtmlOutputNodeA::markLinkAsExternal($link);
+
$element->parentNode->insertBefore($link, $element);
$element->parentNode->insertBefore($element->ownerDocument->createTextNode(']'), $element);