contao/import — Issue #2980: Optionale Datumsfelder im DCA
Author: importer
Created: 2011-11-29 20:38:42+00:00
State: closed
Labels: backend, Defect, Invalid

Hallo,

Würde gerne ein optionales Datum für einen DC abfragen (default aus dem DCA ist `null`). Zum speichern des Werts nehme ich eine SQL unsigned int default 0 column?
Bei besteht folgendes Problem:
Nach dem ein Datensatz mit nicht ausgefülltem Datumfelds gespeichert wurde, wird in der DB automatisch "0" eingetragen. Nun wird beim erneuten Laden aus der DB und anzeigen im Edit-View das aktuelle Datum eingetragen, das man wieder löschen muss bevor man den Datensatz speichert.
Im Prinzip sollte das Feld leer bleiben, wenn "0" in der Datenbank steht, damit die Validierung des Feldes nicht fehlschlägt ("0" passt nicht zum Datumsregex, "" schon).

Die Ursache liegt in `Controller::prepareForWidget(..)` Zeile 2376ff, ich würde dafür folgende Anpassung vorschlagen:

```
if (in_array($arrData['eval']['rgxp'], array('date', 'time', 'datim')))
{
if($arrNew['mandatory'] || $varValue > 0) {
$objDate = new Date($varValue);
$arrNew['value'] = $objDate->{$arrData['eval']['rgxp']};
} else {
$arrNew['value'] = '';
}
}
```

--- _Originally created by backbone on April 1st, 2011, at 03:07pm (ID 2980)_