Category: Sinnvoll

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
}
}
}
}

Powermail Feld mit Daten aus FE-User vorbelegen

 

 

Bei Powermail lassen sich Felder relativ leicht mit Daten aus dem aktuell angemeldeten Fe_user vorbelegen. Dazu muss man einfach nur bei der Bearbeitung des Formularfeldes ganz unten unter “Zusätzliche Einstellungen” bei “Dieses Feld mit Daten aus der fe_user füllen” den Wert des FE Users angeben (z.B. Name oder Adresse), der angezeigt werden soll.

Was aber, wenn man einen Wert des Fe-Users verwenden möchte, der noch nicht in der List auftaucht? Zum Beispiel den Skypenamen der Erweiterung mm_forum?

Dazu muss man das TCA ändern, also die Datei typo3conf/extTables.php editieren und dort ganz unten (oberhalb des schließenden ?>) folgendes eintragen:

$TCA[‘tx_powermail_fields’][‘columns’][‘fe_field’][‘config’][‘items’][1][0] = ‘Skype Name’;
$TCA[‘tx_powermail_fields’][‘columns’][‘fe_field’][‘config’][‘items’][1][1] = ‘tx_mmforum_skype’;

Danach den gesamten Cache leeren.

Vorsicht, wenn man in dieser Datei einen Syntaxfehler macht, lässt sich das Backend nicht mehr öffnen. In dem Fall den Fehler beheben und dann den BE-Cache manuel löschen, in dem man im Verzeichnis typo3conf alle Dateien löscht, die mit temp_CACHED_ beginnen.