Zum Inhalt springen

cal base Datum zu powermail übergeben

Erstellt am 8. Oktober 2010 · 7 Antworten · letzte Antwort am 16. November 2010

Tags: Powermail, Kalender & Termine, Frage

Peddar86 ·

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

m.​z.​ ·

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

Peddar86 ·

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

m.​z.​ ·

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 ·

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

einpraegsam.​net ·
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.