19.05.2011  TYPO3

Direct_mail_subscription um Felder erweitern

Aufgabenstellung

Neben den Standardfeldern der direct_mail_subscription Name, E-Mail und HTML-Empfang sollen weitere Felder zur Newsletteranmeldung abgefragt und in die Tabelle tt_address abgespeichert werden.

Dazu muss man im Template das <!-- ###TEMPLATE_CREATE### ---> anpassen und die gewünschten Felder nach dem Muster name="FE[tt_address][meinFeld]" anlegen. Sollten die gewünschten Felder nicht in tt_address vorhanden sein, kann man diese entweder mittels einer eigenen Extension hinzufügen oder man "missbraucht" vorhandene Felder, die nicht benötigt werden. In diesem Fall habe ich die Felder phone und title als Anrede bzw. Vorname verwendet.

Das Template sieht bei mir dann so aus:

<!-- ###TEMPLATE_CREATE### begin -->
<FORM name="tt_address_form" method="post" action="###FORM_URL###">
	<fieldset>
		<legend>text</legend>
	<div>
		<label for="anrede">Anrede:</label>
		<select name="FE[tt_address][phone]">
			<option value="Herr">Herr</option>
			<option value="Frau">Frau</option>
		</select>
	</div>
	<div>
		<label for="vorname">Vorname:</label>
		<input type="text" name="FE[tt_address][title]" />
	</div>
	<div>
		<label for="Name">Name:</label>
		<input type="text" name="FE[tt_address][name]" />
		<!--###SUB_REQUIRED_FIELD_name### begin -->
		<br /><font color=red><strong>Bitte ausfüllen!</strong></font><br />
		<!--###SUB_REQUIRED_FIELD_name### end -->
	</div>
	<div>
		<label for="strasse">Straße:</label>
		<input type="text" name="FE[tt_address][address]" />
	</div>
	<div>
		<label for="plz">PLZ:</label>
		<input type="text" name="FE[tt_address][zip]" />
	</div>
	<div>
		<label for="ort">Ort:</label>
		<input type="text" name="FE[tt_address][city]" />
	</div>
	<div>
		<label for="email">E-Mail:</label>
		<input type="text" name="FE[tt_address][email]" />
		<!--###SUB_REQUIRED_FIELD_email### begin -->
		<br /><font color=red><strong>Bitte ausfüllen!</strong></font><br />
		###EVAL_ERROR_FIELD_email###<br />
		<!--###SUB_REQUIRED_FIELD_email### end-->
	</div>
	<div>
		<label>HTML emails?</label>
		<input type="checkbox" name="FE[tt_address][module_sys_dmail_html]" value=1 />
	</div>
	<div>
		<input type="image" tabindex="9" alt="Senden" src="fileadmin/images/senden.gif" />
	</div>
		###HIDDENFIELDS###
		<p>Sie sind bereits angemeldet und möchten Ihr Profil löschen, 
                 <a href="###FORM_URL###&cmd=infomail&backURL=###FORM_URL_ENC###">
                 dann klicken Sie hier.</a></p>
	</fieldset>
</FORM>
<!-- ###TEMPLATE_CREATE### end-->

Zur Gestaltung kann man natürlich jedem Element noch eine Klasse mitgeben.

Jetzt muss man der Extension noch die weiteren Felder mitteilen, damit die Werte auch abgespeichert werden. Dazu folgendes Typoscript auf der Seite des Formulars einfügen:

plugin.feadmin.dmailsubscription {
  create.fields = phone, title, name, address, zip, city, hidden, email, module_sys_dmail_category, module_sys_dmail_html
  create.defaultValues.module_sys_dmail_html = 1
}

Die zweite Zeile dient dazu, die Checkbox zum Empfamg von HTML-Mails standardmäßig zu aktivieren.

Um die Redakteure nicht mit den umbenannten Feldern zu verwirren, kann man noch die Labels im Backend umbenennen. Dazu in den Seiteneigenschaften des Sysfolders, in dem die tt_address-Datensätzen abgespeichert werden, Folgendes in das Seiten-TS schreiben:

TCEFORM.tt_address.phone.label = Anrede
TCEFORM.tt_address.title.label = Vorname
  •  
  • 0 Kommentar(e)
  •  

Mein Kommentar

Ich möchte über jeden weiteren Kommentar in diesem Post benachrichtigt werden.

Zurück