Newsletter auf Name und Vorname erweitern

Martin S.
Beiträge: 183
Registriert: Fr 14. Jan 2005, 10:46
Kontaktdaten:

Newsletter auf Name und Vorname erweitern

Beitrag von Martin S. » Do 4. Mai 2006, 13:48

Hallo,

ich verwende die Version 4.6.8 und haben den HTML-Newsletter eingesetzt, funktioniert super. Jetzt habe ich noch eine Frage, wie kann ich eine Erweiterung der Felder für die Newsletteranmeldung machen.

Ich würde gerne Name und Vorname getrennt in die Datenbank eintragen lassen, wo muss ich da ansetzen?

Danke

php0815
Beiträge: 373
Registriert: Mi 26. Okt 2005, 12:12
Wohnort: Schwarzwald
Kontaktdaten:

Beitrag von php0815 » Do 4. Mai 2006, 14:26

Style-> HTML Editor-> newsletter_form.html
Style -> Module-> Newsletter Handler
Modul Output: if ($frontenduser = $frontendusers->next())
Ca zeile 170

Mache gerade eine ausführliche anmeldung mit Kundennummer und allen personenangaben werde c.a. mitte Juni fertig sein.
In der Ruhe liegt die Kraft den wer suchet der findet
Wer Rechtschreibfehler findet kann sie behalten, Codefehler können gemeldet werden.

Martin S.
Beiträge: 183
Registriert: Fr 14. Jan 2005, 10:46
Kontaktdaten:

Beitrag von Martin S. » Do 4. Mai 2006, 14:34

OK, danke, wenn du was fertig hast gib Bescheid, dann kann ich nämlich auf Zusatzsoftware verzichten und nur noch Contenido einsetzen, das wäre echt super.

Danke

php0815
Beiträge: 373
Registriert: Mi 26. Okt 2005, 12:12
Wohnort: Schwarzwald
Kontaktdaten:

Beitrag von php0815 » Do 4. Mai 2006, 16:53

Wie gesagt es dauert noch bis mitte Juni mache das ganze in der Freizeit.
Wen ich am Wochenende Zeit habe setze ich das ganze was ich bis jetzt habe ins Forum.

Die Funktionen sind folgende:
Frontenduser meldet sich beim Newsletter an.
Bei der letzten bestätigungsMail wird eine Ku-Nr hinzugefügt.
Mit der Ku_Nr. und Passwort vom Newsletter kann der Frontenduser seine Persönliche Adressdaten verwalten.

Das ganze funzt schon, ist aber noch auf meine Datensätze zugeschnitten.
Muß ein neues ERD schreiben damit das ganze dynamischer wird, habe bis jetzt alles in einer Tabelle.

Gruß
Horst
In der Ruhe liegt die Kraft den wer suchet der findet
Wer Rechtschreibfehler findet kann sie behalten, Codefehler können gemeldet werden.

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

Beitrag von HerrB » Do 4. Mai 2006, 17:54

Ähm, nicht, dass ich Dich aufhalten möchte ... was spricht gegen die vorhandenen Techniken?

Der Newsletter/Empfänger-Bereich wird mit Sicherheit auch noch für die Plugins erweitert.

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

Martin S.
Beiträge: 183
Registriert: Fr 14. Jan 2005, 10:46
Kontaktdaten:

Beitrag von Martin S. » Do 4. Mai 2006, 18:22

Hallo HerrB, falls du einen anderen Lösungsansatz für mein Problem hast, oder genau weißt wo ich dran drehen muss, dann nehme ich diesen Tipps auch gerne wahr. Benötige eigentlich nicht so eine Masterlösung.

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

Beitrag von HerrB » Fr 5. Mai 2006, 00:10

Mache es so:
Erweitere die Module wie von php0815 angedeutet. Es gibt dort die Stelle, wo der Newsletter-Empfänger eingetragen wird (Output, Handler-Modul):

Code: Alles auswählen

$recipient = $objRecipients->create(
(kommt dreimal vor)

Jeweils direkt darunter ergänzt Du (also dreimal):

Code: Alles auswählen

$recipient->setProperty("contact", "lastname", $_REQUEST["txtLastName"]);
$recipient->setProperty("contact", "firstname", $_REQUEST["txtFirstName"]);
(txtLastName bzw. txtFirstName ist dann im Form-Modul der Name des jeweiligen Feldes)

Nun änderst Du die class.newsletter.php (Funktion send, Ausschnitt):

Code: Alles auswählen

   $to = $recipient->get("email");
            $name = $recipient->get("name"); 

            if (empty ($name)) 
            { 
               $name = $to; 
            } 
            $key = $recipient->get("hash"); 

            if (strlen($key) == 30) 
            { // Prevents sending without having a key 
                        $message2 = str_replace("MAIL_NAME", "$name", $message); 
                        $message2 = str_replace("MAIL_UNSUBSCRIBE", $path."unsubscribe=".$key, $message2); 
                        $message2 = str_replace("MAIL_CHANGE", $path."change=".$key, $message2); 
                        $message2 = str_replace("MAIL_STOP", $path."stop=".$key, $message2); 
                        $message2 = str_replace("MAIL_GOON", $path."goon=".$key, $message2);
in

Code: Alles auswählen

   $to = $recipient->get("email");
            $name = $recipient->get("name"); 

            if (empty ($name)) 
            { 
               $name = $to; 
            } 
            $key = $recipient->get("hash"); 

            if (strlen($key) == 30) 
            { // Prevents sending without having a key
                        $message2 = str_replace("MAIL_NAME", "$name", $message);
                        $message2 = str_replace("MAIL_FIRSTNAME", $recipient->getProperty("contact", "firstname"), $message2); 
                        $message2 = str_replace("MAIL_LASTNAME", $recipient->getProperty("contact", "lastname"), $message2);  
                        $message2 = str_replace("MAIL_UNSUBSCRIBE", $path."unsubscribe=".$key, $message2); 
                        $message2 = str_replace("MAIL_CHANGE", $path."change=".$key, $message2); 
                        $message2 = str_replace("MAIL_STOP", $path."stop=".$key, $message2); 
                        $message2 = str_replace("MAIL_GOON", $path."goon=".$key, $message2);
Natürlich musst Du an die class.newsletter.php bei jedem Update denken.

Das ist aber ansonsten kompatibel zu Updates und Du musst nix an der DB ändern...

Das man in den Newsletter dann MAIL_FIRSTNAME und MAIL_LASTNAME schreiben muss, muss man dann wissen. Wenn man es sehen soll, musst Du Dir die contenido/includes/include.newsletter_edit.php ansehen.

Gruß
HerrB
Zuletzt geändert von HerrB am Fr 5. Mai 2006, 16:17, insgesamt 1-mal geändert.
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

Martin S.
Beiträge: 183
Registriert: Fr 14. Jan 2005, 10:46
Kontaktdaten:

Beitrag von Martin S. » Fr 5. Mai 2006, 04:37

Danke.
Wenn ich das einbaue bekomme ich einen Fehler
Fatal error: Call to a member function setProperty() on a non-object in /home/webuser/.../www/cms/front_content.php(792) : eval()'d code on line 1102


Bei:

Code: Alles auswählen

$objRecipient->setProperty("contact", "lastname", $_REQUEST["txtLastName"]);
Warum denn contact?
Und wo sind die Felder in der Datenbank für Name und Vorname?
Oder hast du nicht alle Punkte aufgegührt die ich Editieren muss?

php0815
Beiträge: 373
Registriert: Mi 26. Okt 2005, 12:12
Wohnort: Schwarzwald
Kontaktdaten:

Beitrag von php0815 » Fr 5. Mai 2006, 11:09

HerrB hat geschrieben:Ähm, nicht, dass ich Dich aufhalten möchte ... was spricht gegen die vorhandenen Techniken?

Der Newsletter/Empfänger-Bereich wird mit Sicherheit auch noch für die Plugins erweitert.
Gegen die vorhandenen Techniken spricht nichts.
Nur zur zeit gibt es die erweiterung so wie ich sie haben will noch nicht, mir geht es nicht nur um die Adressdaten sondern um mehr.
Da ich ein Hobbyprogramierer bin ist es für mich ein lernefekt.
Und ich möchte ein eigenes erfolgserlebniss haben.
Nur auf fertige dinge zurückzugreifen macht mir kein Spass.
In der Ruhe liegt die Kraft den wer suchet der findet
Wer Rechtschreibfehler findet kann sie behalten, Codefehler können gemeldet werden.

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

Beitrag von HerrB » Fr 5. Mai 2006, 16:22

@php0815:
Ja, kein Problem, kann ich nachvollziehen. Meine Frage zielte mehr nach bestimmten Problemen, auf die Du gestoßen bist (und deswegen einen anderen Ansatz verfolgen willst/musst).

@Martin S.:
Ja, sorry, es muss $recipient->setProperty... heißen (statt $objRecipient).

Wenn ich die Zeit finde, ergänze ich noch was, so dass Du die Angaben auch im Backend sehen kannst.

Code: Alles auswählen

Warum denn contact?
Ist einfach ein Typ. Wenn Du diesen verwendest, wird es später keine Probleme mit Weiterentwicklungen geben.

Code: Alles auswählen

Und wo sind die Felder in der Datenbank für Name und Vorname?
Es gibt keine (das ist das Schöne an der Lösung). Die Daten werden einfach als Eigenschaft des Empfängers gespeichert. Technisch liegen sie in der con_properties.

Code: Alles auswählen

Oder hast du nicht alle Punkte aufgegührt die ich Editieren muss?
Doch, aber ich habe mich vertippt.

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

Martin S.
Beiträge: 183
Registriert: Fr 14. Jan 2005, 10:46
Kontaktdaten:

Beitrag von Martin S. » Mo 8. Mai 2006, 12:10

Habe die Anpassungen vorgenommen und Name Vorname wird gespeichert und wird beim Versenden der Email berücksichtigt. Danke

Einziges Problem, wie bekomme ich denn eine korrekte Anzeige im Bereich Extras/Newsletter/Empfänger hin, hier wird nur der Name angezeigt, jedoch nicht Vorname und Nachname

Danke

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

Beitrag von HerrB » Mo 8. Mai 2006, 15:28

*Sigh*
Wenn ich die Zeit finde, ergänze ich noch was, so dass Du die Angaben auch im Backend sehen kannst.
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

Martin S.
Beiträge: 183
Registriert: Fr 14. Jan 2005, 10:46
Kontaktdaten:

Beitrag von Martin S. » Mo 8. Mai 2006, 15:43

OK alles klar, auf jeden Fall schon mal besten Dank

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

Beitrag von HerrB » Mo 8. Mai 2006, 23:59

Alles, was Du brauchst (auch das Update!) findest Du hier:
http://www.contenido.org/forum/viewtopic.php?t=12807

Würde mich über einen Test freuen. Ja, die class.newsletter.php musst Du wieder überschreiben (die neue Version bietet bereits die Berücksichtigung der Felder beim Versand).

Bitte alle Informationen beachten.

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

Martin S.
Beiträge: 183
Registriert: Fr 14. Jan 2005, 10:46
Kontaktdaten:

Beitrag von Martin S. » Di 9. Mai 2006, 07:05

Wenn das mal keine geniale Lösung ist, super.

Muss ich eigentlich die von dir aufgeführten Anpassungen aus den vorherigen Treads ebenfalls machen oder reicht zukünftig nur das Plugin?

Gesperrt