Dynamische Variablen in der Aktivierungs-E-Mail ändern

  • Hallo zusammen,


    ich möchte gerne die E-Mail ändern, die zu einem Benutzer geht, der sich registriert und die den Link zur Aktivierung der Registrierung enthält.


    Ich weiß bereits grundsätzlich, dass man Text mit einem Override ändert. Ich weiß auch, dass ich den Text der Mail unter


    COM_USERS_EMAIL_REGISTERED_WITH_ACTIVATION_BODY


    finde und ändern kann. Den normalen Text habe ich bereits angepasst. Ich würde aber gerne auch die Variablen anpassen, speziell die Anrede. Standardmäßig wird hier der Name genutzt, sodass hier "Hallo <Name>" in der Mail steht. Ich möchte das aber gerne ändern in "Hallo <Benutzername>".


    Die Variablen sind aber alle gleich mit %s angegeben. Wie sieht hier die Logik aus? Was muss ich tun, um hier Änderungen herbeizuführen? Wie kann ich die einzelnen %s umdefinieren?

  • Was verstehst du unter Standard-Registrierung? Ich habe in Joomla einfach nur unter Benutzer:Optionen -> Benutzerregistrierung = Ja und Kontenaktivierung durch = Benutzer eingerichtet. Dadurch wird eine E-Mail an den Benutzer generiert, um nach der Registrierung das Konto mit Klick auf einen Link zu aktivieren. Und genau um diese Mail geht es mir.

  • Das müsste machbar sein. Ich habe mir gerade einmal den Code angeschaut, wo der Sprachstring erstellt wird. Der Username wird an Position 5 mitgegeben.


    PHP
    $emailBody = JText::sprintf(
    'COM_USERS_EMAIL_REGISTERED_WITH_ACTIVATION_BODY',
    $data['name'],
    $data['sitename'],
    $data['activate'],
    $data['siteurl'],
    $data['username'],
    $data['password_clear']


    Demnach müsste man das Sprachoverride dahingehend ändern und die genaue Position mitteilen:

    XML
    COM_USERS_EMAIL_REGISTERED_WITH_ACTIVATION_BODY="Hallo %5$s ..."


    Näheres zu den Sprachstrings gibt es hier:

    https://docs.joomla.org/Format…ge_translation_strings/de

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.

  • Vielen Dank erstmal für deine Antwort.


    Ja, das hatte ich so auch schon mal herausgefunden und versucht.


    Nachdem ich dann aber "Hallo %5$s" verwendet habe, hat es mir die gesamte Mail verändert, das heißt, es wurden auch alle anderen Variablen verändert. Ich vermute, das lag an der Reihenfolge. Wahrscheinlich hat er dann ab der 5 Position die kommenden %s einfach weitergezählt und die dann falschen Variablen verwendet.


    Wenn ich mir den Code anschaue, heißt das aber ja auch, dass ich jedes einzelne %s entsprechend mit Positionsbestimmung ersetzen könnte, um dann wieder die richtigen Werte zu bekommen, richtig?

  • Ja - wenn Du nur %s angibst, dann nimmt er genau die Reihenfolge, wie sie rein kommen. Ich habe es noch nie probiert, was passiert, wenn man es mischt. Wenn ich einen definierten Wert angebe, dann mache ich es explizit mit allen Werten so. Das ist aus meiner Sicht immer der bessere/sicherste Weg. ;)

    Du kannst demnach %5$s mehrmals im Text verwenden.

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.