<?php

namespace Zab\ZabSite\ViewHelpers;

use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;

class ContentElementDataViewHelper extends AbstractViewHelper
{
    protected $escapeOutput = false;

    public function initializeArguments(): void
    {
        $this->registerArgument('field', 'string', 'Field name from the tt_content record. Use "_all" to return full array.', true);
    }

    /**
     * @return string|array
     */
    public function render(): mixed
    {
        $field = $this->arguments['field'];
        $request = $this->renderingContext->getRequest();
        $contentObjectRenderer = $request->getAttribute('currentContentObject');

        if ($contentObjectRenderer instanceof ContentObjectRenderer) {
            if ($field === '_all') {
                return $contentObjectRenderer->data;
            }
            return (string)($contentObjectRenderer->data[$field] ?? '');
        }

        return $field === '_all' ? [] : '';
    }
}
