Zum Inhalt springen

Zugriff -> Ablaufdatum ignoriert 2021

Erstellt am 11. Januar 2021 · 3 Antworten · letzte Antwort am 13. Januar 2021

Tags: TYPO3 6.x, Frage

foomaker ·

Eine frohes neues Jahr zusammen!

Erster Tag im Büro und es fängt direkt "gut" an. Das Formularfeld "Ablaufdatum" in Tab "Zugriff" ignoriert das neue Jahr 2021. Selbst bei manueller Eingabe von "31.1.2021" oder "2021-01-31" wird die Eingabe automatisch durch "23:00 2020-12-23" ersetzt.

Das Feld "Veröffentlichungsdatum" hingegen verhält sich normal.
Im Quelltext sind die beiden betreffenden Inputfelder so gecodet:

<input type="text" id="tceforms-datetimefield-5ffc12aa2b295" class="formField tceforms-textfield tceforms-datetimefield hasDefaultValue" name="data[tt_content][36][starttime]_hr" value="" style="width: 163px; " maxlength="20" onchange="typo3form.fieldGet('data[tt_content][36][starttime]','datetime','',1,'0');TBE_EDITOR.fieldChanged('tt_content','36','starttime','data[tt_content][36][starttime]');">
<input type="text" id="tceforms-datetimefield-5ffc12aa2b505" class="formField tceforms-textfield tceforms-datetimefield upper-1609369200 hasDefaultValue" name="data[tt_content][36][endtime]_hr" value="" style="width: 163px; " maxlength="20" onchange="typo3form.fieldGet('data[tt_content][36][endtime]','datetime','',1,'0');TBE_EDITOR.fieldChanged('tt_content','36','endtime','data[tt_content][36][endtime]');">

(Wie die beiden "1." dahin kommen, ist mir allerdings schleierhaft)

Dabei fällt auf, dass im class-Attribut des 'endtime'-Feldes ein zusätzlicher Parameter angegeben ist:

class="...upper-1609369200..."

Unix-Zeit für 31.12.2020.

Wenn ich das richtig sehe, muss ich also jetzt "nur noch" das HTML-Template finden, das "upper-..." enthält. Oder wird das dynamisch genertiert. Aber wo?

Ich finde es nicht. Hat eine*r einen Tipp?

Julian.​Hofmann · · Beste Antwort

Der Wert ist (in älteren TYPO3-Versionen) teils im TCA zu finden. Dort wird als obere Grenze der Range fürs Datum ein 'upper' => mktime(0, 0, 0, 12, 31, 2020) gesetzt.

Konnte den Grund dafür nicht herausfinden, war IMO aber eine Beschränkung von PHP oder MySQL - damals irgendwann...

Aufgrund des gecachten TCA ist es etwas umständlicher zu überschreiben. Letztlich brauchst Du eine Extension, die diese Stellen im TCA über Overrides überschreibt.

foomaker ·

Vielen Dank für die Erläuterung.
Hab's tatsächlich auch gestern noch gefunden:

In typo3/sysext/frontend/Configuration/TCA/tt_content.php stand dies:

'endtime' => array(
	'exclude' => 1,
	'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.endtime',
	'config' => array(
		'type' => 'input',
		'size' => '13',
		'max' => '20',
		'eval' => 'datetime',
		'default' => '0',
		'range' => array(
		       'upper' => mktime(0, 0, 0, 12, 31, 2020)
                )
        ),
	'l10n_mode' => 'exclude',
	'l10n_display' => 'defaultAsReadonly'
),

So wird auch klar, waum ich mit de Sucher nach "upper-" etc. nicht weiterkam.
Das array-Element "range" auskommentiert, Cache gelöscht, fertig.

Parsival_7 ·

Hallo 🙂
Ich habe genau das gleiche Problem, nur finde ich bei mir nicht den Ordner "frontend".
Kann ich den noch irgendwo anders finden?
Bin ziemlich neu in Typo3 und kaum Erfahrung.
Ich finde die Ordner typo3 und sysext aber kein frontend und beim suchen kann ich auch nichts finden. Vielen Dank schon mal! Liebe Grüße Christina