<?php if (!defined('TYPO3_MODE')) { die('Access denied.'); } \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile( 'sg_news', 'Configuration/TypoScript/Frontend', 'News System' ); TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( 'sg_news', 'Overview', 'LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:titleOverviewPlugin' ); TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( 'sg_news', 'Latest', 'LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:titleLatestPlugin' ); TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( 'sg_news', 'SingleView', 'LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:titleSingleViewPlugin' ); TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( 'sg_news', 'ListByCategory', 'LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:titleListByCategoryPlugin' ); // Removal of the unused plugin setting fields $TCA['tt_content']['types']['list']['subtypes_excludelist']['sgnews_overview'] = 'select_key,pages,recursive'; $TCA['tt_content']['types']['list']['subtypes_excludelist']['sgnews_listbycategory'] = 'select_key,pages,recursive'; $TCA['tt_content']['types']['list']['subtypes_excludelist']['sgnews_latest'] = 'select_key,pages,recursive'; $TCA['tt_content']['types']['list']['subtypes_excludelist']['sgnews_singleview'] = 'select_key,pages,recursive'; // Flex form assignment $pluginSignature = str_replace('_', '', 'sg_news') . '_overview'; $TCA['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform'; \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( $pluginSignature, 'FILE:EXT:sg_news/Configuration/FlexForms/Overview.xml' ); $pluginSignature = str_replace('_', '', 'sg_news') . '_listbycategory'; $TCA['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform'; \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( $pluginSignature, 'FILE:EXT:sg_news/Configuration/FlexForms/ListByCategory.xml' ); $pluginSignature = str_replace('_', '', 'sg_news') . '_latest'; $TCA['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform'; \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue( $pluginSignature, 'FILE:EXT:sg_news/Configuration/FlexForms/Latest.xml' ); // Define the new doktypes /** @var \TYPO3\CMS\Core\Imaging\IconRegistry $iconRegistry */ $iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class); $relativeExtensionPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('sg_news'); ################################### ### Define the Category Doktype ### ################################### $customPageDoktype = 117; // add the new doktype to the list of page types $GLOBALS['PAGES_TYPES'][$customPageDoktype] = [ 'type' => 'sys', 'icon' => 'EXT:sg_news/Resources/Public/Images/Category.png', 'allowedTables' => '*', ]; // add the new doktype to the page type selector $GLOBALS['TCA']['pages']['columns']['doktype']['config']['items'][] = [ 'LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:pageType.category', $customPageDoktype, 'EXT:sg_news/Resources/Public/Images/Category.png' ]; // also add the new doktype to the page language overlays type selector (so that translations can inherit the same type) $GLOBALS['TCA']['pages_language_overlay']['columns']['doktype']['config']['items'][] = [ 'LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:pageType.category', $customPageDoktype, 'EXT:sg_news/Resources/Public/Images/Category.png' ]; // register new icon $iconRegistry->registerIcon( 'tcarecords-pages-' . $customPageDoktype, \TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider::class, ['source' => 'EXT:sg_news/Resources/Public/Images/Category.png'] ); $GLOBALS['TCA']['pages']['ctrl']['typeicon_classes'][$customPageDoktype] = 'tcarecords-pages-' . $customPageDoktype; // add the new doktype to the list of types available from the new page menu at the top of the page tree \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addUserTSConfig( 'options.pageTree.doktypesToShowInNewPageDragArea := addToList(' . $customPageDoktype . ')' ); ############################### ### Define the News Doktype ### ############################### $customPageDoktype = 116; // add the new doktype to the list of page types $GLOBALS['PAGES_TYPES'][$customPageDoktype] = [ 'type' => 'sys', 'icon' => 'EXT:sg_news/Resources/Public/Images/News.png', 'allowedTables' => '*', ]; // add the new doktype to the page type selector $GLOBALS['TCA']['pages']['columns']['doktype']['config']['items'][] = [ 'LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:pageType.news', $customPageDoktype, 'EXT:sg_news/Resources/Public/Images/News.png' ]; // also add the new doktype to the page language overlays type selector (so that translations can inherit the same type) $GLOBALS['TCA']['pages_language_overlay']['columns']['doktype']['config']['items'][] = [ 'LLL:EXT:sg_news/Resources/Private/Language/locallang_backend.xlf:pageType.news', $customPageDoktype, 'EXT:sg_news/Resources/Public/Images/News.png' ]; // register new icon $iconRegistry->registerIcon( 'tcarecords-pages-' . $customPageDoktype, \TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider::class, ['source' => 'EXT:sg_news/Resources/Public/Images/News.png'] ); $GLOBALS['TCA']['pages']['ctrl']['typeicon_classes'][$customPageDoktype] = 'tcarecords-pages-' . $customPageDoktype; // add the new doktype to the list of types available from the new page menu at the top of the page tree \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addUserTSConfig( 'options.pageTree.doktypesToShowInNewPageDragArea := addToList(' . $customPageDoktype . ')' );