Form-Session-Data per Typoscript überprüfen mit If-Else

Hallo zusammen, aus einem gegeben Anlass wieder ein kleines Tutorial diesmal zum Thema:
IF-Else und Typo3-Session in einer Typoscript verarbeitung.

Wenn man in Typo3 einen bestimmten Content zeigen muss bevor man gewisse AGB’s akzeptiert hat, kann man das am besten über die Session und einem kleinen Formular lösen. Dazu muss man im Folgeschritt etwas am Typoscript arbeiten um dies zu Händeln.

Mein aktuelles Projekt ist sehr alt und daher wird der „Template Auto-parser“ noch verwendet, wodrauf das Beispiel beruht. Ich denke, aber das es auch eben so mit TemplaVoila läuft.

An diesem Beispiel zeige ich, wie man mit ein paar Tricks, eine kleine Content-Weiche
schaltet und dem User dazu bringen muss, etwas zu akzeptieren oder darauf zu verzichten was nach der Weiche steht.

Das Typoscript:

# Display a tt_content record
###################################
lib.agbtext = RECORDS
lib.agbtext {
tables = tt_content
source = 911,939
dontCheckPid = 1
}

# check the session-data
###################################
tmp.check = COA
tmp.check {
10 = COA
10 {
if {
value.data = TSFE:fe_user|sesData|recs|ts|akz
equals = Akzeptieren
negate=1
}
10 < lib.agbtext
  }
  20 = COA
  20 {
       if {
           value.data = TSFE:fe_user|sesData|recs|ts|akz
           equals = Akzeptieren
       }
       10 < temp.content
  }
}

# override the template-parsing
###################################
temp.mainTemplate.subparts.content < tmp.check
page.10 < temp.mainTemplate

 

Das Formular:

<div class="absatzDisclaimer">
<form method="post">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td style="width: 150px;">
        <input type="submit" name="recs[ts][akz]" value="Nicht akzeptieren"></td>
<td style="width: 150px;">
        <input type="submit" name="recs[ts][akz]" value="Akzeptieren"></td>
</tr>
</tbody>
</table>
</form></div>

 

Erklärung:

Das „lib.agbtext“ speichert 2 Datensätze von der Webseite die in einem nicht sichtbaren Bereich abgelegt werden, am besten so dass die Suchmaschine es auch nicht finden kann (SEO Hintergrund).

Das „tmp.check“ checkt die Session und zeigt je nach Zustand entweder den „lib.agbtext“ oder wenn es erfolgreich / zutreffend ist wird der aktuelle Content dargestellt.

Am Schluss wir durch das Schreiben in den Subpart wie Weiche vervollständigt. „temp.mainTemplate.subparts.content < tmp.check“

 

Viel Spaß damit 🙂
Marc

Marc Finnern: Marc Finnern ist ein FullStack-Developer. Sein Fachgebiet ist TYPO3, WordPress und InterRed. Ob Plugin, Backend oder Frontend-Arbeiten anfallen, alles ist möglich und machbar, man braucht nur die passende Idee.

This website uses cookies.