TYPO3 Blog ++ Typoscript ++ Cookies, POST und GET Variablen per Typoscript ausgeben

Cookies, POST und GET Variablen per Typoscript ausgeben

Cookies, POST und GET Variablen per Typoscript ausgeben

Cookies anzeigen per Typoscript
Cookies in Typoscript - Foto: Bernd Boscolo, aboutpixel.de

Der data Parameter des TEXT-Objekts in TYPO3 ist vielseitig und zum Teil wenig bekannt. Unter anderem kann man mit Hilfe des data Parameters auch in TYPO3 Cookies per Typoscript anzeigen. Aber auch zum Anzeigen von GET- und POST Parametern und zur Anzeige von weiteren Server-Variablen wie z.B. der IP Adresse des Besuchers lässt sich der data Parameter des TEXT.Objekts in Typoscript nutzen.

Typoscript Referenz zum Thema Datatyp

Weitere Informationen - leider nur auf Englisch - über die Möglichkeiten des .data Attributes finden sich auch hier:
Typoscript Datatype reference

Cookies in TYPO3 per Typoscript anzeigen

   temp.mycookie = TEXT
   temp.mycookie.data = global : HTTP_COOKIE_VARS | mycookie
   temp.mycookie.ifEmpty = Cookie "mycookie" war nicht gesetzt

Dieser Typoscript Code gibt den Inhalt des Cookies Namens “mycookie” aus, wenn dieser gesetzt war. Ansonsten gibt er den alternativen Text ‘Cookie “mycookie” war nicht gesetzt’ aus.

Mit .data Attribut des Typoscript TEXT-Objekts GET- und POST Variablen anzeigen

GET- und POST Variablen, z.B. aus Ergebnissen von Formulareingaben können ebenfalls über data angezeigt werden:

   temp.mycookie = TEXT
   temp.mycookie.data = GPvar : formular
   temp.mycookie.ifEmpty = Formular wurde noch nicht abgesendet

GPvar unterscheidet leider nicht zwischen POST- und GET Variablen was bei standardmäßig vorhandenen GET-Variablen (z.B. id und type) zu Verwirrungen führen kann. Deshalb sollte man solche Benennungen vermeiden.

Cookie zum Auswählen eines Datensatzes nutzen

Wenn der Cookie nun Beispielsweise nicht einen auszugebenden Text sondern die ID eines Datensatzes (zum Beispiel aus tt_address) enthielt, kann man den Cookie wie folgt zu einer Datenbankabfrage per Typoscript nutzen:

temp.main.15 = CONTENT
temp.main.15 {
  table = tt_address
  select {
    pidInList = 13
    where.stdWrap.cObject = TEXT
    where.stdWrap.cObject.data = global : HTTP_COOKIE_VARS | meine_adresse
    where.stdWrap.cObject.wrap = uid = |
  }
  renderObj = COA
  renderObj {
    10 = TEXT
    10.value = <h1>Adresse</h1>
    20 = TEXT
    20.field = name
    20.wrap = <p>|<br/>
    30 = TEXT
    30.field = address
    30.wrap = |<br/>
    40 = TEXT
    40.field = zip
    40.noTrimWrap = || |
    50 = TEXT
    50.field = city
    50.wrap = |</p>
  }
}

Achtung, CONTENT zeigt nur Inhalte von Datensätze an, die auf einer Seite liegen, die TYPO3 anzeigen würde. Datensätze, deren pid auf SYSORDNER, versteckte, gelöschte oder ähnliche nicht-anzeigbaren Seiten liegen werden vom Typoscript Objekt CONTENT nicht angezeigt!

, , , , , , , , , , , , , , ,

Hinterlasse eine Antwort