<?php
/**
 *
 * Copyright notice
 *
 * (c) sgalinski Internet Services (https://www.sgalinski.de)
 *
 * All rights reserved
 *
 * This script is part of the TYPO3 project. The TYPO3 project is
 * free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * The GNU General Public License can be found at
 * http://www.gnu.org/copyleft/gpl.html.
 *
 * This script is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * This copyright notice MUST APPEAR in all copies of the script!
 */

call_user_func(
	function ($extKey, $table) {
		\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
			$extKey,
			'Overview',
			'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_backend.xlf:pageTypeTitlePluginOverview.news'
		);

		\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
			$extKey,
			'Latest',
			'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_backend.xlf:pageTypeTitlePluginLatest.news'
		);

		\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
			$extKey,
			'ListByCategory',
			'LLL:EXT:' . $extKey . '/Resources/Private/Language/locallang_backend.xlf:pageTypeTitlePluginCategory.news'
		);

		// Removal of the unused plugin setting fields
		$GLOBALS['TCA'][$table]['types']['list']['subtypes_excludelist']['sgnews_overview'] = 'select_key,pages,recursive';
		$GLOBALS['TCA'][$table]['types']['list']['subtypes_excludelist']['sgnews_listbycategory'] = 'select_key,pages,recursive';
		$GLOBALS['TCA'][$table]['types']['list']['subtypes_excludelist']['sgnews_latest'] = 'select_key,pages,recursive';
		$GLOBALS['TCA'][$table]['types']['list']['subtypes_excludelist']['sgnews_singleview'] = 'select_key,pages,recursive';

		// Flex form assignment
		$pluginSignature = str_replace('_', '', $extKey) . '_overview';
		$GLOBALS['TCA'][$table]['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
		\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
			$pluginSignature, 'FILE:EXT:' . $extKey . '/Configuration/FlexForms/Overview.xml'
		);

		$pluginSignature = str_replace('_', '', $extKey) . '_listbycategory';
		$GLOBALS['TCA'][$table]['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
		\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
			$pluginSignature, 'FILE:EXT:' . $extKey . '/Configuration/FlexForms/ListByCategory.xml'
		);

		$pluginSignature = str_replace('_', '', $extKey) . '_latest';
		$GLOBALS['TCA'][$table]['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
		\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
			$pluginSignature, 'FILE:EXT:' . $extKey . '/Configuration/FlexForms/Latest.xml'
		);
	}, 'sg_news', 'tt_content'
);