0byt3m1n1
Path:
/
data
/
applications
/
aps
/
typo3
/
12.4.7
/
standard
/
htdocs
/
typo3
/
sysext
/
scheduler
/
[
Home
]
File: ext_localconf.php
<?php declare(strict_types=1); use TYPO3\CMS\Scheduler\Task\CachingFrameworkGarbageCollectionAdditionalFieldProvider; use TYPO3\CMS\Scheduler\Task\CachingFrameworkGarbageCollectionTask; use TYPO3\CMS\Scheduler\Task\ExecuteSchedulableCommandAdditionalFieldProvider; use TYPO3\CMS\Scheduler\Task\ExecuteSchedulableCommandTask; use TYPO3\CMS\Scheduler\Task\FileStorageExtractionAdditionalFieldProvider; use TYPO3\CMS\Scheduler\Task\FileStorageExtractionTask; use TYPO3\CMS\Scheduler\Task\FileStorageIndexingAdditionalFieldProvider; use TYPO3\CMS\Scheduler\Task\FileStorageIndexingTask; use TYPO3\CMS\Scheduler\Task\IpAnonymizationAdditionalFieldProvider; use TYPO3\CMS\Scheduler\Task\IpAnonymizationTask; use TYPO3\CMS\Scheduler\Task\OptimizeDatabaseTableAdditionalFieldProvider; use TYPO3\CMS\Scheduler\Task\OptimizeDatabaseTableTask; use TYPO3\CMS\Scheduler\Task\RecyclerGarbageCollectionAdditionalFieldProvider; use TYPO3\CMS\Scheduler\Task\RecyclerGarbageCollectionTask; use TYPO3\CMS\Scheduler\Task\TableGarbageCollectionAdditionalFieldProvider; use TYPO3\CMS\Scheduler\Task\TableGarbageCollectionTask; defined('TYPO3') or die(); // Add caching framework garbage collection task $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][CachingFrameworkGarbageCollectionTask::class] = [ 'extension' => 'scheduler', 'title' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:cachingFrameworkGarbageCollection.name', 'description' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:cachingFrameworkGarbageCollection.description', 'additionalFields' => CachingFrameworkGarbageCollectionAdditionalFieldProvider::class, ]; // Add task to index file in a storage $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][FileStorageIndexingTask::class] = [ 'extension' => 'scheduler', 'title' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:fileStorageIndexing.name', 'description' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:fileStorageIndexing.description', 'additionalFields' => FileStorageIndexingAdditionalFieldProvider::class, ]; // Add task for extracting metadata from files in a storage $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][FileStorageExtractionTask::class] = [ 'extension' => 'scheduler', 'title' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:fileStorageExtraction.name', 'description' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:fileStorageExtraction.description', 'additionalFields' => FileStorageExtractionAdditionalFieldProvider::class, ]; // Add recycler directory cleanup task $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][RecyclerGarbageCollectionTask::class] = [ 'extension' => 'scheduler', 'title' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:recyclerGarbageCollection.name', 'description' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:recyclerGarbageCollection.description', 'additionalFields' => RecyclerGarbageCollectionAdditionalFieldProvider::class, ]; // Add execute schedulable command task $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][ExecuteSchedulableCommandTask::class] = [ 'extension' => 'scheduler', 'title' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:executeSchedulableCommandTask.name', 'description' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:executeSchedulableCommandTask.name', 'additionalFields' => ExecuteSchedulableCommandAdditionalFieldProvider::class, ]; // Save any previous option array for table garbage collection task // to temporary variable so it can be pre-populated by other // extensions and LocalConfiguration/AdditionalConfiguration $garbageCollectionTaskOptions = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][TableGarbageCollectionTask::class]['options'] ?? []; $garbageCollectionTaskOptions['tables'] = $garbageCollectionTaskOptions['tables'] ?? []; // Add table garbage collection task $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][TableGarbageCollectionTask::class] = [ 'extension' => 'scheduler', 'title' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:tableGarbageCollection.name', 'description' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:tableGarbageCollection.description', 'additionalFields' => TableGarbageCollectionAdditionalFieldProvider::class, 'options' => $garbageCollectionTaskOptions, ]; unset($garbageCollectionTaskOptions); // Register sys_log and sys_history table in table garbage collection task if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][TableGarbageCollectionTask::class]['options']['tables']['sys_log'] ?? false)) { $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][TableGarbageCollectionTask::class]['options']['tables']['sys_log'] = [ 'dateField' => 'tstamp', 'expirePeriod' => 180, ]; } if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][TableGarbageCollectionTask::class]['options']['tables']['sys_history'] ?? false)) { $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][TableGarbageCollectionTask::class]['options']['tables']['sys_history'] = [ 'dateField' => 'tstamp', 'expirePeriod' => 30, ]; } // Save any previous option array for ip anonymization task // to temporary variable so it can be pre-populated by other // extensions and LocalConfiguration/AdditionalConfiguration $ipAnonymizeCollectionTaskOptions = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][IpAnonymizationTask::class]['options'] ?? []; $ipAnonymizeCollectionTaskOptions['tables'] = $ipAnonymizeCollectionTaskOptions['tables'] ?? []; // Add ip anonymization task $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][IpAnonymizationTask::class] = [ 'extension' => 'scheduler', 'title' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:ipAnonymization.name', 'description' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:ipAnonymization.description', 'additionalFields' => IpAnonymizationAdditionalFieldProvider::class, 'options' => $ipAnonymizeCollectionTaskOptions, ]; unset($ipAnonymizeCollectionTaskOptions); if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][IpAnonymizationTask::class]['options']['tables']['sys_log'] ?? false)) { $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][IpAnonymizationTask::class]['options']['tables']['sys_log'] = [ 'dateField' => 'tstamp', 'ipField' => 'IP', ]; } // Add task for optimizing database tables $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][OptimizeDatabaseTableTask::class] = [ 'extension' => 'scheduler', 'title' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:optimizeDatabaseTable.name', 'description' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:optimizeDatabaseTable.description', 'additionalFields' => OptimizeDatabaseTableAdditionalFieldProvider::class, ]; // Available frequency options $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['frequencyOptions'] = [ '0 9,15 * * 1-5' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:command.example1', '0 */2 * * *' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:command.example2', '*/20 * * * *' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:command.example3', '0 7 * * 2' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:command.example4', ];