Initial commit - Typo3 11.5.41

This commit is contained in:
Matteo Gallo
2026-07-03 17:53:31 +02:00
commit 5ca4743197
6811 changed files with 568848 additions and 0 deletions

View File

@@ -0,0 +1,174 @@
<?php
defined('TYPO3_MODE') or die();
$boot = static function (): void {
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'News',
'Pi1',
[
\GeorgRinger\News\Controller\NewsController::class => 'list,detail,selectedList,dateMenu,searchForm,searchResult',
\GeorgRinger\News\Controller\CategoryController::class => 'list',
\GeorgRinger\News\Controller\TagController::class => 'list',
],
[
\GeorgRinger\News\Controller\NewsController::class => 'searchForm,searchResult',
]
);
// Page module hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['list_type_Info']['news' . '_pi1']['news'] =
\GeorgRinger\News\Hooks\PageLayoutView::class . '->getExtensionSummary';
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearCachePostProc']['news_clearcache'] =
\GeorgRinger\News\Hooks\DataHandler::class . '->clearCachePostProc';
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['moveRecordClass']['news_clearcache'] =
\GeorgRinger\News\Hooks\DataHandler::class;
// Edit restriction for news records
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processCmdmapClass']['news'] =
\GeorgRinger\News\Hooks\DataHandler::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass']['news'] =
\GeorgRinger\News\Hooks\DataHandler::class;
// Modify flexform values
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools::class]['flexParsing']['news']
= \GeorgRinger\News\Hooks\BackendUtility::class;
// Modify flexform fields since core 8.5 via formEngine: Inject a data provider between TcaFlexPrepare and TcaFlexProcess
$GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['formDataGroup']['tcaDatabaseRecord'][\GeorgRinger\News\Backend\FormDataProvider\NewsFlexFormManipulation::class] = [
'depends' => [
\TYPO3\CMS\Backend\Form\FormDataProvider\TcaFlexPrepare::class,
],
'before' => [
\TYPO3\CMS\Backend\Form\FormDataProvider\TcaFlexProcess::class,
],
];
// Hide content elements in list module & filter in administration module
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList::class]['modifyQuery'][]
= \GeorgRinger\News\Hooks\Backend\RecordListQueryHook::class;
// Hide content elements in page module
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Backend\View\PageLayoutView::class]['modifyQuery'][] = \GeorgRinger\News\Hooks\Backend\PageViewQueryHook::class;
// Inline records hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tceforms_inline.php']['tceformsInlineHook']['news'] =
\GeorgRinger\News\Hooks\InlineElementHook::class;
// Xclass InlineRecordContainer
$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][\TYPO3\CMS\Backend\Form\Container\InlineRecordContainer::class] = [
'className' => \GeorgRinger\News\Xclass\InlineRecordContainerForNews::class,
];
/* ===========================================================================
Custom cache, done with the caching framework
=========================================================================== */
if (empty($GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['news_category'])) {
$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['news_category'] = [];
}
// Define string frontend as default frontend, this must be set with TYPO3 4.5 and below
// and overrides the default variable frontend of 4.6
if (!isset($GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['news_category']['frontend'])) {
$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['news_category']['frontend'] = \TYPO3\CMS\Core\Cache\Frontend\VariableFrontend::class;
}
/* ===========================================================================
Add TSconfig
=========================================================================== */
// For linkvalidator
if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('linkvalidator')) {
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('@import \'EXT:news/Configuration/TSconfig/Page/mod.linkvalidator.tsconfig\'');
}
if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('guide')) {
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('@import \'EXT:news/Configuration/TSconfig/Tours/AdministrationModule.tsconfig\'');
}
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('
@import \'EXT:news/Configuration/TSconfig/ContentElementWizard.tsconfig\'
@import \'EXT:news/Configuration/TSconfig/Administration.tsconfig\'
');
/* ===========================================================================
Hooks
=========================================================================== */
// Register cache frontend for proxy class generation
$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['news'] = [
'frontend' => \TYPO3\CMS\Core\Cache\Frontend\PhpFrontend::class,
'backend' => \TYPO3\CMS\Core\Cache\Backend\FileBackend::class,
'groups' => [
'all',
'system',
],
'options' => [
'defaultLifetime' => 0,
]
];
if (class_exists(\GeorgRinger\News\Utility\ClassLoader::class)) {
\GeorgRinger\News\Utility\ClassLoader::registerAutoloader();
}
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearCachePostProc'][] =
\GeorgRinger\News\Utility\ClassCacheManager::class . '->reBuild';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['formDataGroup']['tcaDatabaseRecord'][\GeorgRinger\News\Backend\FormDataProvider\NewsRowInitializeNew::class] = [
'depends' => [
\TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowInitializeNew::class,
]
];
if (TYPO3_MODE === 'BE') {
$icons = [
'apps-pagetree-folder-contains-news' => 'ext-news-folder-tree.svg',
'apps-pagetree-page-contains-news' => 'ext-news-page-tree.svg',
'ext-news-wizard-icon' => 'plugin_wizard.svg',
'ext-news-type-default' => 'news_domain_model_news.svg',
'ext-news-type-internal' => 'news_domain_model_news_internal.svg',
'ext-news-type-external' => 'news_domain_model_news_external.svg',
'ext-news-tag' => 'news_domain_model_tag.svg',
'ext-news-link' => 'news_domain_model_link.svg',
'ext-news-donation' => 'donation.svg',
'ext-news-paypal' => 'donation_paypal.svg',
'ext-news-patreon' => 'donation_patreon.svg',
'ext-news-amazon' => 'donation_amazon.svg',
];
$iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class);
foreach ($icons as $identifier => $path) {
if (!$iconRegistry->isRegistered($identifier)) {
$iconRegistry->registerIcon(
$identifier,
\TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
['source' => 'EXT:news/Resources/Public/Icons/' . $path]
);
}
}
}
// Slug helpers
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/install']['update']['realurlAliasNewsSlug']
= \GeorgRinger\News\Updates\RealurlAliasNewsSlugUpdater::class; // Recommended before 'newsSlug'
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/install']['update']['newsSlug']
= \GeorgRinger\News\Updates\NewsSlugUpdater::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/install']['update']['sysCategorySlugs']
= \GeorgRinger\News\Updates\PopulateCategorySlugs::class;
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/install']['update']['txNewsTagSlugs']
= \GeorgRinger\News\Updates\PopulateTagSlugs::class;
$GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['nodeRegistry'][1552726986] = [
'nodeName' => 'NewsStaticText',
'priority' => 70,
'class' => \GeorgRinger\News\Backend\FieldInformation\StaticText::class
];
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptSetup(trim('
config.pageTitleProviders {
news {
provider = GeorgRinger\News\Seo\NewsTitleProvider
before = altPageTitle,record,seo
}
}
'));
};
$boot();
unset($boot);