WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 05.11.2020 19:12:46

florian
Administrator

mpform mit TNL verbinden?

Ich frag jetzt mal in die Runde...

Ausgangssituation: Auf einre Website gibt es ein mpForm-Formular, in dem Name (Shorttext), E-Mail (E-Mail-Adresse), "Ich möchte zukünftig über Neuigkeiten informiert werden" (Checkbox, optional) und "Ich habe die DSE gelesen" (Checkbox, Pflicht) abgefragt werden. (Es geht um die Anmeldung zu einem Zoom-Meeting. Die Anmeldung für den Newsletter ist also ein erwünschter, aber nicht zwingender Nebeneffekt.)
Frage: Wie lässt sich das Tiny Newsletter verbinden, dass, wenn die Neuigkeiten-Checkbox angeklickt wird, der Double-Opt-In-Prozess für TNL gestartet wird? Also dass neben der mpForm-Speicherung und -Mailversenderei die eingegebenen Daten auch in die TNL-Tabelle übernommen werden und TNL die Mail mit dem Double-Opt-In-Link an die eingegebene Mailadresse versendet?

Beitrag geändert von florian (05.11.2020 19:13:38)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#2 05.11.2020 21:26:16

bernd
Developer

Re: mpform mit TNL verbinden?

Ganz grobe Idee:

die Haupt-Action für die TNL-Anmeldung läuft ja in der action.php

Da könnte man doch die relevanten Teile recyclen?
So grob Zeile 103 - 120 + 152 - 235
Also ab da wo normalerweise die Daten vom Anmeldeformular per Ajax ankommen und weiterverarbeitet werden.

"Einfach" an der Stelle reinhängen an der mpForm soweit mit seinem Daten-Handling fertig ist, die Formulardaten (Name, Email, ...) aber noch vorliegen ...

Beitrag geändert von bernd (05.11.2020 21:57:46)


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#3 06.11.2020 12:48:05

florian
Administrator

Re: mpform mit TNL verbinden?

Danke... aber ich mache es jetzt erstmal so, dass man nach dem Absenden per JS auf das vorausgefüllte TNL-Anmeldeformular weitergeleitet wird, wenn das Neuigkeiten-Häkchen gesetzt ist.

modules/mpform/private.php, private_function_after_email:

if (isset($_SESSION['mpf']['field4'])) {
	echo '<script>location.href="[wblink120]?tnl_name='.$_SESSION['mpf']['field8'].' '.$_SESSION['mpf']['field2'].'&tnl_email='.$_SESSION['mpf']['field3'].'"</script>';
}							

Auf der TNL-Seite dann Übergabe per Javascript.

const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
if (urlParams.get('tnl_name')!=undefined) {
  document.getElementById('tnl_name').value=urlParams.get('tnl_name');
}
if (urlParams.get('tnl_email')!=undefined) {
  em = urlParams.get('tnl_email');
  em = em.replace('(at)','@');
  em = em.replace('(dot)','.');
  document.getElementById('tnl_email').value=em;
}

Ist zwar doppelt von hinten durch die Brust ins Auge, aber naja... scheint zumindest zu funktionieren.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#4 11.11.2020 23:32:16

mrbaseman
Developer

Re: mpform mit TNL verbinden?

statt der Weiterleitung per Javascript könntest du vielleicht auch die Tabellen von TNL aus der privaten Funktion von mpform heraus befüllen. Das ist sicher aufwändiger und ich kenne die Interna von TNL nicht. Von daher weiß ich nicht wie viel mehr Aufwand das wäre...

Offline

#5 11.11.2020 23:39:23

bernd
Developer

Re: mpform mit TNL verbinden?

Hallo Martin,
es geht ja nicht nur um das Befüllen der TNL Tabellen alleine, sondern auch darum den TNL Double-Opt-In anzuschubsen und der wird erst angeleiert wenn TNL die Anmeldedaten in der action.php per Ajax entgegennimmt ...


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

Liked by:

florian

Fußzeile des Forums

up