From 8d101cedbbd31c50ef75f1aad9ad8d0935258cb6 Mon Sep 17 00:00:00 2001
From: Markus Klein <markus.klein@typo3.org>
Date: Wed, 18 Oct 2023 13:57:04 +0200
Subject: [PATCH] [BUGFIX] Handle missing TCA|ctrl|title in recycler schedule
 task

`$TCA['ctrl']['title']` is optional and may
not be set.

Resolves: #102195
Releases: main, 12.4, 11.5
Change-Id: I38a5aa921515f48b2e35a0ebdb8bcdce646b5bd6
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81458
Tested-by: core-ci <typo3@b13.com>
Tested-by: Andreas Kienast <a.fernandez@scripting-base.de>
Reviewed-by: Andreas Kienast <a.fernandez@scripting-base.de>
---
 typo3/sysext/recycler/Classes/Task/CleanerFieldProvider.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/typo3/sysext/recycler/Classes/Task/CleanerFieldProvider.php b/typo3/sysext/recycler/Classes/Task/CleanerFieldProvider.php
index 96f27808c90d..3e132f4cc6a5 100644
--- a/typo3/sysext/recycler/Classes/Task/CleanerFieldProvider.php
+++ b/typo3/sysext/recycler/Classes/Task/CleanerFieldProvider.php
@@ -80,7 +80,7 @@ class CleanerFieldProvider extends AbstractAdditionalFieldProvider
         foreach ($GLOBALS['TCA'] as $table => $tableConf) {
             if (!empty($tableConf['ctrl']['delete'])) {
                 $selected = in_array($table, $selectedTables, true) ? ' selected="selected"' : '';
-                $tableTitle = $this->getLanguageService()->sL($tableConf['ctrl']['title']);
+                $tableTitle = !empty($tableConf['ctrl']['title']) ? $this->getLanguageService()->sL($tableConf['ctrl']['title']) : '';
                 $options[$tableTitle . ' ' . $table] = '<option' . $selected . ' value="' . $table . '">' . htmlspecialchars($tableTitle . ' (' . $table . ')') . '</option>';
             }
         }
-- 
GitLab