Am 25.03.2011 15:47, schrieb Reinhard Führicht:
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

Hallo Reinhard,

Danke für Deinen Code. Habe ich mal durchgetestet. Er funktioniert soweit fehlerfrei und wie gewünscht. Habe die Formatierung des Timestemp allerdings auf zwei Eigenschaften verteilt um flexibler zu sein.

    public function process() {

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

        return $this->gp;
    }

So kann ich getrennt mit ###value_date### und ###value_time### arbeiten.

Danke für die prima Hilfe

Gruß

Martin
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an