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.