Neos\Neos\TypoScript\ConvertUrisImplementation::replaceLinkTargets PHP Method

replaceLinkTargets() protected method

Replace the target attribute of link tags in processedContent with the target specified by externalLinkTarget and resourceLinkTarget options.
protected replaceLinkTargets ( string $processedContent ) : string
$processedContent string
return string
    protected function replaceLinkTargets($processedContent)
    {
        $externalLinkTarget = trim($this->tsValue('externalLinkTarget'));
        $resourceLinkTarget = trim($this->tsValue('resourceLinkTarget'));
        if ($externalLinkTarget === '' && $resourceLinkTarget === '') {
            return $processedContent;
        }
        $controllerContext = $this->tsRuntime->getControllerContext();
        $host = $controllerContext->getRequest()->getHttpRequest()->getUri()->getHost();
        $processedContent = preg_replace_callback('~<a.*?href="(.*?)".*?>~i', function ($matches) use($externalLinkTarget, $resourceLinkTarget, $host) {
            list($linkText, $linkHref) = $matches;
            $uriHost = parse_url($linkHref, PHP_URL_HOST);
            $target = null;
            if ($externalLinkTarget !== '' && is_string($uriHost) && $uriHost !== $host) {
                $target = $externalLinkTarget;
            }
            if ($resourceLinkTarget !== '' && strpos($linkHref, '_Resources') !== false) {
                $target = $resourceLinkTarget;
            }
            if ($target === null) {
                return $linkText;
            }
            if (preg_match_all('~target="(.*?)~i', $linkText, $targetMatches)) {
                return preg_replace('/target=".*?"/', sprintf('target="%s"', $target), $linkText);
            }
            return str_replace('<a', sprintf('<a target="%s"', $target), $linkText);
        }, $processedContent);
        return $processedContent;
    }
ConvertUrisImplementation