Newsletter personalisieren "sehr geehrter" oder "sehr geehrte" wurde Beantwortet

Autor Nachricht
Verfasst am: 09.04.2008 [11:01]
derSuchende

[Themenersteller]
dabei seit: 06.04.2005
Beiträge: 32

Hallo zusammen!

Vorweg:
Direct Mail(2.5.3) & tt_adress ist konfiguriert und alles läuft perfekt.

Jetzt mein Problem:
Ich würde gerne den Newsletter personalisieren.
Wenn im Titel-Feld "Frau" steht soll eine Abfrage gesetzte werden,
die dann folgendes einfügt "Sehr geehrte". Wenn im Titel-Feld "Herr" steht, soll die Anrede "Sehr geehrter" lauten.

Lässt sich so etwas relativ einfach realisieren?

Bin über jede Anregung seeeehr dankbar.

Michael
Verfasst am: 10.04.2008 [17:22]
derSuchende

[Themenersteller]
dabei seit: 06.04.2005
Beiträge: 32

... hat keiner eine Ahnung oder zumindest einen Ansatz für das geschilderte Problem?

Oder weiß vielleicht jemand ob ich an einer PHP-Datei etwas ändern muss?

Ich bin über jeden Ansatz dankbar.

Michaelicon_cry.gif
Verfasst am: 11.04.2008 [00:43]
derSuchende

[Themenersteller]
dabei seit: 06.04.2005
Beiträge: 32

... jetzt habe ich die Lösung gefunden icon_biggrin.gif
Ok, ist bestimmt nicht astrein gelöst, aber es funktioniert.

Ich musste eine PHP-Datei etwas modifizieren.

Im Verz.: "typo3conf/ext/direct_mail/res/scripts"
Muss folgende Datei modifiziert werden: "class.dmailer.php"
Jetzt folgende Funktion suchen: "dmailer_sendAdvanced"
Nun folgende Änderungen ausführen:
Php:Zeilennummerierung:  An / Aus

  1. while(list(,$substField)=each($rowFieldsArray)) {
  2. $subst = $LANG->csConvObj->conv($recipRow[$substField], $LANG->charSet, $this->charset);
  3. $tempContent_HTML = str_replace('###USER_'.$substField.'###', $subst, $tempContent_HTML);
  4. //##################################################################################################
  5. if ($recipRow["title"]=="Herr") {
  6. $tempContent_HTML = str_replace("###USER_ANREDE###", "Sehr geehrter ".$recipRow["title"]." ", $tempContent_HTML);
  7. }
  8. if ($recipRow["title"]=="Frau") {
  9. $tempContent_HTML = str_replace("###USER_ANREDE###", "Sehr geehrte ".$recipRow["title"]." ", $tempContent_HTML);
  10. }
  11. //##################################################################################################

Und
Php:Zeilennummerierung:  An / Aus

  1. //##################################################################################################
  2. if ($recipRow["title"]=="Herr") {
  3. $tempContent_Plain = str_replace("###USER_ANREDE###", "Sehr geehrter ".$recipRow["title"]." ", $tempContent_Plain);
  4. }
  5. if ($recipRow["title"]=="Frau") {
  6. $tempContent_Plain = str_replace("###USER_ANREDE###", "Sehr geehrte ".$recipRow["title"]." ", $tempContent_Plain);
  7. }
  8. //##################################################################################################


Jetzt noch folgenden Marker in der Vorlage (im Backend) setzen: ###USER_ANREDE### und fertig!!
Man kann das bestimmt eleganter lösen, in dem man die Funktion "dmailer_sendAdvanced" in eine neue Datei kopiert und modifiziert und dann in der "localconf.php" anmeldet, aber das muss ich selbst erst noch versuchen.

Was zu beachten ist, das bei einem Update der Extension die Erweiterung weg ist!!!

Vielleicht gibt es noch bessere Lösungen, wenn ja einfach hier posten.

Ich hoffe das hilft dem einen oder anderen, ich bin daran fast verzweifelt!

Gruß,
Michael
Verfasst am: 22.04.2008 [11:33]
George Mason

dabei seit: 07.09.2006
Beiträge: 101

...klappt!

Mein Problem ist nun noch, dass ich mehrere Newsletter auf einem Server betreue, und wenn ein Mailing mit "Sehr geehrter Herr" und ein anderes mit "Lieber Herr" rausgehen soll, muss ich immer wieder in die Datei und das ändern. Potentielle Fehlerquelle..

Eigentlich bräuchte man eine Extension dafür, so dass man beim Versand angeben kann, wie die Empfänger angeredet werden sollen. Wer hat Erfahrung beim Extension programmieren und kann mich in die richtige Richtung winken?

Gruß
George
Verfasst am: 26.06.2008 [09:24]
denoe

dabei seit: 25.11.2002
Beiträge: 50

Mh, danke. Das ist fein! Allerdings prüft ja dein Code nur auf das Vorkommen zweier bestimmter Strings im Titel-Feld. Ich habe da aber so ein paar Empfänger, die haben Titel, würden also dort ein Herr Dr. XYZ erwarten.

Welche Lösung sollte man da gehen? Versuchen einfach alle Eingaben per
Php:Zeilennummerierung:  An / Aus

  1. if ($recipRow["title"]=="Herr Dr.")
etc. abzufangen, oder kann man das auch geschickter lösen?!
Verfasst am: 09.09.2008 [11:59]
Ei-Dotter

dabei seit: 30.06.2005
Beiträge: 59

Hey, das ist eine richtig gute Anleitung. Ich habe sie noch etwas angepasst, so dass sie mit dem GENDER-Feld funktioniert.

Php:Zeilennummerierung:  An / Aus

  1. //###################################################################
  2. if ($recipRow["gender"]=="m") {
  3. $tempContent_HTML = str_replace("###USER_ANREDE###", "Sehr geehrter Herr ".$recipRow["title"]." ", $tempContent_HTML);
  4. }
  5.  
  6. if ($recipRow["gender"]=="f") {
  7. $tempContent_HTML = str_replace("###USER_ANREDE###", "Sehr geehrte Frau ".$recipRow["title"]." ", $tempContent_HTML);
  8. }
  9.  
  10. if ($recipRow["gender"]=="") {
  11. $tempContent_HTML = str_replace("###USER_ANREDE###", "Sehr geehrte Damen und Herren ", $tempContent_HTML);
  12. }
  13. //###################################################################


[Dieser Beitrag wurde 1 mal bearbeitet. Zuletzt am 09.09.2008 um 12:03]
Verfasst am: 11.09.2008 [10:16]
fragolina

dabei seit: 20.08.2008
Beiträge: 22

Hallo derSuchende,
vielen Dank für die Lösung klappt ja wunderbar icon_biggrin.giflg




 
TYPO3 Version 4.2.2 testen

TYPO3 Ver. 4.2.2 testen

Testen Sie die neue TYPO3 Version 4.2.2 kostenlos für einen Monat

TYPO3 Bücher

TYPO3 Workshops


TYPO3 Einführungsschulung
in Berlin:
Montag, 17.11.
in Espelkamp:
Freitag, 08.12.

TYPO3 Intensivschulung
in Würzburg:
Mo., 27.10. - Mi., 29.10.
in Köln:
Mo., 10.11. - Mi., 12.11.
in Berlin:

Mi., 19.11. - Fr., 21.11.
in Espelkamp:

Mi., 10.12. - Fr., 12.12.

TYPO3 Extensionschulung
in Berlin:
Mo., 24.11. - Mi., 26.11.
in Espelkamp:
Mo., 15.12. - Mi., 17.12.