<?php

namespace Uhura\Grossmarkt\ViewHelpers;

use TYPO3\CMS\Core\Page\PageRenderer;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\TagBuilder;

/**
 * Class ResourceViewHelper
 * @package Uhura\Grossmarkt\ViewHelpers
 */
class IncludeCssInlineViewHelper extends AbstractTagBasedViewHelper
{
    public function initialize()
    {
        // Add a tag builder, that does not html encode values, because rendering with encoding happens in AssetRenderer
        $this->setTagBuilder(
            new class () extends TagBuilder {
                public function addAttribute($attributeName, $attributeValue, $escapeSpecialCharacters = false): void
                {
                    parent::addAttribute($attributeName, $attributeValue, false);
                }
            }
        );
        parent::initialize();
    }

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

    public function render()
    {
		if ($href = $this->tag->getAttributes()['href']) {
			$absolutePath = GeneralUtility::getFileAbsFileName(str_replace('/_','_', $href));
			$content = file_get_contents($absolutePath);
			if ($content) {
				/** @var PageRenderer $pageRenderer */
				$pageRenderer = GeneralUtility::makeInstance(PageRenderer::class);
				$pageRenderer->addHeaderData('<style>' . $content . '</style>');
			}
		}
    }
}
