<?php

namespace Uhura\Grossmarkt\ViewHelpers;

use TYPO3\CMS\Backend\Utility\BackendUtility;
use TYPO3\CMS\Core\LinkHandling\TypoLinkCodecService;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\TagBuilder;

/**
 * Class IsCurrentPageViewHelper
 */
class IsCurrentPageViewHelper extends AbstractViewHelper
{

    public function initializeArguments(): void
    {
        $this->registerArgument('typolinkPapam', 'string', 'Define the URL of the resource (absolute or relative).', false);
    }

    public function render()
    {
		if(isset($this->arguments['typolinkPapam'])) {
			$typolinkPapam = $this->arguments['typolinkPapam'];

			if(stripos($typolinkPapam,'t3://page') !== false){
				$uid = str_replace('t3://page?uid=', '', $typolinkPapam);
				$uid = stristr($uid,' ', true);

				if($GLOBALS['TSFE']->id == $uid){
					$typoLinkCodec = GeneralUtility::makeInstance(TypoLinkCodecService::class);
					$typoLinkConfiguration = $typoLinkCodec->decode($typolinkPapam);
					if(isset($typoLinkConfiguration['title']) && $typoLinkConfiguration['title']) {
						return $typoLinkConfiguration['title'];
					}
					$page = BackendUtility::getRecord('pages',$uid,'title,seo_title');
					return $page['seo_title'] ? $page['seo_title'] : $page['title'];
				}
			}
		}
		return false;
    }
}
