Wenn Anrede=Frau" --> Sehr geehrte Frau XY

Wenn Anrede=Frau" --> Sehr geehrte Frau XY

Postby eanst » 2:05pm, Fri 15 Dec, 2006

hallo forum,

ich habe in der datenbank user mit anrede gespeichert. die anrede ist entweder frau oder herr.

nun möchte ich einen newsletter schreiben. als einleitung sollte der newsletter mit "Sehr geehrter Herr.." bzw. mit "Sehr geehrte Frau..." beginnen.

wie kann ich das realisieren? als standard gibt es ja nur einen platzhalter [Anrede]. den müsste man ja nun irgendwie erweitern!?

VIELEN DANK FÜR EURE HILFE!
eanst
PL Nut
 
Posts: 20
Joined: 9:16am, Fri 13 Oct, 2006

Postby H2B2 » 7:26pm, Fri 15 Dec, 2006

Ich nehme an das sie eine attribute haben für Anrede und Nahme. Dann können sie die platzhaltern [ANREDE] und [NAHME] gebrauchen, zum beispiel:
"Sehr geehrter [ANREDE] [NAHME], "

Ein problehm ist das es im Deutch mannliche und frauliche wörter gibt, e.g. "geehrter" und "geehrte".
Es ist darum notich auch ein attribute dafür zu haben, e.g. PREFIX ANREDE, und die platzhalter [PREFIX ANREDE],

Das gibt: "Sehr [PREFIX ANREDE] [ANREDE] [NAHME], "

Die werte für die attribute PREFIX ANREDE (i.e. "geehrter" und "geehrte") kann mann vielleicht mitt Javascript und eine 'hidden input field' definieren im 'subscribe form'

Ref:
http://docs.phplist.com/Placeholders
http://docs.phplist.com/SendMessageInfo
http://docs.phplist.com/CustomSubscribeForm
H2B2
Moderator
 
Posts: 7188
Joined: 1:51am, Wed 15 Mar, 2006

Beispielseite

Postby rikkk » 4:32pm, Tue 19 Jun, 2007

hallo
die idee mit dem hidden-field auf der anmeldeseite ist wirklich sehr gut. danke für den tipp.

Code: Select all
pseudo-code:
wenn "dropdown-menu geschlecht" = Frau, dann hiddenfield = Sehr geehrte
wenn "dropdown-menu geschlecht" = Mann, dann hiddenfield = Sehr geehrter


gibt es davon irgendwo ein beispiel von diesem javascript code? ich kann leider selber keine javascript...

jeder beispiel URL ist willkommen.

danke!
rikkk
phpList newbie
 
Posts: 2
Joined: 4:23pm, Tue 19 Jun, 2007

Postby rikkk » 4:57pm, Tue 19 Jun, 2007

Oder eine Möglichkeit innerhalb von PHP-List eine IF /ELSE Abfrage zu platzieren, um so die richtige Anrede zu wählen ist nicht möglich?
rikkk
phpList newbie
 
Posts: 2
Joined: 4:23pm, Tue 19 Jun, 2007

Postby Stig » 5:41pm, Tue 24 Jul, 2007

Hallo,

an diesem Problem bin ich auch.
Gibt es denn schon Neuigkeiten für die Umsetzung?

Viele Grüße

Stig
Stig
phpLister
 
Posts: 14
Joined: 4:58pm, Tue 24 Jul, 2007

Postby r2d2 » 2:05pm, Mon 30 Jul, 2007

Hi!

Also man kann das so lösen:

1) Ich habe alle Attribute die man benötigt in der Administration angelegt. In Klammer der jeweilige Typ und die Attributnummer. Die Attributnummer sieht man aber nochmals unten beim HTML Code.
Also Anrede (Dropdown, 3), AnredePrefix (Text, 9), Titel (Text, 4), Vorname (Text, 2), Nachname (Text, 5).
Das Dropdown Anrede hab ich noch mit den Werten Mann und Frau hinterlegt.

2) Dann habe ich eine Anmeldeseite mit den beim Punkt 1 angelegten Attributen in der Administration erstellt, gespeichert und aktiviert.

3) Als nächsters erstellt man ein eigenes Anmeldeformular mit einem HTML Editor (Dreamweaver). Die ganzen Elemente werden dann dort eingefügt.

Das schaut bei mir z.B. so aus:
Die Überprüfungen werden bei mir mit JavaScript gemacht.

Code: Select all
<head>

<script language="Javascript" type="text/javascript">
function checkform() {
  for (i=0;i<fieldstocheck.length;i++) {
    if (eval("document.subscribeform.elements['"+fieldstocheck[i]+"'].value") == "") {
      alert(fieldnames[i]+": Eingabe erforderlich");
      eval("document.subscribeform.elements['"+fieldstocheck[i]+"'].focus()");
      return false;
    }
  }

  return true;
}

var fieldstocheck = new Array();
var fieldnames = new Array();
function addFieldToCheck(value,name) {
  fieldstocheck[fieldstocheck.length] = value;
  fieldnames[fieldnames.length] = name;
}

function compareEmail()
{
  return (document.subscribeform.elements["email"].value == document.subscribeform.elements["emailconfirm"].value);
}

function checkEmail(myForm) {
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(myForm.email.value)){
    return true;
  }
   
  alert("E-Mail: Ungültige Adresse")
  return false;
}

function mann () {
         document.subscribeform.attribute9.value = ("geehrter");
}

function frau () {
         document.subscribeform.attribute9.value = ("geehrte");
}
</script>

</head>

<body>

<form method="post" action="http://www.domain.com/lists/?p=subscribe&id=2" name="subscribeform" onSubmit="return checkEmail(this)">
  <input type="hidden" name="list[1]" value="signup">
  <input type="hidden" name="attribute9" value="geehrter">

  <table class="inner">
    <tr>
      <td>Anrede</td>
      <td>
        <select name="attribute3" class="attributeinput">
          <option value="1" onclick="herr()">Herr
          <option value="2" onclick="frau()">Frau
        </select>
      </td>
    </tr>
    <tr>
      <td>Titel</td>
      <td>
        <input type=text name="attribute4"  class="attributeinput" value="">
      </td>
    </tr>
    <tr>
      <td>Vorname *</td>
      <td>
        <input type=text name="attribute2"  class="attributeinput" value=""><script language="Javascript" type="text/javascript">addFieldToCheck("attribute2","Vorname");</script>
      </td>
    </tr>
    <tr>
      <td>Nachname *</td>
      <td>
        <input type=text name="attribute5"  class="attributeinput" size="40" value=""><script language="Javascript" type="text/javascript">addFieldToCheck("attribute5","Nachname");</script>
      </td>
    </tr>
    <tr>
      <td>E-Mail *</td>
      <td>
        <input type=text name=email value=""><script language="Javascript" type="text/javascript">addFieldToCheck("email","E-Mail");</script>
      </td>
    </tr>
  </table>
     
  <p>* Pflichtfelder!</p>

  <p><input type=submit name="subscribe" value="" onClick="return checkform();"></p>
   
</form>
</body>


Was wird hier gemacht:

Die Javascript Funktionen checkform, compareEmail, checkEmail prüfen die Eingaben der Pflichtfelder (sind mit einem Stern gekennzeichnet).

Die Funktionen mann und frau sind dazu da um später in die Datenbank-Spalte AnredePrefix (attribute9) den Wortlaut "geehrter" bzw. "geehrte" zu speichern. Im Formular ist das attribute9 ein verstecktes Feld wo der Wert bis dahin geschrieben wird.

4) In den Mails kann man dann einfach folgendes schreiben:
Code: Select all
Sehr [ANREDEPREFIX] [ANREDE] [TITEL] [VORNAME] [NACHNAME]


Das ergibt z.B. Sehr geehrte Frau Dr. Susanne Müller.

Ich hoffe das hilft hier einigen weiter.

lg, R2D2
r2d2
phpList newbie
 
Posts: 3
Joined: 1:42pm, Mon 30 Jul, 2007

Postby H2B2 » 11:21pm, Sun 12 Aug, 2007

rikkk wrote:Oder eine Möglichkeit innerhalb von PHP-List eine IF /ELSE Abfrage zu platzieren, um so die richtige Anrede zu wählen ist nicht möglich?

Diese mod kann vielleicht ein startpunkt sein: http://forums.phplist.com/viewtopic.php?t=11225
H2B2
Moderator
 
Posts: 7188
Joined: 1:51am, Wed 15 Mar, 2006

gelöst

Postby Stig » 5:34pm, Fri 24 Aug, 2007

Hi,

es ist sehr simpel.
In einem eigenen Anmeldeformular kann ich die angezeigten und die übermittelten Werte frei wählen.

.. ohne Javascript ... :D

Stig
Stig
phpLister
 
Posts: 14
Joined: 4:58pm, Tue 24 Jul, 2007

Re: Wenn Anrede=Frau" --> Sehr geehrte Frau XY

Postby Guest » 6:20pm, Mon 15 Dec, 2008

eanst wrote:als einleitung sollte der newsletter mit "Sehr geehrter Herr.." bzw. mit "Sehr geehrte Frau..." beginnen.


Hier eine weitere Lösung:

definierte Attribute:
[ANREDE] -> mit Herr, Frau, Firma, Praxis und LEER
[NACHNAME] -> braucht nicht ausgefüllt werden (optional)

In diesem Fall sind jetzt 2 Probleme zu lösen:
1. bei Herr soll 'Sehr geehrter' stehen, bei den anderen Anreden 'Sehr geehrte'
2. Wenn kein Nachname ausgefüllt wurde, dann soll dort ein Universal-Name stehen (z.B. Newsletter-Leser)

Lösung: /admin/sendemaillib.php Zeile.376 (V2.10.8)
hinter
Code: Select all
$destinationemail = '';
  if (is_array($user_att_values)) {
    foreach ($user_att_values as $att_name => $att_value) {


wird eingefügt
Code: Select all
  if ( (strtoupper($att_name) == 'NACHNAME') && ( ($att_value == '') || ($att_value == '(optional)')  ) ) {
        $att_value = 'Newsletter-Leser'; //frei wählbar
      }


      if (strtoupper($att_name) == 'ANREDE') {      //Fallunterscheidung Herr / Frau / Firma / Praxis

        $anrede = $att_value;

        switch ($att_value) {

            case '':
                $att_value = 'Sehr geehrter '; //Newsletter-Leser
                break;

            case 'Herr':
                $att_value = 'Sehr geehrter '.$anrede; // Herr
                break;

            default:
                $att_value = 'Sehr geehrte '.$anrede; //Frau, Firma, Praxis
                break;
        }//end switch

      }//end if


In dem neuen Newsletter wird nur noch
[ANREDE] [NACHNAME],
geschrieben.

Aber Achtung, mit dieser Lösung ist nur eine einmalige persönliche Anrede zu Beginn möglich.
Guest
 

Re: Wenn Anrede=Frau" --> Sehr geehrte Frau XY

Postby Letti » 2:04pm, Thu 27 Aug, 2009

Gibt es evtl. irgendwo auch die Möglichkeit einfach die Anrede-Variable nachträglich zu verändern? Bei mir lautet sie Herr bzw. Frau. Kann ich die irgendwo nachträglich in Liebe Frau bzw. Lieber Herr ändern?

Weiß das jemand?

Viele Grüße
Letti
Letti
phpList newbie
 
Posts: 3
Joined: 2:01pm, Thu 27 Aug, 2009

Re: Wenn Anrede=Frau" --> Sehr geehrte Frau XY

Postby TheTom » 3:13pm, Mon 04 Jul, 2011

Als Neuling packe ich mal die Schaufel aus und grab' den Eintrag aus...

Ich bräuchte - wie der Thread auch schon sagt, eine persönliche Anrede in einem Newsletter (HTML).
Der Newsletter an sich ist schon gestaltet und funktioniert.

Aufgebaut ist dieser wie folgt:

Newsletter-Kopf mit Titelbild
Datum und Nummer der Ausgabe
Anrede
restlicher Content

Leider habe ich die Anrede bisher nur wie folgt geschafft: Sehr geehrte/r Max Mustermann. Wünschenswert wäre natürlich die Anreden "Sehr geehrter Herr", "Sehr geehrte Frau" und "Sehr geehrte Firma"

Die Schritte von R2D2 bin ich sozusagen nachgegangen - nur leider stehe ich jetzt bei der Implementierung des ganzen in einer Sackgasse - es will nicht funktionieren. Wie und wo kann ich das ganze einbauen?

Leider ist auch contentschmiede.de nicht mehr erreichbar - hier hätte es ja eine super Anleitung dazu geben sollen ...

MfG, Thomas

EDIT: Problem mit ein paar Hacks gelöst - dank diesem Forum :-)
TheTom
phpList newbie
 
Posts: 2
Joined: 3:01pm, Mon 04 Jul, 2011

Re: Wenn Anrede=Frau" --> Sehr geehrte Frau XY

Postby skulking » 9:58am, Tue 22 Nov, 2011

Hallo Thomas,
ich habe aktuell genau das gleiche Problem.
Gibts hier schon eine Lösung?

Danke
Skulking
skulking
phpLister
 
Posts: 11
Joined: 3:43pm, Mon 25 Feb, 2008

Re: Wenn Anrede=Frau" --> Sehr geehrte Frau XY

Postby Muckel » 1:04pm, Thu 01 Dec, 2011

Hallo,
habe das gleiche Problem. Weiß jemand wie die Lösung geht? Ich habe phplist bei Wordpress integriert. Die Lösung mit eigener Installation und einem Plug in.. Klappt soweit gut, nur eben das mit dem Sehr geehrte bzw. Sehr geerhter ist mir ein Rätsel.. Ich bin eh neu bei phplist und bräuchte daher eine Erklärung Schritt für Schritt..

VIelleicht hat ja jemand die ideale Lösung.

Gruß
Muckel
Muckel
phpList newbie
 
Posts: 4
Joined: 12:50pm, Thu 01 Dec, 2011


Return to German forum

Who is online

Users browsing this forum: No registered users and 2 guests