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
&#91;/code&#93;
<p>&nbsp;</p>
<p><strong>Das Formular:</strong></p>

<div class="absatzDisclaimer">
  <form method="post">
    <table cellspacing="0" cellpadding="0" border="0"><tbody>
      <tr>
        <td style="width: 150px;">
        <input type="submit" name="recs&#91;ts&#93;&#91;akz&#93;" value="Nicht akzeptieren"></td>
        <td style="width: 150px;">
        <input type="submit" name="recs&#91;ts&#93;&#91;akz&#93;" 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.