Initial commit - Typo3 11.5.41
This commit is contained in:
174
typo3conf/ext/news/ext_localconf.php
Normal file
174
typo3conf/ext/news/ext_localconf.php
Normal 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);
|
||||
Reference in New Issue
Block a user