<?php
defined('TYPO3') or die();

use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;


\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="DIR:EXT:energize/Configuration/TSconfig/Page/" extension="tsconfig">');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addUserTSConfig('<INCLUDE_TYPOSCRIPT: source="DIR:EXT:energize/Configuration/TSconfig/User/" extension="tsconfig">');

$iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(
    \TYPO3\CMS\Core\Imaging\IconRegistry::class
);

$iconRegistry->registerIcon(
    'content-section',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-section.svg']
);
$iconRegistry->registerIcon(
    'content-map',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-map.svg']
);
$iconRegistry->registerIcon(
    'content-spot',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-plugin.svg']
);
$iconRegistry->registerIcon(
    'content-blockquote',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-blockquote.svg']
);
$iconRegistry->registerIcon(
    'content-timeline',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-plugin.svg']
);
$iconRegistry->registerIcon(
    'content-accordion',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-accordion.svg']
);
$iconRegistry->registerIcon(
    'content-tabs',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-tabs.svg']
);
$iconRegistry->registerIcon(
    'content-features',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-features.svg']
);
$iconRegistry->registerIcon(
    'content-accordion-item',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-accordion-item.svg']
);
$iconRegistry->registerIcon(
    'content-tab-item',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-tab-item.svg']
);

$iconRegistry->registerIcon(
    'content-feature-item',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-feature-item.svg']
);

$iconRegistry->registerIcon(
    'content-beside-text-img-slider',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-carousel-item-textandimage.svg']
);

$iconRegistry->registerIcon(
    'content-beside-text-img-tiles',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-menu-thumbnail.svg']
);

$iconRegistry->registerIcon(
    'content-recruitee',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-recruitee.svg']
);

$iconRegistry->registerIcon(
    'content-brand',
    \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
    ['source' => 'EXT:energize/Resources/Public/Icons/Content/content-panel.svg']
);

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['tt_content_drawItem']['hero'] =
    \Medienreaktor\Energize\Hooks\PageLayoutView\HeroPreviewRenderer::class;

// $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['tt_content_drawItem']['hero-reference'] =
// \Medienreaktor\Energize\Hooks\PageLayoutView\HeroPreviewRenderer::class;

$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['energize'] = 'EXT:energize/Configuration/Yaml/RichTextEditor.yaml';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig("
    RTE.default.preset = energize
");

// Register a node in ext_localconf.php
$GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['nodeRegistry'][time()] = [
    'nodeName' => 'selectWithConfigurableDefault',
    'priority' => 40,
    'class' => \Medienreaktor\Energize\Form\Element\SelectWithConfigurableDefault::class,
];

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['cs_seo']['yamlConfigFile'] = 'EXT:cs_seo/Configuration/Yaml/news.yaml';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['fluid']['namespaces']['energize'] = [
    'Medienreaktor\\Energize\\ViewHelpers'
];


call_user_func(static function () {
    // Add form configuration to TYPO3 backend (module) and frontend (plugin):

    ExtensionManagementUtility::addTypoScriptSetup(
        trim('
             module.tx_form.settings.yamlConfigurations {
                100 = EXT:energize/Configuration/Yaml/FormSetup.yaml
            }

            plugin.tx_form.settings.yamlConfigurations {
                100 = EXT:energize/Configuration/Yaml/FormSetup.yaml
            }
        ')
    );
});
