Ein Kampf, aber es geht – mit TypoScript und eigentlich recht logisch. Und auch mit powermail_doubleoptin.
Die direct_mail_subscription ist eigentlich so ziemlicher Müll (inzwischen absolut outdated). Eine ziemlich einfache Registrierung lässt sich auch mit powermail realisieren, da powermail ja die Daten auch in die DB speichert.
- Felder anlegen. In meinem Beispiel sind das vier Stück
- Name (Textfeld, uid10)
- Email (Textfeld, uid 11)
- Kategorien für DirectMail (ich hab hier Checkboxen gewählt, uid12. Wichtig: den Checkboxen den Wert der Kategorie-ID vergeben)
- Absendenbutton
- Wer noch das Double-OptIn eingerichtet hat, hier frei nach Schnautze konfigurieren.
- Dann für diese Seite ein EXT-Template anlegen und folgenden Code ins TS. Mein Beispiel speichert die Daten in die fe_users. tt_address ginge dann analog.
plugin.tx_powermail_pi1 {
# extern db entry (example for tt_adress)
dbEntry {
# enable or disable db entry for fe_users
fe_users {
_enable = TEXT
_enable.value = 1
# write only if field is not yet filled
# (update – update values of existing entry)
# (none – no entry if field is filled)
# (disable – always add values – don’t care about existing values)
_ifUnique.email = update
# add mm relation to uid 2 of fe_users_group (via mm table)
_mm = COA
_mm {
10 = COA
10 {
# 1 ist die mm-Tabelle
1 = TEXT
1.value = sys_dmail_feuser_category_mm
# 2 ist immer die Kategorientabelle
2 = TEXT
2.value = sys_dmail_category
# 3 ist immer die ID des zu verknüpfenden Datensatzes – hier die uid 1 der sys_dmail_category
3 = TEXT
3.value = 1
# Und wir wollen jetzt noch abfragen, ob die Checkbox für diese Kategorie überhaupt gesetzt ist.
3.if.value.data = TSFE:fe_user|sesData|powermail_72|uid12|0
3.if.equals = 1
}
# Kopieren wir die Daten für eine zweite Checkbox / Kategorie
20 < .10
20 {
3.value = 2
3.if.value.data = TSFE:fe_user|sesData|powermail_72|uid12|1
3.if.equals = 2
}
}
# Die E-Mail-Adress abspeichern
email = TEXT
email.data = TSFE:fe_user|sesData|powermail_72|uid11
# hier die PID, in der die Datensätze gespeichert werden sollen
pid = TEXT
pid.value = 9
# die Usergroup setze ich erst mal auf 0
usergroup = TEXT
usergroup.value = 0
# der Username soll auch gleich der E-Mail-Adress sein.
username = TEXT
username.data = TSFE:fe_user|sesData|powermail_72|uid11
# jetzt noch das crdate und den tstamp mit dem aktuellen Zeitstempel füllen
tstamp = TEXT
tstamp.data = date:U
crdate = TEXT
crdate.data = date:U
# Und den Namen des Benutzers
name = TEXT
name.data = TSFE:fe_user|sesData|powermail_72|uid10
}
}
}
Dann noch einen Tipp für alle, die auch Updates machen wollen – wie ich: in der powermail/lib/class.tx_powermail_db.php muss der Kommentar in Zeile 137 wieder rausgenommen werden. Also statt
muss es heißen




















Ich wundere mich nur: ist es eigentlich möglich, das auch auf einem System mit mehreren gehosteten Websites aufzusetzen? Das Problem, was ich sehe, ist, dass, wenn ich mit “ifUnique” checke, die Mail zwar überprüft wird, aber dann lediglich der vorhandene Beitrag aus einem anderen Ordner in der Tabelle überschrieben wird, wenn der Nutzer sich für einen Newsletter auf einer anderen Seite mit seiner Mailadresse angemeldet hat. Oder ist es irgendwie möglich zu checken, ob die Mailadresse in Verbindung mit der PID vorhanden ist?
LG
Austragungen sind problemlos möglich.
Einfach zwei Checkboxen mit den Werten 0 und 1 zum Ein- bzw. Austragen und die Werte dann in das Feld “hidden” oder “deleted” speichern. Fertig
das mit dem Austragen aus dem Newsletter würde mich auch interessieren.
lg
Hallo,
vielen Dank für die äußerst gelungene Anleitung. Bei mir hatte es aber leider auf Anhieb nicht funktioniert. Der mm_relation Eintrag funktionierte erst nach folgenden Zeilen.
3 = TEXT
3.value = 1
3.if.isTrue.data = TSFE:fe_user|sesData|powermail_3|uid12|0
den Vergleich über .equals habe ich ganz entfernt.
Viele Grüße
Martin
Hi,
guter Artikel, eine Frage bleibt offen, woher kommt die 72 aus z.B. TSFE:fe_user|sesData|powermail_72|uid11 ?
Hab das mal umgemünzt auf tt_adress, Eintrag wird angelget aber Felder bleiben leer, denke da kommen die daten nicht an. Habe mal geraten ob die 72 die pageID des Formulars ist … hat leider auch nichts gebracht.
Grüße
Thorsten
Hallo,
wie ich sehe ist es möglich über Powermail für Eintragungen in den Newsletter zu benutzen. Das werde ich bei nächster Gelegenheit mal probieren. Sind Austragungen vom Newsletter ebenfalls damit möglich?
Gruß
fkotzek4