Ergebnis 1 bis 5 von 5

Thema: Problem bei Formularen mit "rgxp time" (Bug im Core?)

  1. #1
    Contao-Nutzer Avatar von Gausi
    Registriert seit
    04.09.2009.
    Beiträge
    149

    Standard Problem bei Formularen mit "rgxp time" (Bug im Core?)

    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 errorUncaught 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?
    All of this has happened before - but the question remains: Does all of this have to happen again?

  2. #2
    Contao-Nutzer Avatar von Gr3yh0und
    Registriert seit
    22.02.2011.
    Ort
    Bavaria
    Beiträge
    30

    Standard

    Für meine aktuelle Contao Installation, die ich jetzt geupdated habe, benutze ich als workaround:
    PHP-Code:
    // Workaround for contao 2.11.10: Set starttime in correct format if given: 'd.m.Y H:i'
    if($NewEventData['startTime'] != '' && $NewEventData['startDate'] != ''){
        
    $NewEventData['startTime'] = $NewEventData['startDate'].' '.$NewEventData['startTime'];
    }
                
    // Workaround for contao 2.11.10: Set endtime in correct format if given: 'd.m.Y H:i'
    if($NewEventData['endTime'] != '' && $NewEventData['endDate'] != ''){
        
    $NewEventData['endTime'] = $NewEventData['endDate'].' '.$NewEventData['endTime'];

    Indem ich einfach das entsprechende Datum für das Zeitfeld setze... Wäre aber auch interessiert an einer Lösung, daher ein *bump* für diesen Thread.

    @Gausi: Ich habe bei der Fehlersuche auch den Code etwas aufgeräumt, vielleicht willst du damit weiterarbeiten... Ich benutze seitens des Codes für meine Seite aber nur die Funktion des HInzufügens im FE, Bearbeitung erfolgt bei mir im BE.
    Angehängte Dateien Angehängte Dateien

  3. #3
    Contao-Nutzer
    Registriert seit
    05.04.2012.
    Beiträge
    8

    Standard

    Hallo Zusammen

    Ich hatte das gleiche Problem, aber bei allen Modulen. Sei es unter Events, Nachrichten oder Artikel. Sobald ich ein "Anzeige ab"- oder "Anzeige bis"-Datum eingegeben hatte, kamm die Fehlermeldung "Üngültiges Datum". Nach längerem Recherchieren bin ich auf den Fix #5086 gestossen. Als ich dann wie Gausi beschrieben hat, denn Fix in der Datei Date.php (Zeile 426) deaktiviert habe lief es wieder einwandfrei.

    Ehrlich gesagt bin ich mir nur nicht ganz sicher, ob das die richtige Lösung ist, denn aus ihrgend einem Grund wurde diese ja implementiert. Wie seht ihr das? Wisst ihr inzwischen schon etwas mehr?


    Gruss & Danke

  4. #4
    Contao-Fan Avatar von marcos
    Registriert seit
    09.02.2011.
    Ort
    Schweiz
    Beiträge
    575
    User beschenken
    Wunschliste

    Gesicht zeigt die Zunge

    Hallo Gausi, hallo Gr3yh0und

    Ich habe eure beiden Varianten ausprobiert. Beide Möglichkeiten beheben das Problem (die Fehlermeldung), jedoch trägt mir das Modul jetzt immer 00:00 ein. (Beim Erstellen und Bearbeiten). Installation bei Contao 2.11.11. Könnt ihr mir sagen, wieso?

    Danke und Gruss
    Marco

  5. #5
    Contao-Nutzer
    Registriert seit
    29.08.2013.
    Beiträge
    5

    Standard

    Gibt’s hier ein Update? rgxp=time funktioniert auch in Contao 3.1.2 noch nicht, wegen oben beschriebenen "Fix" in der Date.php.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •