[BUGFIX] Ensure most site related exceptions are handled
[Packages/TYPO3.CMS.git] / typo3 / sysext / frontend / Classes / Typolink / ExternalUrlLinkBuilder.php
1 <?php
2 declare(strict_types = 1);
3 namespace TYPO3\CMS\Frontend\Typolink;
4
5 /*
6 * This file is part of the TYPO3 CMS project.
7 *
8 * It is free software; you can redistribute it and/or modify it under
9 * the terms of the GNU General Public License, either version 2
10 * of the License, or any later version.
11 *
12 * For the full copyright and license information, please read the
13 * LICENSE.txt file that was distributed with this source code.
14 *
15 * The TYPO3 project - inspiring people to share!
16 */
17 use TYPO3\CMS\Frontend\Http\UrlProcessorInterface;
18
19 /**
20 * Builds a TypoLink to an external URL
21 */
22 class ExternalUrlLinkBuilder extends AbstractTypolinkBuilder
23 {
24 /**
25 * @inheritdoc
26 */
27 public function build(array &$linkDetails, string $linkText, string $target, array $conf): array
28 {
29 return [
30 $this->processUrl(UrlProcessorInterface::CONTEXT_EXTERNAL, htmlspecialchars_decode($linkDetails['url']), $conf),
31 $this->parseFallbackLinkTextIfLinkTextIsEmpty($linkText, $linkDetails['url']),
32 $target ?: $this->resolveTargetAttribute($conf, 'extTarget', true, $this->getTypoScriptFrontendController()->extTarget)
33 ];
34 }
35 }