Mit TypoScript Datum komplex formatieren

 

Angenommen, wir verwenden tt_news für Events mit Start- und Endzeitpunkt. Nun ergibt sich folgendes Problem:

Bei eintägigen Veranstaltungen, soll dass Datum nur einmal ausgegeben werden:

Von Samstag, 5. Mai 2017 09:00 Uhr bis 17:00 Uhr

Bei mehrtägigen Veranstaltungen soll das Enddatum natürlich eingetragen sein, jedoch soll bei noch nicht bekannten Uhrzeiten (als 0:00 Uhr eingetragen) die Uhrzeit weggelassen werden:

Von Montag, 5. Dezember 2016 bis Samstag, 28. Januar 2017

Das komplexe Datum lässt sich wie folgt als generischen Marker (###GENERIC_TERMIN###) für tt_news definieren, dafür ist ab tt_news Version 3.0 keine zusätzliche Extension mehr notwendig:

plugin.tt_news.genericmarkers {
termin = COA
termin {
wrap = <p>|</p>
5 = TEXT
5.value = Von
10 = TEXT
10 {
wrap = |
field = datetime
strftime = %A, %e. %B %Y
fieldRequired = datetime
# Wenn nicht genau 0 Uhr, wir müssen die Uhrzeit formatiert vergleichen,
# denn das Datum kann gesetzt sein.
if {
value = 00:00
equals.field = datetime
equals.strftime = %H:%M
negate = 1
}
}
20 = TEXT
20 {
wrap =  | Uhr
field = datetime
strftime = %H:%M
fieldRequired = datetime
}
23 = TEXT
23 {
value = bis
fieldRequired = tx_wbnewsevents_enddate
}
25 = TEXT
25 {
wrap = |
field = tx_wbnewsevents_enddate
strftime = %A, %e. %B %Y
fieldRequired = tx_wbnewsevents_enddate
# wir vergleichen dass formatierte Datum,
# da sich die Uhrzeiten unterscheiden können.
if {
value.field = datetime
value.strftime = %A, %e. %B %Y
equals.field = tx_wbnewsevents_enddate
equals.strftime = %A, %e. %B %Y
negate = 1
}
}
30 = TEXT
30 {
wrap =  | Uhr
field = tx_wbnewsevents_enddate
strftime = %H:%M
fieldRequired = tx_wbnewsevents_enddate
# Wenn nicht genau 0 Uhr
if {
value = 00:00
equals.field = tx_wbnewsevents_enddate
equals.strftime = %H:%M
negate = 1
}
}
}
}