Guten Morgen zusammen,
ich würde gerne alle Formulare auf unserer Firmenwebseite mit Powermail ersetzen, da ich die Extension mehr als gelungen finde. Wir setzen mehrere Formulare ein. Darunter befindet sich auch eins für unsere Serviceabteilung, welche mit einer fortlaufenden Nummer arbeitet.
Der Vorgang funktioniert folgendermaßen.
Kunde füllt das Formular aus. Daraus generiert das Formular beim Absenden eine Vorgangsnummer, welche in der Antwortmail angezeigt wird. Darauf hin muss der Kunde die ausdrucken und mitschicken, damit wir diese hier zuordnen können.
Danke euch,für eure Hilfe.
Liebe Grüße
cihat80
Cihat80 schrieb
Guten Morgen zusammen,
ich würde gerne alle Formulare auf unserer Firmenwebseite mit Powermail ersetzen, da ich die Extension mehr als gelungen finde. Wir setzen mehrere Formulare ein. Darunter befindet sich auch eins für unsere Serviceabteilung, welche mit einer fortlaufenden Nummer arbeitet.
Der Vorgang funktioniert folgendermaßen.
Kunde füllt das Formular aus. Daraus generiert das Formular beim Absenden eine Vorgangsnummer, welche in der Antwortmail angezeigt wird. Darauf hin muss der Kunde die ausdrucken und mitschicken, damit wir diese hier zuordnen können.
Danke euch,für eure Hilfe.
Liebe Grüße
cihat80
Du kannst einen neuen Marker in Powermail erstellen und nutzen - Beispiel:
###POWERMAIL_TYPOSCRIPT_VORGANGSNUMMER###
Dann über TS füllen lassen:
plugin.tx_powermail_pi1 {
dynamicTyposcript {
vorgangsnummer = TEXT
vorgangsnummer.value = This is a new text
}
}
Ich würde hier dann eine kleine Userfunc nutzen, die mir eine Nummer zurückschmeißt...
Nachtrag:
Oder alternativ über einen Hook - habe für einen Kunden ein Mini-Bestellformular, dass einen dynamischen Preis am Ende des Vorgangs anzeigt. Dieses kann ich dir zukommen lassen, wenn du willst...
Hi Alex,
Respekt. Die Extension ist euch echt gut gelungen. Vorallendingen find ich es klasse, dass ich diese auch für meine Steinzeit Typo3 Version (3.8.0) nutzen kann ;-)
Eine Frage hätte ich dennoch.
was meinst du mit userfunc?
Ich würde mich sehr darüber freuen, wenn du mir in Bezug auf die Hooks ein wenig helfen könntes, da ich noch nicht den Durchblick habe.
Danke dir im voraus
LG
Cihat80
Beispiel mit userfunc, wie man an einem Marker eine zufällige Vorgangsnummer (random) ausgeben kann
Setup:
includeLibs.user_vorgangsnummer = fileadmin/user_test.php
plugin.tx_powermail_pi1 {
dynamicTyposcript {
vorgangsnummer = USER
vorgangsnummer.userFunc = user_test->user_test
}
}
Dann eine neue Datei (user_test.php) direkt ins fileadmin Verzeichnis:
<?
class user_test {
function user_test($x=array(), $y=array()) {
return rand(0,9999999);
}
}
?>
Dann auf die Antwortseite (RTE):
###POWERMAIL_TYPOSCRIPT_VORGANGSNUMMER###
###POWERMAIL_ALL###
Das ganze lässt sich natürlich auch beliebig erweitern...
Danke dir für deine Hilfe,
wenn ich mit meinen eingeschlafenen PHP-Kenntnissen dein Skript interpretiere, erzeugt dieser eine dynamische Vorgangsnummer, welche zufällig gewählt ist. Richtig?
Bei einer fortlaufenden Nummer, welche eindeutig ist, muss ich doch mit einer For-Schleife arbeiten gelle ;-)
Ich probier es mal aus und schreibe die Lösung rein.
Vielleicht wäre die Funktion der fortlaufenden Nummer auch eine Idee für eure Extension?
LG
Cihat80
Cihat80 schrieb
Danke dir für deine Hilfe,
wenn ich mit meinen eingeschlafenen PHP-Kenntnissen dein Skript interpretiere, erzeugt dieser eine dynamische Vorgangsnummer, welche zufällig gewählt ist. Richtig?
Bei einer fortlaufenden Nummer, welche eindeutig ist, muss ich doch mit einer For-Schleife arbeiten gelle ;-)
Ich probier es mal aus und schreibe die Lösung rein.
Vielleicht wäre die Funktion der fortlaufenden Nummer auch eine Idee für eure Extension?
LG
Cihat80
Bei einer fortlaufenden Nummer ist nicht so einfach:
Du musst die letzte Nummer in der Datenbank speichern, weil du sonst bei der nächsten Bestellung nicht weißt, welche Nummer du ausgeben sollst...
Wäre es geschickter, eure Ext. mit dem Kickstarter zu erweitern, oder die Funktion manuell in das Skript user_test.php einzutragen.
Hintergrund ist der, dass die Vorgangsnummer nur in einem der drei Formulare benötigt wird.
Cihat80 schrieb
Wäre es geschickter, eure Ext. mit dem Kickstarter zu erweitern, oder die Funktion manuell in das Skript user_test.php einzutragen.
Hintergrund ist der, dass die Vorgangsnummer nur in einem der drei Formulare benötigt wird.
Ich würde mit phpmyadmin oder noch besser mit dem Kickstarter eine neue Tabelle erstellen (uid und eventuell noch weitere Felder wenn du benötigst).
Dann über die Userfunc bei jedem Ausfüllen der Powermail einen neuen Datensatz anlegen und die UID anzeigen lassen. Eigentlich nicht schwer...
Mein Problem ist ähnlich gelagert. Da powermail inzwischen ja die abgeschickten Daten eines Formulars in der Tabelle "tx_powermail_mails" speichert, würde ich gerne die UID des entsprechenden Eintrages in der generierten Mail mitschicken.
Funktioniert das? Ist das schon mit Boardmitteln möglich? Jemand schon gemacht?
Mit Boardmitteln derzeit noch nicht
Gibt es einen Hook, der vor dem Mailversand, aber nach dem Datenbankeintrag eingreift?
Blöderweise wird der DB entry erst nach dem E-Mail Versand generiert.
Workarround:
Über Hook aktuelle UID auslesen und dann +1
Oder eigenen DB Entry
Okay, habe einen Hook angelegt, der mir die letzte ID ausliest, die ID hochzählt und speichere den Wert als neuen Marker im markerArray.
Jetzt dachte ich, ich muss nur noch den neuen Marker in den RTE eintragen, damit das in der Bestätigungsmail mit ausgegeben wird. Leider wird der Marker nicht mit dem von mir generierten Wert ersetzt.
Habe ich noch was übersehen?
Keine Ahnung was für ein Hook und was der wo überschreibt
Sorry, hätte ein wenig aussagefreudiger sein können :-)
Spreche in einer eigenen Extension den Hook "PM_SubmitBeforeMarkerHook" an. Sieht so aus.
function PM_SubmitBeforeMarkerHook($obj, &$markerArray, &$sessiondata) {
// get latest entry from db
$result = $GLOBALS['TYPO3_DB']->exec_SELECTquery( 'max(uid) as uid', 'tx_powermail_mails', '');
$row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result);
// generate a marker for the email - calculate uid + 1
$markerArray['###POWERMAIL_NEW_ID###'] = $row['uid']+1;
}
Den Marker habe ich dann in den Plugin-Einstellungen im RTE-Feld für die Empfänger-Mail eingetragen (unter ###POWERMAIL_ALL###). Mein erstellter Marker wird beim Versand aber nicht durch den generierten Wert ersetzt, sondern einfach ausgeblendet.
Wenn ich mir in der class.tx_powermail_submit.php das markerArray ausgeben lasse, ist mein neuer Marker aber mit drin.
Also ein Blick in die class.tx_powermail_submit.php verrät, dass markerArray erst nach dem Hook gesetzt werden - also nützt dir das an dieser Stelle nichts.
Warum nimmst du keine userFunc über einen dynamischen Marker in Powermail?
Habe es jetzt mit einer userFunc gelöst. Geht zusammen mit den dynamischen Markern in der Tat sehr einfach.