<?php

namespace Wga\Core\PageTitle;

use TYPO3\CMS\Core\PageTitle\AbstractPageTitleProvider;
use TYPO3\CMS\Core\Utility\GeneralUtility;

class PageTitleProvider extends AbstractPageTitleProvider
{
    /**
     * @param $title
     * @return void
     */
    public function setTitle($title): void
    {
        $this->title = $title;
    }

    public function getTitle(): string
    {
        if ($GLOBALS['TSFE']) {
            $pageTitle = $GLOBALS['TSFE']->page['title'];
            $this->setTitle($pageTitle);
        }
        if (isset($GLOBALS['pageMode']) && $GLOBALS['pageMode'] == 'DetailPage' && is_array($GLOBALS['wga_seo'])) {
            $repository = GeneralUtility::makeInstance($GLOBALS['wga_seo']['seoSettings']['domainRepository']);
            $record = $repository->findByUid($GLOBALS['wga_seo']['recordUid']);
            if (count($record->getTxCsseo())) {
                foreach ($record->getTxCsseo() as $seo) {
                    $csSeo = $seo;
                }
                $title = $record->getTitle();
                $titleOnly = $csSeo->isTitleOnly();
                if ($titleOnly) {
                    $this->title = $title;
                }else {
                    $this->title = $title.' | '.$GLOBALS['TSFE']->site->getConfiguration()['websiteTitle'];
                }
            } else {
                $this->setTitle($record->getTitle());
            }
        }

        // TODO: implement this title parts.
        $searchTitle = 'Search by "Lorem"';
        $paginationTitle = 'Page 1 from 12';
        $filtersTitle = 'Applied 2 filter';

        return parent::getTitle(); // TODO: Change the autogenerated stub
    }
}
