Modul: Newsletter-Module V4.6.0 bis V4.6.15

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

3 Wie ich gelesen habe, soll bei der Aktivierung des Frontend-Nutzers automatisch ein Passwort versendet werden, wenn er sich über den Newsletter anmeldet. Stimmt das?
Ja. Das Passwort wird angezeigt und per Mail versendet (in der Konfiguration des Handler-Moduls: Bestätigung bedeutet: Aktivieren).

Wird denn - bei der Bestätigung der E-Mail-Adresse - das Passwort angezeigt?

Und dann kommt keine Nachricht?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
HansGeorg
Beiträge: 45
Registriert: Do 19. Feb 2004, 11:51
Kontaktdaten:

Passwort für Frontendnutzer

Beitrag von HansGeorg »

Hallo HerrB,
1 Ich habe den Newsletter inzwischen öfters getestet. Alles läuft tadellos. Anscheinend hat der Webmailer von 1&1 die Rückgabewerte der Links so zurückgegeben, dass in der DB "con_news_rcp" keine Einträge erfolgten.

2
Das Passwort wird angezeigt und per Mail versendet (in der Konfiguration des Handler-Moduls: Bestätigung bedeutet: Aktivieren).
Wird denn - bei der Bestätigung der E-Mail-Adresse - das Passwort angezeigt?
Und dann kommt keine Nachricht?
Leider nein! Die Funktion "Bestätigung bedeutet:Aktivieren" ist in der Vorkonfiguration des Template und im Artikel des Newsletter_Handlers" richtig aktiviert. Ich erhalte aber nie irgendwo ein Passwort. Kann das mit der Fehlermeldung, die ich bei der Bestätigung des Newsletter-Accounts bekomme zusammenhängen?

Code: Alles auswählen

Newsletter
Fatal error: Call to a member function on a non-object in /var/www/web3/html/contenido/cms/front_content.php(884) : eval()'d code on line 308
In der DB "con_news_rcp" finde ich keinen Eintrag für ein Passwort bzw. auch keine Verschlüsselung, Nur der Hash-Wert. Ist das das verschlüsselte Passwort?
Bei den meisten Systemen, die ich kenne, ist in der DB meist ein Feld "Password". Wird das bei Contenido anders geregelt?
Grüße und Dank für die Unterstützung
HansGeorg
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Ja, das kommt daher. Er "vergisst" irgendwann zwischendurch das Objekt des Empfängers und/oder des Frontend-Accounts (ich habe es gerade nicht im Kopf).

Man muss den Handler so anpassen, dass die ID, solange das Objekt noch gültig ist, in einer Variable gespeichert wird und dann im weiteren Verlauf verwendet wird.

Ich gucke mal.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Im Bereich "confirm" diese Zeile

Code: Alles auswählen

// $idrecipient = $recipient->get("idnewsrcp");
mit

Code: Alles auswählen

$idrecipient = $recipient->get("idnewsrcp");
$email = $recipient->get("email");
ersetzen.

Dann

Code: Alles auswählen

$result = $newsletter->send($objProperties->getValue("clientsetting", $client, "Newsletter", "idcatart"),"single",$recipient->get("idnewsrcp"));
durch

Code: Alles auswählen

$result = $newsletter->send($objProperties->getValue("clientsetting", $client, "Newsletter", "idcatart"),"single",$idrecipient); 
Dann

Code: Alles auswählen

$frontendusers->select("idclient = '$client' AND username='".urlencode($recipient->get("email"))."'");
durch

Code: Alles auswählen

$frontendusers->select("idclient = '$client' AND username='".urlencode($email)."'");
Dann

Code: Alles auswählen

          $body = mi18n("txtMailPassword")."\n\n".mi18n("Username: ").$recipient->get("email")."\n".mi18n("Password: ").$pwd."\n\n".mi18n("Click here to login: ").$cfgClient[$client]["path"]["htmlpath"]."front_content.php?changelang=".$lang;
durch

Code: Alles auswählen

          $body = mi18n("txtMailPassword")."\n\n".mi18n("Username: ").$email."\n".mi18n("Password: ").$pwd."\n\n".mi18n("Click here to login: ").$cfgClient[$client]["path"]["htmlpath"]."front_content.php?changelang=".$lang;
Dann

Code: Alles auswählen

          $mail->AddAddress($recipient->get("email"));
durch

Code: Alles auswählen

          $mail->AddAddress($email);
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
HansGeorg
Beiträge: 45
Registriert: Do 19. Feb 2004, 11:51
Kontaktdaten:

Kurze Frage

Beitrag von HansGeorg »

Hallo HerrB,

meinst Du im "Output" des Newsletter-Handlers diesen Bereich mit den entsprechenden Änderungen versehen?

Code: Alles auswählen

  if ($recipient = $objRecipients->next()) { 
    // $idrecipient = $recipient->get("idnewsrcp");
    $recipient->set("confirmed",1); 
    $recipient->set("confirmeddate", date("Y-m-d H:i:s"), false); 
    $recipient->set("deactivated",0); 
    $recipient->store(); 

    $strMessage = mi18n("Thank you! You have confirmed your subscription to our newsletter!");

    $newsletters = New NewsletterCollection;
    $newsletters->select("idclient = '$client' AND idlang='$lang' AND welcome='1'"); 

    if ($newsletter = $newsletters->next()) { 
      $result = $newsletter->send($objProperties->getValue("clientsetting", $client, "Newsletter", "idcatart"),"single",$recipient->get("idnewsrcp")); 

      $strMessage .= mi18n(" The welcome newsletter is already on the way to you!");
    } 

    if ($arrSettings["FrontendLink"] == "enabled" && $arrSettings["FrontendConfirm"] == "ActivateUser") {
       $frontendusers = new FrontendUserCollection;
       $frontendusers->select("idclient = '$client' AND username='".urlencode($recipient->get("email"))."'");

       if ($frontenduser = $frontendusers->next()) {
          $frontenduser->set("active",1);
          $pwd = substr(md5(rand()),0,8); // Generating password
          $frontenduser->set("password", $pwd);
          $frontenduser->store();

          $strMessage .= mi18n("<br><br>Additionally, your website account has been activated. You can now use the following username and password to log in to access special areas on our website:<br>");
          $strMessage .= mi18n("Username: ").$recipient->get("email").mi18n("<br>Password: ").$pwd;

          $body = mi18n("txtMailPassword")."\n\n".mi18n("Username: ").$recipient->get("email")."\n".mi18n("Password: ").$pwd."\n\n".mi18n("Click here to login: ").$cfgClient[$client]["path"]["htmlpath"]."front_content.php?changelang=".$lang;

          $mail           = new phpmailer();
          $mail->From     = $arrSettings["SenderEMail"];
          $mail->FromName = $arrSettings["SenderEMail"];
          $mail->AddAddress($recipient->get("email"));
          $mail->Mailer   = "mail";
          $mail->Subject  = mi18n("Website account");
          $mail->Body     = $body;
          // $mail->AltBody  = $body;
Da habe ich nämlich die gleiche Fehlermeldung bekommen wie erwähnt, nur mit anderer Zeile

Code: Alles auswählen

Newsletter
Fatal error: Call to a member function on a non-object in /var/www/web3/html/contenido/cms/front_content.php(884) : eval()'d code on line 317
Aber ich muss das nochmal in Ruhe testen, vielleicht hab ich da nen Fehler gemacht!

Auf jeden Fall, vorerst mal Danke!
HansGeorg
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Mmmh, kannst Du mal das Frontend Debugging aktivieren (siehe contenido/includes/config.misc.php) und dann mal die Zeile 317 posten? Offensichtlich liegt das Problem unter den geänderten Zeilen.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
HansGeorg
Beiträge: 45
Registriert: Do 19. Feb 2004, 11:51
Kontaktdaten:

Ergebnisse fes Frontend-Debuggings

Beitrag von HansGeorg »

Hallo HerrB,
ich hab das jetzt nochmal in Ruhe mit dem Frontend-Debugging getestet. Zuerst am originalen Newsletter-Handler von 4.6.15 und dann mit dem von Dir vorgeschlagenem ersetzten Code.

1 Original Newsletter-Handler von 4.6.15:

Fehlermeldung:

Code: Alles auswählen

Newsletter
Fatal error: Call to a member function on a non-object in /var/www/web3/html/contenido/cms/front_content.php(884) : eval()'d code on line 308
Das war die Ausgabe des Frontend-Debugging:

Code: Alles auswählen

    if ($arrSettings["FrontendLink"] == "enabled" && $arrSettings["FrontendConfirm"] == "ActivateUser") {
       $frontendusers = new FrontendUserCollection;
       $frontendusers->select("idclient = '$client' AND username='".urlencode($recipient->get("email"))."'");
//Zeile 308 ist hier leer!//
       if ($frontenduser = $frontendusers->next()) {
          $frontenduser->set("active",1);
          $pwd = substr(md5(rand()),0,8); // Generating password
          $frontenduser->set("password", $pwd);
          $frontenduser->store();
2 Newsletter-Handler von 4.6.15 mit Deinen vorgeschlagenen Änderungen:

Fehlermeldung (Sorry, das war nicht 317, wie ich gepostet habe, sondern 318!):

Code: Alles auswählen

Newsletter
Fatal error: Call to a member function on a non-object in /var/www/web3/html/contenido/cms/front_content.php(884) : eval()'d code on line 318
Das war die Ausgabe des Frontend-Debugging:

Code: Alles auswählen

Zeile 316: $strMessage .= mi18n("<br><br>Additionally, your website account has been activated. You can now use the following username and password to log in to access special areas on our website:<br>");
Zeile 317: $strMessage .= mi18n("Username: ").$recipient->get("email").mi18n("<br>Password: ").$pwd;
Zeile 318: $body = mi18n("txtMailPassword")."\n\n".mi18n("Username: ").$email."\n".mi18n("Password: ").$pwd."\n\n".mi18n("Click here to login: ").$cfgClient[$client]["path"]["htmlpath"]."front_content.php?changelang=".$lang;
Ein Passwort kam jedoch nicht an. Hilft Dir das weiter?

Herzlichen Dank und Grüße
HansGeorg[/code]
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Na, das Prinzip sollte doch klar sein:
Ersetze $recipient->get("email") durch $email.

In dem Fall in Zeile 317.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey »

Hallo,

ich würde gerne "Handler-Webseite in neuem Fenster öffnen" deaktivieren, aber sobald ich das grüne Häckchen klicke ist es wieder aktiviert. Wie kann ich es endgültig deaktivieren. Vielleicht direkt in der Datenbank? Wo genau?


Besten Dank und Grüße
stefkey
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Ehrlich gesagt, kann ich mir das noch immer nicht erklären.

Schmeiße bitte im Form-Modul-Template den Platzhalter für target raus. Ich habe es gerade nicht so im Kopf, wenn es da nix gibt, schmeiße im Form-Modul den entsprechenden Code raus, der target="_blank" setzt.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
stefkey
Beiträge: 556
Registriert: Mi 19. Okt 2005, 16:10
Wohnort: Heidelberg
Kontaktdaten:

Beitrag von stefkey »

ok, habs jetzt im Modul rausgekickt.

Vielen Dank und schönen Tag!
stefkey

PS Aber es ist wirklich so, das das Häckchen immer wieder da ist...
HansGeorg
Beiträge: 45
Registriert: Do 19. Feb 2004, 11:51
Kontaktdaten:

Daaaanke, HerrB

Beitrag von HansGeorg »

Hallo HerrB,
dank Deiner Hilfe funktioniert der Passwort-Versand jetzt!
Ich bin in PHP und MySQL nicht so durch wie Du. Aber wenn man mir sagt, was zu machen ist, dann geht`s ... :D

Muss ich nur [$email] oder [$email."\n"] einsetzen. Funktioniert hat es mit beiden Varianten!?

Code: Alles auswählen

$strMessage .= mi18n("Username: ").$email.mi18n("<br>Password: ").$pwd;
Und vielen Dank nochmals!
Grüße
HansGeorg
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Das "\n" führt zu einem Zeilenumbruch, den Du offensichtlich nun mit <br> erzeugst (in mi18n("<br>Password: ")). <br> geht halt nur in HTML-Newslettern, nicht mit Text-Newslettern.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
kptkip
Beiträge: 192
Registriert: Mi 8. Jun 2005, 18:02
Kontaktdaten:

Beitrag von kptkip »

@HerrB

Wurden die Änderungen aus der Diskussion mit Hansgeorg bereits in die Ausgangsdatei von Thread-Seite 1 eingearbeitet?
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Nein, sorry.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Gesperrt