Hallo Zusammen,
ich erstelle gerade ein kleines Modul in dem ich Wochentage mit ihrem Datum und Namen in der BE-Liste auflisten möchte.
Mein Datum speichere ich dabei als Timestamp ab, wodurch die Sortierung in der Liste klappt, mir aber auch der Timestamp statt dem Datum als Label angezeigt wird.
Als Lösung dafür habe ich mir ein weiteres Feld "dateClean" erstellt, in das ich per save_callback vom Feld "date" das formatierte Datum eintragen lassen möchte, damit statt dem Timestamp dieses Datum in der Liste angezeigt wird.
Das ist meine Funktion und mein Feld:
Code:
'date' => array
(
'exclude' => true,
'search' => true,
'inputType' => 'text',
'eval' => array('mandatory' => true,'rgxp'=>'date', 'datepicker'=>true, 'tl_class'=>'w50 wizard'),
'sql' => "varchar(10) NOT NULL default ''" ),
'save_callback' => array
(
array('tl_speiseplan_tag', 'generateDate')
),
'dateClean' => array
(
'sql' => "varchar(255) NULL default ''",
),
Code:
public function generateDate($varValue, DataContainer $dc)
{
$date = $dc->activeRecord->date;
$date = date('d.m.Y',$date);
$id = $dc->activeRecord->id;
$sql = 'UPDATE `tl_speiseplan_tag` SET `dateClean` = ? WHERE `id` = ?';
$this->Database->prepare($sql)->execute($date,$id);
}
Relativ simpel eigentlich, nur wird das SQL nicht ausgeführt... habe ich da irgendetwas falsch gemacht? Ich arbeite mich gerade in die tiefere Contao Programmierung ein, habe daher noch nicht so viel Erfahrung mit den Contao Klassen & Methoden...
Lesezeichen