[TYPO3-german] Timestamp in Formhandler

Reinhard Führicht rf at typoheads.at
Fri Mar 25 15:47:26 CET 2011


Am 2011-03-25 10:59, schrieb Martin Ceglarek:
> Hallo Reinhard,
>
> danke für Deine Antwort und für die erstklassige Extension. Habe Deine
> Vorschläge mal durchgetestet. Sie funktionieren beide an sich
> einwandfrei (für andere Leser: in Zeile data = GP:formhander|formtime
> ist ein Tippfehler. Muss heißen data = GP:formhandler|formtime). Sie
> reichen aber nicht so weit, wie ich sie einsetzen möchte.
>
> Die benutzerdefinierten Marker aus
> plugin.Tx_Formhandler.settings.markers lassen sich zwar in den Subparts
> der (X)HTML-Templates nutzen, sind aber in den Labels von LLL wie es
> scheint nicht anwendbar, wie etwa die ###value_feldname###-Marker
> (###value_formtime### liefert ja den unformatierten Timestamp ja in die
> Labels).
>
> Eine solcher Einsatz in LLL wäre aber für saubere Mehrsprachigkeit
> nötig. Das Zerlegen der Labels in Teil-Strings und ihre Zusammensetzung
> im Subpart wäre da zwar eine Lösung. Sie verkompliziert die Sache aber
> sehr und stellt Übersetzer vor große Herausforderungen, da sie dann
> Teilsätze in durchaus abweichender Syntax lokalisieren müssen, was sehr
> pflegeintensiv ist.
>
> Wüsstest Du einen Weg, wie ich die Werte der benutzerdefinierten Marker
> in die Labels bekommen kann?
>
> Gruß
>
> Martin
>
> Am 24.03.2011 16:17, schrieb Reinhard Führicht:
>> Am 2011-03-24 12:15, schrieb Martin Ceglarek:
>>> Hallo zusammen,
>>>
>>> möchte gern in Formhandler-E-Mails mit Datums- und Zeitangaben von
>>> Formularversand arbeiten. Habe dazu den Marker ###TIMESTAMP### genommen.
>>> Finde aber keine Möglichkeit, seinen Wert so mit stdWrap zu formatieren,
>>> dass daraus etwa verwertbare Marker (etwa ###DATE### und ###TIME###) für
>>> E-Mail-Templates generierbar wären.
>>>
>>> Mein Kandidat war Interceptor_ParseValues. Der formatiert aber nur
>>> floats.
>>>
>>> Hat jemand einen Tipp für mich?
>>>
>>> Gruß
>>>
>>> Martin Ceglarek
>>
>> Hallo Martin
>>
>> Du kannst:
>>
>> * Den Timestamp selber generieren:
>>
>> plugin.Tx_Formhandler.settings.markers {
>> myTimeStamp = TEXT
>> myTimeStamp {
>> data = date : U
>> strftime = %d.%m.%Y %H:%M:%S
>> }
>> }
>>
>> * Oder auf den im Formular übertragenen Timestamp zurückgreifen:
>>
>>
>> plugin.Tx_Formhandler.settings.markers {
>> myTimeStamp = TEXT
>> myTimeStamp {
>> data = GP:formhander|formtime
>> strftime = %d.%m.%Y %H:%M:%S
>> }
>> }
>>
>> Den Marker ###myTimeStamp### kannst du dann in allen Subparts verwenden.
>>
>> Viele Grüße,
>> Reinhard
>>
>>
>

Hallo Martin,

du hast Recht, für diese Anforderung reichen dir solche Mittel nicht.

Da hilft es wohl nur mehr einen eigenen Interceptor zu schreiben, der 
dir den Timestamp formatiert und speichert.

Ich habe den Code nicht getestet, also keine Garantie.

z.B.:

class Tx_Formhandler_Interceptor_Timestamp extends 
Tx_Formhandler_AbstractInterceptor {

	public function process() {

		$date = strftime('%d.%m.%Y %H:%M:%S');
		$this->gp['date'] = $date;
	
		return $this->gp;
	}

}

Die Klasse kannst du als Tx_Formhandler_Interceptor_Timestamp.php im 
fileadmin ablegen und dann im Formhandler verwenden.

Bsp:

Klasse liegt in fileadmin/scripts/

plugin.Tx_Formhandler.settings {

   additionalIncludePaths.1 = fileadmin/scripts/

   saveInterceptors.1.class = Interceptor_Timestamp

}

Der Marker ###value_date### enthält dann das formatierte Datum.

Viele Grüße,
Reinhard


More information about the TYPO3-german mailing list