FluidTYPO3\Vhs\ViewHelpers\Page\Header\AlternateViewHelper::render PHP Method

render() public method

public render ( ) : string
return string
    public function render()
    {
        if ('BE' === TYPO3_MODE) {
            return null;
        }
        $languages = $this->arguments['languages'];
        if (true === $languages instanceof \Traversable) {
            $languages = iterator_to_array($languages);
        } elseif (true === is_string($languages)) {
            $languages = GeneralUtility::trimExplode(',', $languages, true);
        } else {
            $languages = (array) $languages;
        }
        $pageUid = (int) $this->arguments['pageUid'];
        if (0 === $pageUid) {
            $pageUid = $GLOBALS['TSFE']->id;
        }
        $normalWhenNoLanguage = $this->arguments['normalWhenNoLanguage'];
        $addQueryString = $this->arguments['addQueryString'];
        /** @var UriBuilder $uriBuilder */
        $uriBuilder = $this->controllerContext->getUriBuilder();
        $uriBuilder = $uriBuilder->reset()->setTargetPageUid($pageUid)->setCreateAbsoluteUri(true)->setAddQueryString($addQueryString);
        $this->tagBuilder->reset();
        $this->tagBuilder->setTagName('link');
        $this->tagBuilder->addAttribute('rel', 'alternate');
        /** @var PageRenderer $pageRenderer */
        $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class);
        $usePageRenderer = 1 !== (int) $GLOBALS['TSFE']->config['config']['disableAllHeaderCode'];
        $output = '';
        foreach ($languages as $languageUid => $languageName) {
            if (false === $this->pageService->hidePageForLanguageUid($pageUid, $languageUid, $normalWhenNoLanguage)) {
                $uri = $uriBuilder->setArguments(array('L' => $languageUid))->build();
                $this->tagBuilder->addAttribute('href', $uri);
                $this->tagBuilder->addAttribute('hreflang', $languageName);
                $renderedTag = $this->tagBuilder->render();
                if (true === $usePageRenderer) {
                    $pageRenderer->addMetaTag($renderedTag);
                } else {
                    $output .= $renderedTag . LF;
                }
            }
        }
        if (false === $usePageRenderer) {
            return trim($output);
        }
        return null;
    }