external link * ``` * * @see https://docs.typo3.org/permalink/t3viewhelper:typo3-fluid-link-external */ final class ExternalViewHelper extends AbstractTagBasedViewHelper { /** * @var string */ protected $tagName = 'a'; public function initializeArguments(): void { parent::initializeArguments(); $this->registerArgument('uri', 'string', 'The URI that will be put in the href attribute of the rendered link tag', true); $this->registerArgument('defaultScheme', 'string', 'Scheme the href attribute will be prefixed with if specified $uri does not contain a scheme already', false, 'https'); } public function render(): string { $uri = $this->arguments['uri']; $defaultScheme = $this->arguments['defaultScheme']; $scheme = parse_url($uri, PHP_URL_SCHEME); if ($scheme === null && $defaultScheme !== '') { $uri = $defaultScheme . '://' . $uri; } $this->tag->addAttribute('href', $uri); $this->tag->setContent((string)$this->renderChildren()); $this->tag->forceClosingTag(true); return $this->tag->render(); } }