Checkboxen
Hach ja wie schön, schon wieder eine Umsetzung von sr_feuser_register. Auch wenn sie ja noch so flexibel ist, sie ist doch auch sehr sperrig. Denn wo der gesunde Menschenverstand aufhört fängt sie an.
Diesmal war die Herausforderung eine AGBs-Checkbox zu integrieren. So weit so gut. Die Checkbox an sich war auch noch nicht mal dramatisch. Das HTML war schnell zusammen getackert.
<code><!-- ###SUB_INCLUDED_FIELD_tx_myext_agb### -->
<dt>
<label for="tx-srfeuserregister-pi1-tx_myext_agb">###REQUIRED_TX_EWHEELSFEUSER_AGB### ###LABEL_TX_EWHEELSFEUSER_AGB###</label>
</dt>
<dd>
<!-- ###SUB_REQUIRED_FIELD_tx_myext_agb### -->
<p class="tx-srfeuserregister-pi1-error">###MISSING_TX_EWHEELSFEUSER_AGB###</p>
<!-- ###SUB_REQUIRED_FIELD_tx_myext_agb### -->
###TCA_INPUT_tx_myext_agb###
</dd>
<!-- ###SUB_INCLUDED_FIELD_tx_myext_agb### --></code>
Die dazugehörige Datenbankdefinition mit dazugehörigem TCA war noch viel schneller erstellt. Einfach den Kickstarter anschmeissen und die fe_user Tabelle um das Feld vom Typ Checkbox erweitert.
Doch dann man soll ja den Morgen nicht vor dem Abend loben. Denn nur weil der eine Teil leicht war, heisst das nicht, das es so bleibt. Denn noch fehlt das Typoscript.
<code>plugin.tx_srfeuserregister_pi1 {
_LOCAL_LANG.de {
tx_myext_agb = Hiermit bestätige ich, dass ich den Vertrag gelesen habe und ihn akzeptiere
missing_tx_myext_agb = Bitte markieren Sie die Checkbox am Ende des Vertrages, um die Registrierung zu beenden!
}
create {
fields = ...,www,image,tx_myext_agb
required = ...,tx_myext_agb
}
}</code>
Auch alles noch im Lot... oder doch nicht? Hmm testen wir den Kram mal und... Mist warum kann ich mich ohne Checkbox aktivieren anmelden? Noch mal zurück und wieder testen. Auch diesmal keine Änderung. Anmeldung akzeptiert ohne die AGBs zu akzeptieren.
Das wird der Kunde gar nicht mögen. Also fragen wir mal Onkel Google und Tante typo3-Forum. Nach sage und schreibe zwei Stunden fällts wie Schuppen von den Augen. Denn das einzige was noch fehlte ist wirklich nicht weltbewegend aber dafür sehr störend.
<code>plugin.tx_srfeuserregister_pi1.create.evalValues.tx_myext_agb = required</code>
Eine einfache Validierung auf required hat mehr Erfolg als die Festlegung als Required-Field. Was der Herr Gott warum das nicht das gleiche ist. Ich für meinen Teil habe die Lösung endlich. Viel Spass damit.