EFG und Kalenderfeld - Datum wird falsch gespeichert
Hallo,
ich habe mir mit dem EFG eine Anwendung gebastelt, die es angemeldeten FrontendUsern gestattet, selber Termine zu erfassen und zu bearbeiten. Das funktioniert soweit auch ganz gut.
Nur mit dem Formularfeld vom Typ 'Kalenderfeld' aus der Extension 'calendarfield' habe ich ein kleines Problem. Es wird zwar abgespeichert, aber wenn ich mir das Event im Backend anschaue, dann zeigt er mir in der Auswahl das Datum 1.1.1970. In der Datenbank steht z.B. für den Wert 23.04.2011 nur folgendes in der Spalte 'startDate': 2304 (Wenn ich hier einmal in das Event gehe und speichern drücke ist alles wieder OK).
Hier ist irgendwie die Umwandlung in den Integerwert nicht erfolgt.:(
Die Einstellungen für's Datum stehen in meinem System auf 'm.d.Y'.
Über den Hook 'processEfgFormData' habe ich mir die Werte angeschaut und auch ausprobiert, wie es ist, wenn ich den Wert selber umwandle, aber dieser geänderte Wert wird nicht in die Datenbank übernommen.:rolleyes:
Hier mal der Hook:
Code:
public function processEfgFormData($arrSubmitted, $arrFiles, $intOldId,&$arrForm) {
// Einschraenkung auf das Formular
$this->log('HOOK: processEfgFormData',__METHOD__,'INFO');
if ($arrForm['formID'] == 'Termin_Formular') {
$this->log($arrForm['formID'],__METHOD__,'INFO');
if ($arrSubmitted['startDate'] != '') {
$startDt = strtotime($arrSubmitted['startDate']);
$stopdt = $startDt + (60*60*24);
$this->log('stopDt='.$stopDt,__METHOD__,'INFO');
$this->log('startDt='.$startDt,__METHOD__,'INFO');
}
$arrSubmitted['startDate'] = $startDt;
$this->log('arrSubmitted[startDate]='.$arrSubmitted['startDate'],__METHOD__,'INFO');
$arrSubmitted['stop'] = $stopdt;
return $arrSubmitted;
}
Hat jemand eine Idee warum das Datum nicht richtig abgespeichert wird? - Was habe ich übersehen? Ich bräuchte mal 'nen kleinen Tip.
Wie sieht es mit dem Speichern von Änderungen via Hook aus - warum wird hier nicht der korrigierte Wert über das zurückgegebene Array $arrSubmitted übernommen?
Hat jemand eine Idee? - Bitte nur Lösungsvorschläge mit dem EFG!
Mit dem Calendar_Editor + Kalenderfeld funktioniert es prima. Den kriege ich auch für meine Anwendung hingebogen. Interessant ist für mich aber der Einsatz des EFG, weil dieser doch noch ein paar nette Zusatz-Features bietet.:cool:
Gruß easy
Liste der Anhänge anzeigen (Anzahl: 3)
Zitat:
Zitat von
Andreas
Das wäre sowieso ne Lösung, die nur mit JS funktioniert. Auf jeden Fall mal die angesprochenen Sachen checken. Was zeigt Firebug? Was steht tatsächlich in der DB? Welcher Wert ist für inputOutputFormat im FE tatsächlich vorhanden?
Ich habe exakt das gleiche Problem wie Hangover.
Wenn ich
Habe mal den Datepicker (das ist die Extension "calenderfield") wie von Dir beschrieben auf "U" gesetzt und es wird die korrekte Unix Zeit (auch) in dem "display:none" inputfeld gesetzt, allerdings wird auch dieser Wert nicht als Unix Wert in der tl_calendar_events gespeichert. Siehe Screenshot1 Anhang 6484
Bei mir läuft er auf nen Fehler nach abschicken des Formlars
Code:
Fatal error: Uncaught exception Exception with message Invalid date format "U" thrown in XYZ\contao-2.10.3\system\modules\calendarfield\FormCalendarField.php on line 183
#0 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\system\modules\calendarfield\FormCalendarField.php(157): FormCalendarField->getRegexp('U')
#1 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\system\libraries\Widget.php(476): FormCalendarField->validator('1330540959')
#2 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\system\modules\frontend\Form.php(163): Widget->validate()
#3 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\system\modules\efg\ExtendedForm.php(150): Form->compile()
#4 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\system\modules\frontend\Hybrid.php(163): ExtendedForm->compile()
#5 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\system\modules\frontend\Form.php(74): Hybrid->generate()
#6 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\system\libraries\Controller.php(489): Form->generate()
#7 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\system\modules\frontend\ModuleArticle.php(193): Controller->getContentElement('142')
#8 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\system\modules\frontend\Module.php(140): ModuleArticle->compile()
#9 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\system\modules\frontend\ModuleArticle.php(71): Module->generate()
#10 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\system\libraries\Controller.php(421): ModuleArticle->generate(false)
#11 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\system\libraries\Controller.php(294): Controller->getArticle('58', false, false, 'main')
#12 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\system\modules\frontend\PageRegular.php(100): Controller->getFrontendModule('0', 'main')
#13 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\index.php(200): PageRegular->generate(Object(DB_Mysql_Result))
#14 D:\WD\Projekte\ddnl.net\Contao2Go_10.01.2012\Contao2Go_10.01.2012\Contao2Go_12.01.2012\Contao2Go\htdocs\vhosts\contao-2.10.3\index.php(319): Index->run()
#15 {main}
Wenn ich als Datumsformat "d.m.Y H:i" angeben (Siehe Screenshot 2) Anhang 6485 und speichere wird es in der DB wie Screenshot 3 Anhang 6487gespeichert.
ich vermute der Bug liegt in der Extension "calenderfield"?
Liste der Anhänge anzeigen (Anzahl: 1)
Achso, danke für den Denkanstoß!
Das habe ich noch nicht probiert.
Den Datepicker habe ich installiert, allerdings über das Backend und auch da landen die Daten leider nicht als timestamp in der Datenbank.
Da landet sowas hier in der DB:
Anhang 13324
Der Vorletzte wurde mit dem Datepicker eingetragen, die anderen von Hand, ohne installiertem Datepicker.
Eingetragen wurden die Daten 25. & 27.03.2014 mit der Startzeit 19:00 Uhr.
Den EFG raus werfen ist auch keine gute Idee, denn da hängt noch ein weiteres Formular dran.
Das Kalendermodul trägt im Übrigen die timestamps korrekt ein!