Powermail 2 - Empfänger per Dropdown im Formular wählen

  • einpraegsam.net einpraegs...
    MacGyver
    1 x
    9340 Beiträge
    80 Hilfreiche Beiträge
    22. 10. 2012, 22:20

    [b]Idee[/b]
    Der Formular-Ausfüller soll in einer Auswahl den Empfänger des Formulares wählen können

    [b]Lösung[/b]
    Im Empfängerfeld ein cObject Viewhelper auswählen um sein TypoScript einfließen lassen zu können. Per TypoScript dann an Hand der übergebenen fe_users uid die passende E-Mail auslesen und zurückgeben.

    [b]Umsetzung[/b]
    Ein paar fe_user anlegen mit passenden E-Mail-Adressen und die UID's dieser merken.
    Dementsprechend kann man dann ein Selector in Powermail einbauen:
    [img]http://easycaptures.com/fs/uploaded/696/2892996211.png[/img]

    Eine kurze Abfrage per TypoScript:

    1. lib.receiver = CONTENT
    2. lib.receiver {
    3. table = fe_users
    4. # Seite mit FE_Users
    5. pidInList = 20
    6. andWhere {
    7. # Powermail 2.0.x Feld UID (sichtbar bei Mouseover in Backend Listview)
    8. # data = GP:tx_powermail_pi1|field|74
    9.  
    10. # Powermail 2.1.x Feld Marker (sichtbar bei Feld - z.B. {receiver})
    11. data = GP:tx_powermail_pi1|field|receiver
    12.  
    13. wrap = fe_users.uid=|
    14. intval = 1
    15. }
    16. }
    17. renderObj = TEXT
    18. renderObj {
    19. field = email
    20. }
    21. }

    cObject ViewHelper als Empfänger eintragen:
    [img]http://easycaptures.com/fs/uploaded/696/9944886815.png[/img]

    [b]Hinweis[/b]
    Natürlich wäre es technisch möglich, direkt die E-Mails im Select anzugeben. Dann könnte aber jeder Bot die E-Mails abgreifen oder den Empfänger beliebig beeinflussen.

    in2code.de - Wir leben TYPO3
    - Möchtest du TYPO3 komplett verstehen? Eigene Erweiterungen erstellen? Bei uns gibt es auch Schulungen https://www.in2code.de/produkte/typo3-schulungen/
    - Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! https://www.in2code.de/agentur/karriere/


  • jank jank
    Sternenflotten-Admiral
    0 x
    158 Beiträge
    0 Hilfreiche Beiträge
    22. 10. 2012, 23:13

    Danke @einpraegsam für den Denkanstoß!

    Bis auf das TypoScript habe alles identisch eingerichtet.
    Ich habe es über einen Typoscript CASE gelöst, da ich keine fe_user habe...

    1. lib.receiver = CASE
    2. lib.receiver {
    3. #
    4. key.data = GP:tx_powermail_pi1|field|14
    5. key.intval = 1
    6.  
    7. # Res 1
    8. 1 = TEXT
    9. 1.value = mail1@domain.de
    10. # Res 2
    11. 2 = TEXT
    12. 2.value = mail2@domain.de
    13. # Res 3
    14. 3 = TEXT
    15. 3.value = mail3@domain.de
    16. # Res 4
    17. 4 = TEXT
    18. 4.value = mail4@domain.de
    19.  
    20. default = TEXT
    21. default.value = mail@domain.de
    22. }

  • einpraegsam.net einpraegs...
    MacGyver
    0 x
    9340 Beiträge
    80 Hilfreiche Beiträge
    23. 10. 2012, 09:05

    Oder so :)

    in2code.de - Wir leben TYPO3
    - Möchtest du TYPO3 komplett verstehen? Eigene Erweiterungen erstellen? Bei uns gibt es auch Schulungen https://www.in2code.de/produkte/typo3-schulungen/
    - Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! https://www.in2code.de/agentur/karriere/

  • kolki kolki
    Jedi-General
    0 x
    1044 Beiträge
    5 Hilfreiche Beiträge
    23. 10. 2012, 13:13

    @einpraegsam.net

    Dein Beispiel ist für mich sehr interessant!
    Aufgrund meiner (für mich) sehr komplexen Formulare habe ich mich bisher gescheut, Powermail 2.x einzusetzen.

    Für unser Formular (unter Powermail 1.x) habe ich zur Auswahl verschiedener Adressaten bisher unten stehendes TS eingesetzt, welches ich nach den Hinweisen aus dem Manual entwickelt habe.
    Ist dieses auch unter Powermail 2.x noch einsetzbar oder funktioniert das dann nicht mehr.

    Bin leider nicht so bewandert... o.O :
    Auf dem ersten Blick sieht Dein Beispiel ja ähnlich aus.

    Was ist dahingehend zukünftig unter Powermail 2.x zu beachten. Welche Unterschiede gibt es?

    1. ### verschiedene Adressaten im Formular ####
    2. plugin.tx_powermail_pi1.email.recipient_mail {
    3. email_query = TEXT
    4. email_query.value = SELECT email,name FROM fe_users WHERE uid = ###UID55### AND disable = 0 AND deleted = 0
    5. }
    6.  
    7. !!#
    8. plugin.tx_powermail_pi1.mode.confirmation {
    9. uid55 = TEXT
    10. uid55 {
    11. table = fe_users
    12. select.andWhere.cObject = COA
    13. select.andWhere.cObject {
    14. 5 = TEXT
    15. 5 {
    16. value = uid =
    17. }
    18. 10 = TEXT
    19. 10 {
    20. data = TSFE:fe_user|sesData|powermail_10|uid55
    21. intval = 1
    22. }
    23. }
    24. select.pidInList = 55
    25. renderObj = TEXT
    26. renderObj.field = name
    27. }
    28. }
    29. }
    30.  
    31. !!#
    32. plugin.tx_powermail_pi1.mode.thx {
    33. uid55 = TEXT
    34. uid55 {
    35. table = fe_users
    36. select.andWhere.cObject = COA
    37. select.andWhere.cObject {
    38. 5 = TEXT
    39. 5 {
    40. value = uid =
    41. }
    42. 10 = TEXT
    43. 10 {
    44. data = TSFE:fe_user|sesData|powermail_10|uid55
    45. intval = 1
    46. }
    47. }
    48. select.pidInList = 55
    49. renderObj = TEXT
    50. renderObj.field = name
    51. }
    52. }
    53. }
    54. !!#
    55. plugin.tx_powermail_pi1.mode.recipient_mail {
    56. uid55 = TEXT
    57. uid55 {
    58. table = fe_users
    59. select.andWhere.cObject = COA
    60. select.andWhere.cObject {
    61. 5 = TEXT
    62. 5 {
    63. value = uid =
    64. }
    65. 10 = TEXT
    66. 10 {
    67. data = TSFE:fe_user|sesData|powermail_10|uid55
    68. intval = 1
    69. }
    70. }
    71. select.pidInList = 55
    72. renderObj = TEXT
    73. renderObj.field = name
    74. }
    75. }
    76. }
    77. !!#
    78. plugin.tx_powermail_pi1.mode.sender_mail {
    79. uid55 = TEXT
    80. uid55 {
    81. table = fe_users
    82. select.andWhere.cObject = COA
    83. select.andWhere.cObject {
    84. 5 = TEXT
    85. 5 {
    86. value = uid =
    87. }
    88. 10 = TEXT
    89. 10 {
    90. data = TSFE:fe_user|sesData|powermail_10|uid55
    91. intval = 1
    92. }
    93. }
    94. select.pidInList = 55
    95. renderObj = TEXT
    96. renderObj.field = name
    97. }
    98. }
    99. }
    100. ################################
    101. ### Testfeld 01 -Telefonnummer ausgeben- ####
    102. plugin.tx_powermail_pi1.mode.confirmation {
    103. uid51 = TEXT
    104. uid51 {
    105. table = fe_users
    106. select.andWhere.cObject = COA
    107. select.andWhere.cObject {
    108. 5 = TEXT
    109. 5 {
    110. value = uid =
    111. }
    112. 10 = TEXT
    113. 10 {
    114. data = TSFE:fe_user|sesData|powermail_10|uid55
    115. intval = 1
    116. }
    117. }
    118. select.pidInList = 55
    119. renderObj = TEXT
    120. renderObj.field = telephone
    121. }
    122. }
    123. }
    124. ################################
    125.  
    126. ################################
    127. ### Testfeld 02 -Aktenzeichen generieren- ####
    128. uid55 = TEXT
    129. uid55 {
    130. table = fe_users
    131. select.andWhere.cObject = COA
    132. select.andWhere.cObject {
    133. 5 = TEXT
    134. 5 {
    135. value = uid =
    136. }
    137. 10 = TEXT
    138. 10 {
    139. data = TSFE:fe_user|sesData|powermail_10|uid55
    140. intval = 1
    141. }
    142. }
    143. select.pidInList = 55
    144. renderObj = TEXT
    145. renderObj.field = title
    146. renderObj.dataWrap = Aktenzeichen|-{date:YmdHis}
    147. }
    148. }
    149. ################################

  • einpraegsam.net einpraegs...
    MacGyver
    0 x
    9340 Beiträge
    80 Hilfreiche Beiträge
    24. 10. 2012, 09:10

    Das musst du leider komplett ändern

    in2code.de - Wir leben TYPO3
    - Möchtest du TYPO3 komplett verstehen? Eigene Erweiterungen erstellen? Bei uns gibt es auch Schulungen https://www.in2code.de/produkte/typo3-schulungen/
    - Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! https://www.in2code.de/agentur/karriere/

  • kolki kolki
    Jedi-General
    0 x
    1044 Beiträge
    5 Hilfreiche Beiträge
    24. 10. 2012, 10:33

    Danke für Deine Antwort. Ich habe es befürchtet. o.O
    Allein für dieses Formular, samt Script, Conditions, Fehler googlen, Extensions fixen usw. habe ich schon Ewigkeiten, bestimmt aber Wochen benötigt. Ich hoffe, diesmal bekomme ich es schneller hin.
    Sehr spannend für mich. Aber eigentlich müsste ich doch im Script nur mein

    [b]cObject = CONTENT
    cObject {
    usw. ...
    }
    [/b]
    durch Deinen Code

    [b]lib.receiver = CONTENT
    lib.receiver {
    usw. ...
    }[/b]
    ersetzen (?).
    Oder bin ich vollkommen auf dem Holzweg?

  • roemer.ag roemer.ag
    Typ im Roten Hemd
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    18. 09. 2014, 21:30

    hallo die Herren... Ich verzweifele:
    Habe es mit beiden Methoden (jank und einprägsam) versucht.
    Das Schweineformular schreibt mir lediglich brav 1 oder 2 oder 3 :)
    Heißt - die fe_user werden nicht ausgelesen... Wenn ich den default-value nicht auskommentiere
    werden die mails jedoch an diese (not-Email) geschickt.

    Hat jemand eine Idee? Wäre sehr dankbar, Christoph

    PS:
    Typo3 6.1.10
    Powermail 2.1.1
    Powermail Conditions 2.1.0 (hab ich aber auch schon vorsichthalber mal deaktiviert)
    Typoscript im +ext der Seite mit dem Formular

  • einpraegsam.net einpraegs...
    MacGyver
    0 x
    9340 Beiträge
    80 Hilfreiche Beiträge
    19. 09. 2014, 12:42

    Hi,

    Hier mal ein Update für eine nette Variante mit [b]Powermail 2.1.x[/b]

    Grundlage ist, dass FE Users in der Datenbank mit eindeutigen Benutzernamen existieren.
    Auf der Seite 104 habe ich meine FE-Users angelegt. Gefüllt sind bei mir die Felder Username und E-Mail (dazu natürlich noch Passwort und Gruppe).

    In einem Auswahlfeld lasse ich die Benutzernamen anzeigen (Abfrage über TypoScript). Dieses nehmen wir als Grundlage für eine Datenbankabfrage "getEmailFromUsername" (auch über TypoScript).

    Auswahl der Empfänger im Formular:
    [img]https://s3.amazonaws.com/fvd-data/notes/262407/1411122534-NoDw6F/screen.png[/img]

    Anzeige der Empfänger auf der Bestätigungsseite:
    [img]https://s3.amazonaws.com/fvd-data/notes/262407/1411122606-dL36aT/screen.png[/img]

    ---

    Das Feld Receiver hat den Marker [b]{receiver}[/b] und bei "Create from TypoScript" [b]lib.receiver[/b]:
    [img]https://s3.amazonaws.com/fvd-data/notes/262407/1411122708-ftrCDR/screen.png[/img]

    Das TypoScript für die Anzeige der Benutzernamen und die Umwandlung von Benutzername zur E-Mail:

    1. # Auswahl der Empfänger
    2. lib.receiver = COA
    3. lib.receiver {
    4. 10 = TEXT
    5. 10.value = Bitte wählen|[\n]
    6.  
    7. 20 = CONTENT
    8. 20 {
    9. table = fe_users
    10. select.pidInList = 104
    11. renderObj = COA
    12. renderObj {
    13. 10 = TEXT
    14. 10.field = username
    15. 10.wrap = |[\n]
    16. }
    17. }
    18. }
    19.  
    20. # Email von Benutzername für Versand
    21. lib.emailFromUsername = CONTENT
    22. lib.emailFromUsername {
    23. table = fe_users
    24. pidInList = 104
    25. andWhere {
    26. field = 0
    27. wrap = username="|"
    28. }
    29. }
    30. renderObj = TEXT
    31. renderObj {
    32. field = email
    33. }
    34. }

    Im Feld Empfänger greift Powermail auf lib.emailFromUsername zu und übergibt den Wert von {receiver}:
    [img]https://s3.amazonaws.com/fvd-data/notes/262407/1411123269-VcDOUT/screen.png[/img]

    Hier der Text zum Kopieren:

    1. {f:cObject(typoscriptObjectPath:'lib.emailFromUsername',data:receiver)}

    Viele Grüße aus Rosenheim

    in2code.de - Wir leben TYPO3
    - Möchtest du TYPO3 komplett verstehen? Eigene Erweiterungen erstellen? Bei uns gibt es auch Schulungen https://www.in2code.de/produkte/typo3-schulungen/
    - Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! https://www.in2code.de/agentur/karriere/

  • rebooo rebooo
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    02. 12. 2014, 12:20

    Hallo zusammen,
    zu dem Update von einpraegsam.net hätte ich eine Frage. Wie könnte es man anstellen um auf diese Weise die Extension email2powermail 0.2.2 mit Powermail 2.1 wieder zum laufen zu bringen? Ich versuche nun schon seit 2 Tagen dieses für mich anscheinend große Problem zu lösen.
    Zur Vorgeschichte: Ich habe eine Seite in der extrem viele E-Mail Links im Content vorhanden sind (ca.3000) die alle auf ein Powermail-Kontakt-Formular verlinkt werden sollen. In Typo3 4.5 und 4.7 bis Powermail 1.6.11 ist alles kein Problem und funktioniert super (sind auch super Extensions!).
    Jedoch steht jetzt das Update auf 6.2 bevor. Habe mir dazu eine Testumgebung eingerichtet, email2powermail installiert und in den Dateien class.tx_email2powermail_cache, -fe, -powermailreceiver und -replace in der Zeile 25
    "require_once(PATH_tslib . 'class.tslib_pibase.php');"
    durch
    "if (!class_exists('tslib_pibase')) require_once(PATH_tslib . 'class.tslib_pibase.php');"
    ersetzt.
    Soweit alles ok. Nur bekomme ich es einfach nicht auf die Reihe dass die E-Mail Adressen wie früher in die Empfängermail kommt. Habs nach dem obigen Beispiel vom Update von einprägsam.net und auf viele andere Arten versucht, aber anscheinend versteh ich da irgend etwas nicht richtig.
    Die E-Mail Adressen werden auch in die DB tx_email2powermail_emailcache geschrieben, ich kann sie auch anzeigen aber ich krieg sie einfach nicht in die Empfänger E-Mail.
    Vielleicht könnte mir jemand in dieser Sache einen Schubbser in die richtige Richtung geben, denn durch die vielen Versuche (an denen ich klaglos gescheitert bin) gehen mir langsam die Ideen aus.
    Viele Grüße

  • einpraegsam.net einpraegs...
    MacGyver
    0 x
    9340 Beiträge
    80 Hilfreiche Beiträge
    02. 12. 2014, 14:26

    So weit ich es in Erinnerung habe, nutzt email2powermail einen Hook in der alten powermail 1.x um beim Absenden die E-Mail entsprechend zu ändern.

    Im Prinzip müsste man email2powermail ein Update spendieren.

    in2code.de - Wir leben TYPO3
    - Möchtest du TYPO3 komplett verstehen? Eigene Erweiterungen erstellen? Bei uns gibt es auch Schulungen https://www.in2code.de/produkte/typo3-schulungen/
    - Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! https://www.in2code.de/agentur/karriere/