<?php

namespace Uhura\Grossmarkt\Utility;

use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Configuration\ConfigurationManager;
use TYPO3\CMS\Fluid\View\StandaloneView;

class ConfigurationUtility
{
	/**
	 * @param string $path
	 * @return array|mixed
	 * @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
	 */
	public static function getTyposcriptConfiguration(string $path = '') {
		$configurationManager = GeneralUtility::makeInstance(ConfigurationManager::class);
		$settings = $configurationManager->getConfiguration(ConfigurationManager::CONFIGURATION_TYPE_FULL_TYPOSCRIPT);
		$settings = GeneralUtility::removeDotsFromTS($settings);

		if($path) {
			$keys = explode('.', $path);
			foreach ($keys as $key) {
				if(isset($settings[$key])) {
					$settings = $settings[$key];
				}
			}

			if ($settings) {
				return $settings;
			} else {
				return [];
			}
		}

		return $settings;
	}

	/**
	 * @return mixed|object|\Psr\Log\LoggerAwareInterface|\TYPO3\CMS\Core\SingletonInterface|null
	 */
	public static function getStandaloneView()
	{
		return GeneralUtility::makeInstance(StandaloneView::class);
	}
}