Powermail Empfänger im Formular mit Checkboxen selber auswählen

  • einpraegsam.net einpraegs...
    MacGyver
    0 x
    8861 Beiträge
    25 Hilfreiche Beiträge
    23. 04. 2008, 19:59

    [HOWTO]Einzelne Empfänger per Checkboxen auswählen

    1. FE_Users (Alternativ auch tt_address oder ähnliches) mit E-Mail Adressen anlegen (UID merken):

    2. Checkbox im Powermail Formular anlegen (Hier auf die uid der fe_users achten und wieder eintragen):
    #

    3. SQL Abfrage beim Empfänger auswählen:

    4. Das wars - Grüße, Alex

    in2code.de - Wir leben TYPO3
    Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! http://www.in2code.de/jobs/


  • anders anders
    T3PO
    0 x
    29 Beiträge
    0 Hilfreiche Beiträge
    05. 02. 2010, 09:37

    Bei mir klappt das irgendwie nicht. Ich schildere jetzt mal was der Stand ist und was ich getan hab:

    Die Seite mit dem Formular hat ein ext-template, schon wegen der JavaScript-Validierungs-Geschichte. In diesem Template steht jetzt unter anderem:

    [TS]plugin.tx_powermail_pi1.email {
    email_query = TEXT
    email_query.value = SELECT email FROM fe_users WHERE uid = ###UID9### AND disable = 0 AND deleted = 0
    }

    plugin.tx_powermail_pi1.debug.output=all
    [/TS]

    Und das Feld mit der ###UID9### ist eine Checkbox in meinem Formular auf derselben Seite, hier habe ich, wie am Anfang im Thread geschildert folgendes drinstehen:

    Person1 | 14 | *
    Person2 | 15

    Wenn ich das Formular aufrufe, kann ich die Checkboxen anklicken. Auf der Bestätigungsseite zeigt mir debug dann Folgendes an:

    uid1 Hans Meier
    uid2 hans.meier@meier.de
    uid3 Nachrichtentext
    uid9
    0 14
    1 15

    Gehe ich dann letztmalig auf Absenden, meldet mir debug:

    SYSTEM NOTE: No receiver email address.

    In die DB habe ich sicherheitshalber auch noch mal geschaut, feusers ist befüllt.

    So schwierig ist das doch nicht, ich verstehe nicht was ich übersehen hab...

  • einpraegsam.net einpraegs...
    MacGyver
    0 x
    8861 Beiträge
    25 Hilfreiche Beiträge
    05. 02. 2010, 09:45

    [quote="anders"]
    So schwierig ist das doch nicht, ich verstehe nicht was ich übersehen hab...
    [/quote]

    Checkboxen gehen logischerweise ein Level tiefer und können auch mehrere Auswahlkriterien enthalten (im Gegensatz zu Radiobuttons).
    Teste mal:
    [TS]SELECT email FROM fe_users WHERE uid IN(###UID9###) AND disable = 0 AND deleted = 0
    [/TS]

    in2code.de - Wir leben TYPO3
    Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! http://www.in2code.de/jobs/

  • anders anders
    T3PO
    0 x
    29 Beiträge
    0 Hilfreiche Beiträge
    05. 02. 2010, 10:07

    Vielen Dank für Deine schnellle Hilfe. Habe das direkt mal so probiert. Leider bleibt die SYSTEM NOTE: No receiver email address.

  • 0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    08. 02. 2010, 12:08

    Hi,

    habe das gleiche Problem...

    Radiobutton-Feld - ###UID188###

    Montage | 39
    Kundendienst | 40
    Verwaltung | 41

    [TS]plugin.tx_powermail_pi1.email {
    email_query = TEXT
    email_query.value = SELECT email FROM fe_users WHERE uid = ###UID188### AND disable = 0 AND deleted = 0
    }
    plugin.tx_powermail_pi1.debug.output=all [/TS]

    [HTML]powermail: Values from session
    uid188 39
    receiver SYSTEM NOTE: No receiver email address
    cc receiver SYSTEM NOTE: No cc addresses
    [/HTML]

  • anders anders
    T3PO
    0 x
    29 Beiträge
    0 Hilfreiche Beiträge
    09. 02. 2010, 11:29

    Obwohl mir die MySQL-Abfrage direkt die richtigen User ausgibt

    SELECT email FROM fe_users WHERE uid IN (14,15) AND disable = 0 AND deleted = 0

  • Dirk1 Dirk1
    R2-D2
    0 x
    120 Beiträge
    0 Hilfreiche Beiträge
    09. 02. 2010, 15:15

    [quote="anders"]
    Obwohl mir die MySQL-Abfrage direkt die richtigen User ausgibt

    SELECT email FROM fe_users WHERE uid IN (14,15) AND disable = 0 AND deleted = 0


    [/quote]
    Hast du das statement mal in phpmyadmin o.ä. getestet?

    Dirk

  • anders anders
    T3PO
    0 x
    29 Beiträge
    0 Hilfreiche Beiträge
    09. 02. 2010, 15:43

    Ja, genau das meinte ich mit "die MySQL-Abfrage gibt mir direkt die richtigen User aus".

  • Dirk1 Dirk1
    R2-D2
    0 x
    120 Beiträge
    0 Hilfreiche Beiträge
    09. 02. 2010, 16:27

    So, hallo,

    Meine Abfrage sieht im Detail etwas anders aus
    [TS]select email from fe_users where FIND_IN_SET(###UID31###,usergroup) and disable=0 and pid=564 order by uid[/TS]

    Ich musste nur gerade feststellen, dass es bei mir auch nicht (mehr) funktioniert.
    Mir war entgangen, dass die Abfrage jetzt in Typoscript verschoben werden muss.
    Damit setzte ich mich jetzt erst einmal auseinander und melde mich danach noch mal.

    Dirk

  • Dirk1 Dirk1
    R2-D2
    0 x
    120 Beiträge
    0 Hilfreiche Beiträge
    09. 02. 2010, 18:23

    So, es scheint wieder zu funktionieren nit diesem TS-Code:

    [TS]plugin.tx_powermail_pi1.email.recipient_mail {
    email_query = TEXT
    email_query.value = select email from fe_users where FIND_IN_SET(###UID31###,usergroup) and disable=0 and pid=564 order by uid
    }[/TS]
    Die Abfrage liefert mir alle FE-User auf Seite 564, die der gewählten Gruppe (###UID31###) zugeordnet sind (DB-Feld Usergroup).

    Dirk

  • anders anders
    T3PO
    0 x
    29 Beiträge
    0 Hilfreiche Beiträge
    09. 02. 2010, 19:02

    Hallo Dirk,

    wie würdest Du die Syntax dieses Statements anpassen um es direkt in PMA abzufragen (also den Bereich (###UID31###,usergroup))?

    Egal wie ich es umstelle, bekomme nur leere Resultate oder SyntaxErrors...