[BUGFIX] Prematurely end data array processing on invalid item
[Packages/TYPO3.CMS.git] / typo3 / sysext / frontend / Classes / Typolink / ExternalUrlLinkBuilder.php
1 <?php
2
3 declare(strict_types=1);
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
18 namespace TYPO3\CMS\Frontend\Typolink;
19
20 use TYPO3\CMS\Frontend\Http\UrlProcessorInterface;
21
22 /**
23 * Builds a TypoLink to an external URL
24 */
25 class ExternalUrlLinkBuilder extends AbstractTypolinkBuilder
26 {
27 /**
28 * @inheritdoc
29 */
30 public function build(array &$linkDetails, string $linkText, string $target, array $conf): array
31 {
32 return [
33 $this->processUrl(UrlProcessorInterface::CONTEXT_EXTERNAL, $linkDetails['url'], $conf),
34 $this->encodeFallbackLinkTextIfLinkTextIsEmpty($linkText, $linkDetails['url']),
35 $target ?: $this->resolveTargetAttribute($conf, 'extTarget', true, $this->getTypoScriptFrontendController()->extTarget)
36 ];
37 }
38 }