Hallo!
Versuche schon seit einer Weile, das Datum in tt_news mittels date zu formatieren. Sollte ja eigentlich möglich sein, da plugin.tt_news.displayList.date_stdWrap ja ein stdWrap ist der laut TS-Referenz ja ein .date anbietet. Wenn ich .strftime benutze, funktioniert auch alles wunderbar, nur bei .date beachtet er die Formatierung nicht und zeigt immer 1. January 1970 an. In der TSRef steht unter stdWrap.strftime "Exactly like "date" above.", deshalb verstehe ich nicht, warum strftime funktioniert und date nicht.
Ziel des Ganzen ist übrigens, im Englischen beim Datum ein 1st, 2nd, 3rd usw. anzugeben, was strftime ja nicht anbietet.
Hier ist mein Code bisher:
// Deutsche Datumsformatierungen
plugin.tt_news.displayList.date_stdWrap.strftime = %e. %B %Y
plugin.tt_news.displayLatest.date_stdWrap.strftime = %e. %B %Y
plugin.tt_news.displaySingle.date_stdWrap.strftime = %e. %B %Y
// Englische Datumsformatierungen (noch nicht endgültig!)
[globalVar = GP:L = 1]
plugin.tt_news.displayList.date_stdWrap.date = jS
plugin.tt_news.displayLatest.date_stdWrap.date = jS
plugin.tt_news.displaySingle.date_stdWrap.date = jS
[global]
Kann mir jemand helfen?
Habe mal ein wenig im TYPO3-Quellcode geforscht, ob das ein generelles Problem mit stdWrap.date ist. Habe in der Zeile 3.238 der Datei /typo3_src-4.2.1/typo3/sysext/cms/tslib/class.tslib_content.php folgendes eingefügt:
if ($conf['date']){$content=date($conf['date'], $content);
print("<!-- ".$content." -->"); // Eingefügte Zeile}
Im HTML-Quelltext habe ich dann auf den entsprechenden News-Seiten auch das formatierte Datum, in den News-Einträgen an sich ist es jedoch immer noch der (unformatierte) 1. Januar. stdWrap.date scheint an sich also zu funktionieren, jedoch hakt es beim date_stdWrap aus tt_news.
Weiß vielleicht jetzt jemand weiter?
So, des Rätsels Lösung: Als ich mir über /typo3conf/ext/tt_news/class.tx_ttnews.php mal den Array $lConf['date_stdWrap.'] habe ausgeben lassen, kam folgendes zum Vorschein:
array(2) {
["strftime"]=>
string(8-) "%d.%m.%y"
["date"]=>
string(2) "jS"
}
Da ich nirgenwo im TypoScript date_stdWrap.strftime gesetzt habe, scheint tt_news standardmäßig date_stdWrap.strftime zu setzen. Da strftime laut TSRef (http://wiki.typo3.org/index.php/De:TSref/stdWrap) vor date ausgeführt wird, erhält date() statt des erwarteten Timestamps ein mit strftime formatiertes Datum. Damit kann date() natürlich nichts anfangen und gibt den 1. Januar 1970 zurück.
Lösung:
Letztendlich muss man im TypoScript zunächst die strftime-Konfiguration der gewünschten date_stdWrap-Objekte löschen, damit (nur) date_stdWrap.date wirksam wird.
# strftime löschen
plugin.tt_news.displayList.date_stdWrap.strftime >
plugin.tt_news.displayLatest.date_stdWrap.strftime >
plugin.tt_news.displaySingle.date_stdWrap.strftime >
# date setzen
plugin.tt_news.displayList.date_stdWrap.date = F jS, Y
plugin.tt_news.displayLatest.date_stdWrap.date = F jS, Y
plugin.tt_news.displaySingle.date_stdWrap.date = F jS, Y