TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-107488-1758106735:
|
||||
|
||||
============================================================
|
||||
Breaking: #107488 - Scheduler frequency options moved to TCA
|
||||
============================================================
|
||||
|
||||
See :issue:`107488`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The global configuration array
|
||||
:php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['frequencyOptions']`,
|
||||
which was used to define frequency options for scheduler tasks, has been
|
||||
removed.
|
||||
|
||||
Frequency options are now configured directly in the TCA using the
|
||||
:php:`overrideFieldTca` mechanism on the
|
||||
:php:`tx_scheduler_task.execution_details` field.
|
||||
|
||||
This change improves consistency with TYPO3’s configuration patterns and
|
||||
provides better extensibility for scheduler task timing options.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions that previously added custom frequency options through the global
|
||||
:php:`frequencyOptions` array will no longer see their custom options in the
|
||||
scheduler task frequency field.
|
||||
|
||||
Code that relied on reading the global :php:`frequencyOptions` configuration
|
||||
will no longer work as expected.
|
||||
|
||||
Affected installations
|
||||
======================
|
||||
|
||||
All installations with extensions providing custom scheduler frequency options
|
||||
through the global configuration array are affected.
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Extensions should migrate their frequency options from the global configuration
|
||||
to TCA overrides.
|
||||
|
||||
**Before (no longer working):**
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// EXT:my_extension/ext_localconf.php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['frequencyOptions']['0 2 * * *'] =
|
||||
'LLL:EXT:my_extension/Resources/Private/Language/locallang.xlf:daily_2am';
|
||||
|
||||
**After (recommended approach):**
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// EXT:my_extension/Configuration/TCA/Overrides/tx_scheduler_task.php
|
||||
|
||||
$GLOBALS['TCA']['tx_scheduler_task']['columns']['execution_details']['config']['overrideFieldTca']['frequency']['config']['valuePicker']['items'][] = [
|
||||
'value' => '0 2 * * *',
|
||||
'label' => 'LLL:EXT:my_extension/Resources/Private/Language/locallang.xlf:daily_2am',
|
||||
];
|
||||
|
||||
**Migration for multiple options:**
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// EXT:my_extension/Configuration/TCA/Overrides/tx_scheduler_task.php
|
||||
|
||||
$customFrequencyOptions = [
|
||||
[
|
||||
'value' => '0 2 * * *',
|
||||
'label' => 'LLL:EXT:my_extension/Resources/Private/Language/locallang.xlf:daily_2am',
|
||||
],
|
||||
[
|
||||
'value' => '0 */6 * * *',
|
||||
'label' => 'LLL:EXT:my_extension/Resources/Private/Language/locallang.xlf:every_6_hours',
|
||||
],
|
||||
[
|
||||
'value' => '0 0 1 * *',
|
||||
'label' => 'LLL:EXT:my_extension/Resources/Private/Language/locallang.xlf:monthly_first',
|
||||
],
|
||||
];
|
||||
|
||||
$GLOBALS['TCA']['tx_scheduler_task']['columns']['execution_details']['config']['overrideFieldTca']['frequency']['config']['valuePicker']['items'] = array_merge(
|
||||
$GLOBALS['TCA']['tx_scheduler_task']['columns']['execution_details']['config']['overrideFieldTca']['frequency']['config']['valuePicker']['items'] ?? [],
|
||||
$customFrequencyOptions
|
||||
);
|
||||
|
||||
Related features
|
||||
================
|
||||
|
||||
See :ref:`feature-107488-1758106735` for details about the new extensible
|
||||
timing options functionality.
|
||||
|
||||
.. index:: Backend, TCA, NotScanned, ext:scheduler
|
||||
Reference in New Issue
Block a user