Direct Mail Kategorien - Änderungen werden im Backend-User Record nicht wirksam

  • mrice mrice
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    28. 03. 2008, 15:23

    Hallo liebes Forum,

    ich bin seit ein Paar Monaten im Zusammenhang mit einem Kundenprojekt mit Typo3 beschäftigt. Bin eigentlich schon recht weit mit dem Verständnis von T3 und Umsätzung diverser Anforderungen, jedoch bin ich jetzt auf ein Problem mit "Direct Mail" gestoßen, bei dem ich einfach mittlerweile auf dem Schlauch stehe. Ich hoffe, dass mir jemand helfen kann.

    Dann lege ich mal los mit der Problemschilderung.

    Ich habe die folgenden Extensions Installiert:
    tt_address v. 2.1.1
    direct_mail v. 2.5.3
    direct_mail_subscription v. 1.1.0

    T3 v. 4.1.2

    Nach der Installation habe ich ein System Ordner erstellt, diesem das Plugin "Direct Mail" zugewiesen und das TS Setup etc. entsprechend der description von typo3.org angepasst.

    Dann habe ich noch einen System Ordner erstellt der sich hierarchisch gesehen in dem "Direct Mail" Oerdner befindet und als Container für die DM Kategorien und die Adressen aus der tt_address Tabelle fungiert.

    Soweit funktioniert auch alles. Ich kann NL Abonenten über die direct_mail_subscription im Frontend anlegen, NL anlegen und verschicken etc.

    Das Problem habe ich mit den Kategorien. Wenn ich im FE als Abonent eine Kategorie beim Registrieren anhake und das ganze speichere, wird alles korrekt gemacht: ein neuer Datensatz in der tt_address wird angelegt und im BE User Record auch die entsprechende Kategorie angehakt dargestellt. Das versenden nach Kategorien klappt auch ohne Probleme.
    Wenn ich mich jetzt aber als Abonent für eine Änderung entscheide, über den Link in der System-Mail auf die Edit site von meinem Profil gehe, dort bei der angehakten Kategorie den Haken entferne und das ganze speichere zeigt das weder in der Tabelle tt_address noch sonst wo eine wirkung.
    Das Kuriose ist aber, dass wenn ich bei der Registrierung als Abonent keine Kategorie auswähle, nachträglich über das Edit-Formular in FE ein Haken setze dann wird der DB Eintrag in der tt_address zwar gändert, die Haken in der FE Ansicht des Bearbeitungsformulars auch entsprechend angezeigt jedoch wird der entsprechende Haken im BE User Record nicht angezeigt und der User wird so behandelt, als hätte er keine Kategorie ausgewählt. Entsprechend funktioniert der Versand nach Kategorien in dem Fall auch nicht richtig.

    Kann es sein, dass die darstellung der Kategorien im BE User Record auf eine andere Tabelle zugreift wo die Kategorien zusätzlich abgespeichert werden?

    Hat jemand vielleicht eine Antwort parat?

    Ich bin am verzweifeln #angry#

    Danke im Voraus für jede Hilfe!


  • 1
  • mrice mrice
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    31. 03. 2008, 11:39

    Hat wirklich niemand eine Lösung für das Problem?

    Ich habe schon Stunden damit verbracht im Netz und natürlich auch in diesem Forum um eine Lösung für mein Problem zu finden, aber vergeblich.

    Bitte helft mir.

  • mrice mrice
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    05. 06. 2008, 11:34

    Nachdem ich doch etwas länger mit dem research verbracht habe, habe ich die Lösung gefunden.

    Zunächst sollte im TS Template von der "direct mail subscription" Erweiterung der folgende eintrag vorhanden sein:
    [TS]// ...
    edit.userFunc_afterSave = user_dmailsubscribe->saveRecord
    // ...
    [/TS]
    Dann sollte die Datei: direct_mail_subscription/pi/class.dmailsubscribe.php
    aus dem ext Verzeichnis, innerhalb der Funktion "saveRecord()" wie folgt modifiziert werden:

    1. // ...
    2. if(is_array($newFieldsArr)) {
    3. $GLOBALS['TYPO3_DB']->exec_DELETEquery('sys_dmail_ttaddress_category_mm','uid_local='.intval($conf['rec']['uid']));
    4. foreach(array_keys($newFieldsArr) as $uid) {
    5. $count++;
    6. $GLOBALS['TYPO3_DB']->exec_INSERTquery('sys_dmail_ttaddress_category_mm',array('uid_local'=>$conf['rec']['uid'],'uid_foreign'=>$uid,'sorting'=>$count));
    7. }
    8. $GLOBALS['TYPO3_DB']->exec_UPDATEquery('tt_address','uid='.intval($conf['rec']['uid']),array('module_sys_dmail_category'=>$count));
    9. }
    10. // ...

    Die Zeile 3 ist hierbei zu beachten.
    Alles abspeichern, cache löschen, ausprobieren - fertig. :D

    Viel Erfolg!

  • 0 x
    10 Beiträge
    0 Hilfreiche Beiträge
    16. 07. 2008, 13:26

    hi,

    habe die selben probleme gehabt und deine lösung funktioniert fast perfekt. danke!

    einziges problem: wenn ich beim aktualisieren über den FE mehr a kategorie abhake, wird keine der beiden wirklich gelöscht. wenn ich nur eine abhake, dann wird diese eine korrekt gelöscht.

    muss vielleicht das DELETE nicht auch in der foreach sein?

    ich probier mal.

  • 0 x
    10 Beiträge
    0 Hilfreiche Beiträge
    16. 07. 2008, 14:36

    so muss der code aussehen, damits perfekt funktioniert:

    function saveRecord($conf) {
    if(intval($conf['rec']['uid'])) {
    $GLOBALS['TYPO3_DB']->exec_DELETEquery('sys_dmail_ttaddress_category_mm','uid_local='.intval($conf['rec']['uid']));

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    16. 07. 2008, 14:38

    also ich muss mir auch ständig die class.dmailsubscribe.php modifizieren. Das ist wirklich sauschlecht gecodet, es wird Zeit das jemand eine Alternative erstellt!

  • ikkez ikkez
    Padawan
    0 x
    31 Beiträge
    0 Hilfreiche Beiträge
    07. 01. 2011, 13:32

    und 2,5 Jahre später, ist der Fehler immernoch vorhanden und wurde bisher nicht gefixt #angry#

    lächerlich..

    hier die modifizierte file.
    fügt außerdem auch vor und zuname zusammen in das Feld name, beim Speichern.

    Anhänge (1)
    class.dmailsubscribe.txt text/plain 0,00 B 286 heruntergeladen
  • 1