Joomla 5 Notice

We are pleased to announce that as of January 29, 2024, all of our Joomla extensions are compatible with Joomla 5.

For all who are still updateing from Joomla 3 to Joomla 4: Joomla 4 Migration instructions are available here:

There is now a separate Documentation for Visforms for Joomla 4 and for Visforms for Joomla 5!

Forum

Visforms Subscription user can ask questions in our forum. Please log in with the relevant user first.
Everybody can access the forum for reading.

Please only ask 1 question per topic.

Trigger für Edit-Benutzermail und Edit-Ergebnismail [gelöst]

More
1 month 1 week ago - 1 month 1 week ago #10187 by MaliRaj
Um den Bearbeiter eines Datensatzes den Benutzer- und Ergebnismails im Betreff in der Form (geändert durch) anzuhängen, benutze ich aus Ermangelung der Nutzbarkeit eines Platzhalters {$modified_by} seit längerem ein Custom-Plugin.
Allerdings wird der Bearbeiter nur bei Benutzermails angehängt, nicht bei Ergebnismails, obwohl ich mit folgendem Code auf beide Trigger reagiere (dachte ich zumindest):

Code:
    public function onVisformsEmailPrepare($context, $mail, $form): bool     {          // triggered in VisformsModel after the mail object is instantiated and directly before the mail is sent:         // can be used to modify the mail object: mail object is instantiated and all properties are set and can be modified                  // Skip plugin if context is wrong (nur bei Benutzer- & Ergebnis-Mail ausführen)         if (($context != 'com_visforms.form.receiptmail') && ($context != 'com_visforms.form.resultmail')) {             return true;         }         $app = Factory::getApplication();                  // only perform action, if we are in front end                  if ($app->isClient('administrator')) {             return true;         }                  if ($form->context != "vfedit{$form->id}") {    // Script nur in Edit-Mail ausführen             return;         }         $user         = JFactory::getUser();            // Userdaten (Bearbeiter)         $Subject      = $mail->Subject;                // Subject auslesen         $modified_by  = " (geändert durch {$user->name})";                  $mail->setSubject($Subject.$modified_by);        // 'modified by' hinzufügen          return true;     }

Die Mails selbst werden alle gesendet, nur der Betreff der Ergebnismail wird durch das Script nicht (mehr?) angepasst.
Was habe ich da nur übersehen? Ich weiß gar nicht mehr, seit wann das nicht mehr funktioniert.
Joomla 4.4.3, PHP 8.2, aktuelle Subscription.

Freundliche Grüße aus PM
Heinz
Last edit: 1 month 1 week ago by MaliRaj.

More
1 month 1 week ago #10207 by Administrator IV
Replied by Administrator IV on topic Trigger für Edit-Benutzermail und Edit-Ergebnismail
Hallo Heinz,

ein kleine Frage vorweg.

Du entwickelst deinen eigenen PHP-Code und machst unmögliches möglich.
Welche Möglichkeiten des Debugging stehen dir zur Verfügung?

Liebe Grüße, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

More
1 month 1 week ago #10209 by MaliRaj
Hallo Ingmar,
Hmm, Debugging beschränkt sich bei mir eigentlich ganz oldscool auf das Mitloggen meiner Scripte, in dem ich immer den aktuellen Eventhandler zusammen mit den mir wichtigen Variablen in einer eigenen Logdatei aufzeichne. Außerdem setze ich dann in allen 4 Mails (Benutzer/Ergebnis und jeweils Edit) eine Log-/Debugmail-Adresse in BCC.
War es das, was du wissen wolltest?

Freundliche Grüße aus PM
Heinz

More
1 month 1 week ago #10215 by Administrator IV
Replied by Administrator IV on topic Trigger für Edit-Benutzermail und Edit-Ergebnismail
Hallo Heinz,

Ja, es war das, was ich wissen wollte.
Ich habe dein Beispiel samt deinem PHP-Code nachgestellt.

Der Code enthält ein: return;
Richtig ist an dieser Stelle: return true;

Je nachdem, welche PHP-Version du hast führt dies zu einem fatalen Fehler.
PHP Version 8.2.6: Compile Error: A function with return type must return a value.
Ältere PHP-Versionen tolerieren dies noch.

Es werden beide E-Mails versendet und beide Betreff um den Benutzernamen erweitert.
Es muss also an etwas anderem liegen.

Wichtig ist auch die Plugin-Konfiguration.
Dein Plugin muss auch aktiviert sein.

Wichtig ist auch die Formular-Konfiguration.
Dort legst du auf dem Reiter 'Edit Mail Options' ja fest
- welche Edit-E-Mails überhaupt versendet werden sollen und
- ob der Benutzer dies beim Speichern der Änderungen selbst entscheiden kann.

Dein Debugging ist wie du selbst feststellst, etwas aufwendig.
Trotzdem kannst du auch damit erfahren:
- für welche E-Mail-Art der Code überhaupt anläuft,
- ob er erfolgreich durchläuft.

Liebe Grüße, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

More
1 month 1 week ago #10216 by MaliRaj
Ich habe tatsächlich gerade die php-Version von 8.0 auf 8.2 umgestellt. Danke für den Fehlerhinweis. Habe ich sofort korrigiert. Ich weiß nicht, ob es bei mir wirklich negative Auswirkungen hat, da ich die Scripte für jedes von mir bearbeitete Event in eine eigene Datei ausgelagert habe, die ich wiederum vom Custom-Plugin innerhalb des Eventhandlers aus aufrufe. So habe ich einen besseren Überblick für alle Formulare und die dort benutzten/erweiterten Events. Und dort steht immer ein "return true;" am Ende. Aber es soll natürlich korrekt und sicher sein. Deshalb nochmals Danke für die Korrektur. Ich muss mich unbedingt mal mit einem Debugger auseinandersetzen. Vielleicht XDebug? Bis dahin muss ich mit Logfiles arbeiten. Mal sehen, was nach ein paar Tagen loggen herauszufinden ist.

Freundliche Grüße aus PM
Heinz

More
1 month 1 week ago #10218 by Administrator IV
Replied by Administrator IV on topic Trigger für Edit-Benutzermail und Edit-Ergebnismail
Hallo Heinz,

nur damit es keine Missverständnisse gibt.

Zu: Und dort steht immer ein "return true;" am Ende.

Es ging bei meinem Hinweise nicht um exakt das eine 'return;' am Ende.
Bei höheren PHP-Versionen reicht schon ein Code-Bereich, der gar nicht anläuft und tatsächlich abläuft, um einen fatalen Fehler zu erhalten.
Etwa die PHP Version 8.2.6 meldet hier einen 'Compile Error' und keinen 'Runtime-Error'.

Es ging um das folgende Code-Stück mittendrin:
Code:
if ($form->context != "vfedit{$form->id}") {     // Script nur in Edit-Mail ausführen     return; }

Liebe Grüße, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).
The following user(s) said Thank You: MaliRaj

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum