64 lines
1.5 KiB
PHP
64 lines
1.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file classes/mail/traits/Sender.php
|
|
*
|
|
* Copyright (c) 2014-2022 Simon Fraser University
|
|
* Copyright (c) 2000-2022 John Willinsky
|
|
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
|
*
|
|
* @class Sender
|
|
*
|
|
* @ingroup mail_traits
|
|
*
|
|
* @brief Mailable trait to set the sender to a User
|
|
*/
|
|
|
|
namespace PKP\mail\traits;
|
|
|
|
use BadMethodCallException;
|
|
use PKP\mail\Mailable;
|
|
use PKP\mail\variables\SenderEmailVariable;
|
|
use PKP\user\User;
|
|
|
|
trait Sender
|
|
{
|
|
/**
|
|
* User that sends mailable
|
|
*/
|
|
protected User $sender;
|
|
|
|
/**
|
|
* @copydoc Illuminate\Mail\Mailable::setAddress()
|
|
*
|
|
* @param null|mixed $name
|
|
*/
|
|
abstract protected function setAddress($address, $name = null, $property = 'to');
|
|
|
|
/**
|
|
* @copydoc Illuminate\Mail\Mailable::from()
|
|
*
|
|
* @param null|mixed $name
|
|
*/
|
|
public function from($address, $name = null)
|
|
{
|
|
throw new BadMethodCallException(static::class . ' doesn\'t support ' . __FUNCTION__ . '(), use sender() instead');
|
|
}
|
|
|
|
/**
|
|
* Set recipients of the email and set values for related template variables
|
|
*/
|
|
public function sender(User $sender, ?string $defaultLocale = null): Mailable
|
|
{
|
|
$this->setAddress($sender->getEmail(), $sender->getFullName(true, false, $defaultLocale), 'from');
|
|
$this->variables[] = new SenderEmailVariable($sender, $this);
|
|
$this->sender = $sender;
|
|
return $this;
|
|
}
|
|
|
|
public function getSenderUser(): User
|
|
{
|
|
return $this->sender;
|
|
}
|
|
}
|