Hallo Zusammen!
Ich habe folgendes Problem. Und zwar das Datumsformat von cal base.
Ich habe es soweit geschafft, dass ich bestimmte Felder aus cal base auslesen und an powermail weitergeben kann.
Das Problem nun ist aber, dass das ausgelesene Datum im folgendem Format erscheint:
YYYYMMDD
Habe hier im Forum auch schon den Thread gefunden, wie man es umwandelt. (
#85825 )
Ich weiß aber nicht wo ich dieses php Script einbinden muss, damit mein Datum bei der Übergabe zu powermail im gewünschten Format erscheint (DD.MM.YYYY). :-(
Da bräuchte ich nun einmal bitte die Hilfe von euch.
Vielen Dank im Voraus!
Gruß
Peddar
Hallo Peddar,
es kommt darauf an, wie Du die Daten aus CAL in POWERMAIL einbindest.
Wenn Du TypoScript verwendest, kannst Du möglicherweise stdWrap + Formatierung verwenden.
Zeige mir doch mal Deinen Lösungsansatz mit den entspr. Scripten. Dann kann ich Dir weiterhelfen.
VG, Matthias
Hallo Matthias,
ja genau ich lese die Daten mit folgendem Code per TypoScript aus.
lib.kursbeg = CONTENT
lib.kursbeg {
table = tx_cal_event
select {
pidInList = 31
andWhere {
data = GPVar:tx_cal_event|uid
wrap = tx_cal_event.uid=|
}
}
renderObj = TEXT
renderObj.field=start_date
}
plugin.tx_powermail_pi1 {
prefill {
uid3 < lib.kursbeg
}
}
Ich lasse die Daten in der Listenansicht von CAL anzeigen und lasse sie dann durch einen Klick auf einen Button (Weiterleitung zu Powermail Formular) in die Powermail-Felder füllen.
Folgender Code steckt hinter diesem Button
<form action="http://domain.de/index.php?id=32&tx_cal_event[uid]=###UID###" method="post">
<input type="submit" value="Anmelden"/>
</form>
Problem ist halt nur die Formatierung des Datums :-(
Schon mal vielen Dank im Voraus für deine Mühen!
VG
Peddar
Hallo Peddar,
die Lösung aus der o.g. Quelle kannst Du nur in einer eigenen PHP Function z.B. in einer eigenen Extension oder Userfunc verwenden.
Das Problem ist, daß cal das Datum nicht als normalen Unix-Timestamp abspeichert sonder im Format JJJJMMTT.
Per TS kannst Du das vielleicht so lösen (völlig ungetestet und aus dem Bauch heraus):
renderObj = TEXT
renderObj {
// Tag
10 = TEXT
10.field=start_date
10.stdWrap.substring = 7,2
10.wrap = |.
// Monat
20 = TEXT
20.field=start_date
20.stdWrap.substring = 4,2
20.wrap = |.
// Jahr
30 = TEXT
30.field=start_date
30.stdWrap.substring = 0,4
}
Möglicherweise muß das anders geschrieben werden aber die Funktion ist:
Bilde einen String aus den Teilen:
- 2 Zeichen für Tag
- dahinter einen '.'
- 2 Zeichen für Monat
- dahinter einen '.'
- 4 Zeichen für Jahr
Damit aus JJJJMMTT dann TT.MM.JJJJ wird.
VG, Matthias
@Peddar86: Bei deiner Lösung unbedingt noch intval verwenden und die Variable gegen SQL Injection absichern
Vielen, vielen Dank Matthias! Genau den Denkanstoß habe ich gebraucht. Nun klappt alles so wie ich es mir vorgestellt habe.
Hier die Lösung:
lib.kursbeg = CONTENT
lib.kursbeg {
table = tx_cal_event
select {
pidInList = 31
andWhere {
data = GPVar:tx_cal_event|uid
wrap = tx_cal_event.uid=|
intval = 1
}
}
renderObj = COA
renderObj {
10 = TEXT
10{
field=start_date
stdWrap.substring = 6,2
wrap = |.
}
20 = TEXT
20{
field=start_date
stdWrap.substring = 4,2
wrap = |.
}
30 = TEXT
30{
field=start_date
stdWrap.substring = 0,4
}
}
@einpraegsam.net
Ich habe mir zu diesem Thema nun schon einiges angelesen, aber weiß nicht genau, wie ich es umsetze.
z.B: http://t3n.de/magazin/typo3-extensions-absichern-sicherheitslucken-eigenen-221198/10/
Das heißt also auch, dass ich diese Absicherung für jedes einzelne Feld, welches ich von cal base nach powermail übertrage, einbauen muss. Richtig? Egal ob String oder Integer?
Viele Grüße und nochmals Danke
Peddar
Peddar86 schrieb
Das heißt also auch, dass ich diese Absicherung für jedes einzelne Feld, welches ich von cal base nach powermail übertrage, einbauen muss. Richtig? Egal ob String oder Integer?
Du übergibst nur eine Variable und das ist die UID. Diese zwingst du ja (in deinem letzen Code) eine Zahl zu sein. Das ist genau so richtig.
Okay super! Dann nochmals vielen Dank an euch Beide!
Viele Grüße
Peter