2 namespace TYPO3\CMS\Scheduler\Task;
38 $additionalFields = array();
40 $additionalFields[
'task_tableGarbageCollection_table'] = $this->
getTableAdditionalField($taskInfo, $task, $parentObject);
42 return $additionalFields;
52 $tableConfiguration =
$GLOBALS[
'TYPO3_CONF_VARS'][
'SC_OPTIONS'][
'scheduler'][
'tasks'][\TYPO3\CMS\Scheduler\Task\TableGarbageCollectionTask::class][
'options'][
'tables'];
53 foreach ($tableConfiguration as $tableName => $configuration) {
54 if (isset($configuration[
'expirePeriod'])) {
55 $this->defaultNumberOfDays[$tableName] = $configuration[
'expirePeriod'];
70 if ($parentObject->CMD ===
'edit') {
71 $checked = $task->allTables ===
true ?
'checked="checked" ' :
'';
75 $fieldName =
'tx_scheduler[scheduler_tableGarbageCollection_allTables]';
76 $fieldId =
'task_tableGarbageCollection_allTables';
77 $fieldHtml =
'<div class="checkbox"><label><input type="checkbox" ' . $checked .
' name="' . $fieldName .
'" ' .
'id="' . $fieldId .
'"></label></div>';
78 $fieldConfiguration = array(
80 'label' =>
'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.tableGarbageCollection.allTables',
81 'cshKey' =>
'_MOD_system_txschedulerM1',
82 'cshLabel' => $fieldId
84 return $fieldConfiguration;
97 $tableConfiguration =
$GLOBALS[
'TYPO3_CONF_VARS'][
'SC_OPTIONS'][
'scheduler'][
'tasks'][\TYPO3\CMS\Scheduler\Task\TableGarbageCollectionTask::class][
'options'][
'tables'];
101 if ($parentObject->CMD ===
'edit' && !array_key_exists($task->table, $tableConfiguration)) {
102 $options[] =
'<option value="" selected="selected"></option>';
104 foreach ($tableConfiguration as $tableName => $configuration) {
105 if ($parentObject->CMD ===
'add' && empty($options)) {
107 $options[] =
'<option value="' . $tableName .
'" selected="selected">' . $tableName .
'</option>';
108 }
elseif ($task->table === $tableName) {
110 $options[] =
'<option value="' . $tableName .
'" selected="selected">' . $tableName .
'</option>';
112 $options[] =
'<option value="' . $tableName .
'">' . $tableName .
'</option>';
115 $disabled = $task->allTables ===
true ?
' disabled="disabled"' :
'';
116 $fieldName =
'tx_scheduler[scheduler_tableGarbageCollection_table]';
117 $fieldId =
'task_tableGarbageCollection_table';
118 $fieldHtml = array();
120 $fieldHtml[] =
'<select class="form-control" name="' . $fieldName .
'" ' . $disabled .
' id="' . $fieldId .
'">' . implode(LF, $options) .
'</select>';
122 $fieldHtml[] =
'<script type="text/javascript">/*<![CDATA[*/<!--';
123 $fieldHtml[] =
'var defaultNumberOfDays = ' . json_encode($this->defaultNumberOfDays) .
';';
124 $fieldHtml[] =
'// -->/*]]>*/</script>';
125 $fieldConfiguration = array(
126 'code' => implode(LF, $fieldHtml),
127 'label' =>
'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.tableGarbageCollection.table',
128 'cshKey' =>
'_MOD_system_txschedulerM1',
129 'cshLabel' => $fieldId
131 return $fieldConfiguration;
146 if (empty($taskInfo[
'scheduler_tableGarbageCollection_numberOfDays'])) {
147 if ($parentObject->CMD ===
'add') {
149 $taskInfo[
'scheduler_tableGarbageCollection_numberOfDays'] = 180;
150 }
elseif ($parentObject->CMD ===
'edit') {
152 $taskInfo[
'scheduler_tableGarbageCollection_numberOfDays'] = $task->numberOfDays;
153 if ($task->numberOfDays === 0 && !isset($this->defaultNumberOfDays[$task->table])) {
154 $disabled =
' disabled="disabled"';
158 if ($task->allTables ===
true) {
159 $disabled =
' disabled="disabled"';
161 $fieldName =
'tx_scheduler[scheduler_tableGarbageCollection_numberOfDays]';
162 $fieldId =
'task_tableGarbageCollection_numberOfDays';
163 $fieldHtml =
'<input class="form-control" type="text" ' .
'name="' . $fieldName .
'" ' .
'id="' . $fieldId .
'" ' . $disabled .
'value="' . (int)$taskInfo[
'scheduler_tableGarbageCollection_numberOfDays'] .
'" ' .
'size="4">';
164 $fieldConfiguration = array(
165 'code' => $fieldHtml,
166 'label' =>
'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.tableGarbageCollection.numberOfDays',
167 'cshKey' =>
'_MOD_system_txschedulerM1',
168 'cshLabel' => $fieldId
170 return $fieldConfiguration;
198 if (!isset($submittedData[
'scheduler_tableGarbageCollection_allTables'])) {
200 }
elseif ($submittedData[
'scheduler_tableGarbageCollection_allTables'] ===
'on') {
216 $tableConfiguration =
$GLOBALS[
'TYPO3_CONF_VARS'][
'SC_OPTIONS'][
'scheduler'][
'tasks'][\TYPO3\CMS\Scheduler\Task\TableGarbageCollectionTask::class][
'options'][
'tables'];
217 if (!isset($submittedData[
'scheduler_tableGarbageCollection_table'])) {
219 }
elseif (array_key_exists($submittedData[
'scheduler_tableGarbageCollection_table'], $tableConfiguration)) {
235 if (!isset($submittedData[
'scheduler_tableGarbageCollection_numberOfDays'])) {
237 }
elseif ((
int)$submittedData[
'scheduler_tableGarbageCollection_numberOfDays'] >= 0) {
241 $parentObject->addMessage(
$GLOBALS[
'LANG']->sL(
'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:msg.invalidNumberOfDays'), \TYPO3\CMS\Core\Messaging\
FlashMessage::ERROR);
255 $task->allTables = $submittedData[
'scheduler_tableGarbageCollection_allTables'] ===
'on';
256 $task->table = $submittedData[
'scheduler_tableGarbageCollection_table'];
257 $task->numberOfDays = (int)$submittedData[
'scheduler_tableGarbageCollection_numberOfDays'];