getTypoScriptFrontendController(); if ($linkDetails['file']) { $linkDetails['type'] = LinkService::TYPE_FILE; $linkLocation = $linkDetails['file']; // Setting title if blank value to link $linkText = $this->encodeFallbackLinkTextIfLinkTextIsEmpty($linkText, rawurldecode($linkLocation)); $linkLocation = (strpos($linkLocation, '/') !== 0 ? $tsfe->absRefPrefix : '') . $linkLocation; $url = $this->processUrl(UrlProcessorInterface::CONTEXT_FILE, $linkLocation, $conf); $url = $this->forceAbsoluteUrl($url, $conf); $target = $target ?: $this->resolveTargetAttribute($conf, 'fileTarget', false, $tsfe->fileTarget); } elseif ($linkDetails['url']) { $linkDetails['type'] = LinkService::TYPE_URL; $target = $target ?: $this->resolveTargetAttribute($conf, 'extTarget', true, $tsfe->extTarget); $linkText = $this->encodeFallbackLinkTextIfLinkTextIsEmpty($linkText, $linkDetails['url']); $url = $this->processUrl(UrlProcessorInterface::CONTEXT_EXTERNAL, $linkDetails['url'], $conf); } else { throw new UnableToLinkException('Unknown link detected, so ' . $linkText . ' was not linked.', 1490990031, null, $linkText); } return [$url, $linkText, $target]; } }