Fix invalid "emailer_prepare" Hook

- Use IEmail instead of array data
- Introduce "composer" based library for phpmailer
This commit is contained in:
Philipp Holzer 2020-01-29 20:20:40 +01:00
parent db9f75fbdb
commit f6aea0d65a
No known key found for this signature in database
GPG key ID: D8365C3D36B77D90
3 changed files with 24 additions and 5 deletions

View file

@ -475,7 +475,7 @@ Eine komplette Liste aller Hook-Callbacks mit den zugehörigen Dateien (am 01-Ap
### src/Util/Emailer.php
Hook::callAll('emailer_send_prepare', $params);
Hook::callAll('emailer_send_prepare', $email);
Hook::callAll("emailer_send", $hookdata);
### src/Util/Map.php

View file

@ -132,4 +132,25 @@ class Email implements IEmail
return $newEmail;
}
/**
* Creates a new Email instance based on a given prototype
*
* @param static $prototype The base prototype
* @param array $data The delta-data (key must be an existing property)
*
* @return static The new email instance
*/
public static function createFromPrototype(Email $prototype, array $data = [])
{
$newMail = clone $prototype;
foreach ($data as $key => $value) {
if (property_exists($newMail, $key)) {
$newMail->{$key} = $value;
}
}
return $newMail;
}
}

View file

@ -45,11 +45,9 @@ class Emailer
*/
public function send(IEmail $email)
{
$params['sent'] = false;
Hook::callAll('emailer_send_prepare', $email);
Hook::callAll('emailer_send_prepare', $params);
if ($params['sent']) {
if (empty($email)) {
return true;
}