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