Hi,
ich habe eine eigene Extension, docarchive, mit einer Datenbank-Tabelle, die ein Datums-Feld enthält; das Datums-Feld heißt date. In der Datensatzliste im Backend möchte ich das Datum als Label ausgeben, zusammen mit einem Textfeld (title). Wenn ich das wie unten beschrieben tu, wird immer »01.01.1970« ausgegeben, das Datums-Feld scheint keinen gültigen Wert zu haben; es ist aber definitiv gesetzt (geprüft mit phpMyAdmin)!
In der ext_tables.php habe ich das Label definiert:
<?
...
include_once(t3lib_extMgm::extPath('docarchive') . 'class.tx_docarchive.php');
$TCA["tx_docarchive_entries"] = array (
"ctrl" => array (
'title' => 'LLL:EXT:docarchive/locallang_db.xml:tx_docarchive_entries',
'label' => 'title',
'label_userFunc' => 'tx_docarchive->getEntryLabel',
...
);
...
>?
In der Klasse tx_docarchive ist die Funktion getEntryLabel definiert, die das Label aus Datum und Titel zusammenbauen soll – was leider nicht funktioniert:
<?
class tx_docarchive {
function getEntryLabel($params, $parent) {
$row = $params['row'];
$label = date('d.m.Y', $row['date']) . ' ' . $row['title'];
$params['title'] = $label;
}
}
?>
Grundsätzlich ist diese Konstruktion korrekt: Der Titel-Wert, $row['title'], wird richtig im Backend ausgegeben. Davor jedoch steht der Default-Wert »01.01.1970«.
Ich habe auch Folgendes getestet:
$row['date'] ohne jede Formatierung liefert gar keinen Text.
strftime('%d.%m.%Y', $row['date']) liefert ebenfalls »01.01.1970«.
strftime('%d.%m.%Y', $row['crdate']) liefert ebenfalls »01.01.1970«.
Achtung: Im 3. Beispiel hab ich das Standard-Feld crdate ausgegeben.
Was mach ich falsch? (Ich muss einräumen, dass ich hier zum ersten Mal PHP programmiere.)
Danke für eure Hilfe!
Tosta