Zum Inhalt springen

Newsletter Anmeldung: Falsch vorselektierte Kategorien bei Profiländerung

Erstellt am 5. August 2008 · 4 Antworten · letzte Antwort am 23. März 2009

Tags: tt_address, Direct Mail, Frage

Unbekannter Benutzer ·

Hallo zusammen!

Ich häng hier schon ewig an einem Problem und komme nicht weiter. Vielleicht kann mir hier jemand helfen?

Extensions:
- tt_address 2.2.1
- direct_mail 2.6.0
- df_direct_mail_subscription 1.0.3 (bzw. direct_mail_subscription 1.1.0)

Grundsätzlich funktioniert das Anmelden/Abmelden für den Newsletter problemlos.

Der Besucher kann bei der Anmeldung bis zu 7 Kategorien auswählen. Diese werden auch richtig gespeichert.

Allerdings gibt es Probleme, wenn der Benutzer sein Profil editieren will. Es werden in dieser Anzeige immer Kategorien vorselektiert, die der Benutzer bei der Anmeldung gar nicht abonniert hatte und auch nicht in der Datenbank gespeichert sind.

Ein Beispiel:

Die Anmeldung:
Bild: img132.imageshack.us/…/anmeldungcz6.th.gif

Der Benutzer wählt bei der Anmeldung die Kategorien D, E, F und G.

Im Typo3-BE sieht der Datensatz so aus:
Bild: img363.imageshack.us/…/typo3betk9.th.gif

Wie zu sehen werden auch hier die Kategorien korrekt gespeichert.

Will der Benutzer später sein Profil bearbeiten und verwendet dazu den Edit-Link aus der entsprechenden Email, sieht sein Profil aber immer so aus:
Bild: img104.imageshack.us/…/editma9.th.gif

Wie man sieht, wird die Kategorie "B" nun vorselektiert, obwohl sie ursprünglich vom Benutzer nicht gewählt wurde und auch nie in der Datenbank gespeichert war.

Woran kann das liegen?

Für die Vorselektierung scheint ein Javascript Element zuständig zu sein. Wenn ich mir dort die entsprechenden Zeilen so ansehe, werde ich auch nicht schlauer:

updateForm('tt_address_form','FE[tt_address][module_sys_dmail_category]','4');
updateForm('tt_address_form','FE[tt_address][module_sys_dmail_category][2]','1');

Wie soll das den funktionieren?

Ich bin für jede Hilfe dankbar!

Gruß
dennis79

Unbekannter Benutzer ·

Ich bin nun ein bisschen schlauer, ohne allerdings eine Lösung gefunden zu haben:

Die JS-Funktion "updateForm" scheint mit den MM-Relations bei den Kategorien Probleme zu haben.

Folgende Zeile

updateForm('tt_address_form','FE[tt_address][module_sys_dmail_category]','4');

entsteht, da im Feld "module_sys_dmail_category" in der Tabelle "tt_address" der Wert "4" steht.
Dieser Wert sagt natürlich nichts darüber aus, WELCHE Kategorien gewählt sind, sonder nur WIE VIELE.
Die entscheidende Information, welche Kategorien gewählt sind ist in der Tabelle "sys_dmail_ttaddress_category_mm" zu finden und hier steht:

Bild: img504.imageshack.us/…/mmrelci3.th.gif

Dabei steht "uid_local" für die uid des tt_address Satzes und "uid_foreign" für die uid der gewählten Kategorie (aus Tabelle "sys_dmail_category").

Richtig wäre also folgendes Javascript:

updateForm('tt_address_form','FE[tt_address][module_sys_dmail_category][4]','1');
updateForm('tt_address_form','FE[tt_address][module_sys_dmail_category][5]','1');
updateForm('tt_address_form','FE[tt_address][module_sys_dmail_category][6]','1');
updateForm('tt_address_form','FE[tt_address][module_sys_dmail_category][7]','1');

Was ich mir allerdings nicht erklären kann, ist die zweite Zeile im falschen JS (siehe erster Beitrag)... wie die entsteht is mir noch ein Rätsel.

Bin für jeden Hinweis dankbar!
Gruß
dennis79