<?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' ); if (TYPO3_MODE === 'BE') { \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule( 'SGalinski.sg_news', 'web', 'News', '', [ 'Backend' => 'index', ], [ 'access' => 'user,group', 'icon' => 'EXT:sg_news/Resources/Public/Icons/module-sgnews.svg', 'labels' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang.xlf', ] ); } // 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); ################################### ### 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'] ); $iconRegistry->registerIcon( 'actions-document-open-white', \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class, ['source' => 'EXT:sg_news/Resources/Public/Icons/actions-document-open-white.svg'] ); $iconRegistry->registerIcon( 'sg_news-module', \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class, ['source' => 'EXT:sg_news/Resources/Public/Icons/module-sgnews.svg'] ); $iconRegistry->registerIcon( 'sg_news-module-transparent', \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class, ['source' => 'EXT:sg_news/Resources/Public/Icons/module-sgnews-transparent.svg'] ); $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 . ')' ); if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('sg_ajax')) { \SGalinski\SgAjax\Service\AjaxRegistration::registerAjaxFrontendPlugin('sg_news'); }