Bei meiner Calendar-Editor-Erweiterung gibt es seit einem der letzten Updates diesen Fehler, wenn man auch das Feld "Startzeit" ausfüllt.
PHP-Code:
Fatal error: Uncaught exception Exception with message Invalid date "14:45" thrown in …/system/libraries/Date.php on line 428
#0 …/system/libraries/Date.php(92): Date->dateToUnix()
#1 …/system/libraries/Controller.php(2962): Date->__construct('14:45')
#2 …/system/modules/calendar_editor/ModuleEventEditor.php(844): Controller->prepareForWidget(Array, 'startTime', '14:45')
#3 …/system/modules/frontend/Module.php(140): ModuleEventEditor->compile()
Das betreffende feld ist als 'rgxp' => 'time' markiert. Eine Eingabe wie "14:45" sollte je eigentlich eine gültige Zeit sein. Beheben kann man den Fehler, wenn man die neue Datumsüberprüfung in der Date.php aussschaltet (zeile 426, checkdate(...)), oder wenn man in der Controller.php Uhrzeiten anders als ein Datum behandelt (Zeile 2962ff):
PHP-Code:
if ($varValue != '' && ($arrData['eval']['rgxp'] == 'date' || $arrData['eval']['rgxp'] == 'datim'))
{
$objDate = new Date($varValue);
$arrNew['value'] = $objDate->{$arrData['eval']['rgxp']};
}
if ($varValue != '' && ($arrData['eval']['rgxp'] == 'time' ))
{
$objDate = new Date($varValue, $GLOBALS['TL_CONFIG']['timeFormat']); // hier das Zeitfomat aus den Settings nehmen
$arrNew['value'] = $objDate->{$arrData['eval']['rgxp']};
}
Frage: Habe ich da einen Bug im Contao-Core gefunden, oder mache ich mit meiner Erweiterung was grundlegend falsch?
Lesezeichen