[BUGFIX] Remove caches for page title and meta tag
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / ext_localconf.php
1 <?php
2
3 defined('TYPO3_MODE') or die();
4
5 /** @var \TYPO3\CMS\Extbase\SignalSlot\Dispatcher $signalSlotDispatcher */
6 $signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
7
8 // PACKAGE MANAGEMENT
9 $signalSlotDispatcher->connect(
10 'PackageManagement',
11 'packagesMayHaveChanged',
12 \TYPO3\CMS\Core\Package\PackageManager::class,
13 'scanAvailablePackages'
14 );
15
16 // FAL security checks for backend users
17 $signalSlotDispatcher->connect(
18 \TYPO3\CMS\Core\Resource\ResourceFactory::class,
19 \TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostProcessStorage,
20 \TYPO3\CMS\Core\Resource\Security\StoragePermissionsAspect::class,
21 'addUserPermissionsToStorage'
22 );
23
24 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = \TYPO3\CMS\Core\Resource\Security\FileMetadataPermissionsAspect::class;
25 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = \TYPO3\CMS\Core\Hooks\BackendUserGroupIntegrityCheck::class;
26 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = \TYPO3\CMS\Core\Hooks\BackendUserPasswordCheck::class;
27 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/alt_doc.php']['makeEditForm_accessCheck'][] = \TYPO3\CMS\Core\Resource\Security\FileMetadataPermissionsAspect::class . '->isAllowedToShowEditForm';
28 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tceforms_inline.php']['checkAccess'][] = \TYPO3\CMS\Core\Resource\Security\FileMetadataPermissionsAspect::class . '->isAllowedToShowEditForm';
29 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['checkModifyAccessList'][] = \TYPO3\CMS\Core\Resource\Security\FileMetadataPermissionsAspect::class;
30 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = \TYPO3\CMS\Core\Hooks\DestroySessionHook::class;
31
32 $signalSlotDispatcher->connect(
33 \TYPO3\CMS\Core\Resource\ResourceStorage::class,
34 \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileDelete,
35 \TYPO3\CMS\Core\Resource\Processing\FileDeletionAspect::class,
36 'removeFromRepository'
37 );
38
39 $signalSlotDispatcher->connect(
40 \TYPO3\CMS\Core\Resource\ResourceStorage::class,
41 \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileAdd,
42 \TYPO3\CMS\Core\Resource\Processing\FileDeletionAspect::class,
43 'cleanupProcessedFilesPostFileAdd'
44 );
45
46 $signalSlotDispatcher->connect(
47 \TYPO3\CMS\Core\Resource\ResourceStorage::class,
48 \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileReplace,
49 \TYPO3\CMS\Core\Resource\Processing\FileDeletionAspect::class,
50 'cleanupProcessedFilesPostFileReplace'
51 );
52
53 if (!\TYPO3\CMS\Core\Core\Environment::isComposerMode()) {
54 $signalSlotDispatcher->connect(
55 \TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class,
56 'afterExtensionInstall',
57 \TYPO3\CMS\Core\Core\ClassLoadingInformation::class,
58 'dumpClassLoadingInformation'
59 );
60 $signalSlotDispatcher->connect(
61 \TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class,
62 'afterExtensionUninstall',
63 \TYPO3\CMS\Core\Core\ClassLoadingInformation::class,
64 'dumpClassLoadingInformation'
65 );
66 }
67 $signalSlotDispatcher->connect(
68 TYPO3\CMS\Core\Resource\ResourceStorage::class,
69 \TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PreFileProcess,
70 \TYPO3\CMS\Core\Resource\OnlineMedia\Processing\PreviewProcessing::class,
71 'processFile'
72 );
73
74 $signalSlotDispatcher->connect(
75 'TYPO3\\CMS\\Install\\Service\\SqlExpectedSchemaService',
76 'tablesDefinitionIsBeingBuilt',
77 \TYPO3\CMS\Core\Cache\DatabaseSchemaService::class,
78 'addCachingFrameworkRequiredDatabaseSchemaForSqlExpectedSchemaService'
79 );
80 $signalSlotDispatcher->connect(
81 'TYPO3\\CMS\\Install\\Service\\SqlExpectedSchemaService',
82 'tablesDefinitionIsBeingBuilt',
83 \TYPO3\CMS\Core\Category\CategoryRegistry::class,
84 'addCategoryDatabaseSchemaToTablesDefinition'
85 );
86
87 unset($signalSlotDispatcher);
88
89 $GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['dumpFile'] = \TYPO3\CMS\Core\Controller\FileDumpController::class . '::dumpAction';
90 $GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['requirejs'] = \TYPO3\CMS\Core\Controller\RequireJsController::class . '::retrieveConfiguration';
91
92 /** @var \TYPO3\CMS\Core\Resource\Rendering\RendererRegistry $rendererRegistry */
93 $rendererRegistry = \TYPO3\CMS\Core\Resource\Rendering\RendererRegistry::getInstance();
94 $rendererRegistry->registerRendererClass(\TYPO3\CMS\Core\Resource\Rendering\AudioTagRenderer::class);
95 $rendererRegistry->registerRendererClass(\TYPO3\CMS\Core\Resource\Rendering\VideoTagRenderer::class);
96 $rendererRegistry->registerRendererClass(\TYPO3\CMS\Core\Resource\Rendering\YouTubeRenderer::class);
97 $rendererRegistry->registerRendererClass(\TYPO3\CMS\Core\Resource\Rendering\VimeoRenderer::class);
98 unset($rendererRegistry);
99
100 $textExtractorRegistry = \TYPO3\CMS\Core\Resource\TextExtraction\TextExtractorRegistry::getInstance();
101 $textExtractorRegistry->registerTextExtractor(\TYPO3\CMS\Core\Resource\TextExtraction\PlainTextExtractor::class);
102 unset($textExtractorRegistry);
103
104 $extractorRegistry = \TYPO3\CMS\Core\Resource\Index\ExtractorRegistry::getInstance();
105 $extractorRegistry->registerExtractionService(\TYPO3\CMS\Core\Resource\OnlineMedia\Metadata\Extractor::class);
106 unset($extractorRegistry);
107
108 // Register base authentication service
109 \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addService(
110 'core',
111 'auth',
112 \TYPO3\CMS\Core\Authentication\AuthenticationService::class,
113 [
114 'title' => 'User authentication',
115 'description' => 'Authentication with username/password.',
116 'subtype' => 'getUserBE,getUserFE,authUserBE,authUserFE,getGroupsFE,processLoginDataBE,processLoginDataFE',
117 'available' => true,
118 'priority' => 50,
119 'quality' => 50,
120 'os' => '',
121 'exec' => '',
122 'className' => TYPO3\CMS\Core\Authentication\AuthenticationService::class
123 ]
124 );
125
126 // add default notification options to every page
127 \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig(
128 'TCEMAIN.translateToMessage = Translate to %s:'
129 );
130
131 $metaTagManagerRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\MetaTag\MetaTagManagerRegistry::class);
132 $metaTagManagerRegistry->registerManager(
133 'html5',
134 \TYPO3\CMS\Core\MetaTag\Html5MetaTagManager::class
135 );
136 $metaTagManagerRegistry->registerManager(
137 'edge',
138 \TYPO3\CMS\Core\MetaTag\EdgeMetaTagManager::class
139 );
140 unset($metaTagManagerRegistry);
141
142 // Add module configuration
143 \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptSetup(
144 'config.pageTitleProviders.record.provider = TYPO3\CMS\Core\PageTitle\RecordPageTitleProvider'
145 );