قرینه از
https://github.com/matomo-org/matomo.git
synced 2025-08-22 15:07:44 +00:00

* Add new setting for enabling inactive user notifications (#23393) * Migrate 'last seen' from options table to users table (#23388) * Create scheduled task to send inactive users security notification (#23403) * Simplify enrich user and remove surplus methods * Create a language helper to run code using given user's preferred language * Update UI test screenshots --------- Co-authored-by: Nathan Gavin <nathangavin987@gmail.com>
65 خطوط
1.6 KiB
PHP
65 خطوط
1.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Matomo - free/libre analytics platform
|
|
*
|
|
* @link https://matomo.org
|
|
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
|
*/
|
|
|
|
namespace Piwik\Plugins\UsersManager\UserNotifications;
|
|
|
|
use Piwik\Container\StaticContainer;
|
|
|
|
abstract class UserEmailNotification extends UserNotification
|
|
{
|
|
/**
|
|
* A list of recipient emails
|
|
*
|
|
* @var array
|
|
*/
|
|
private $recipients;
|
|
|
|
/**
|
|
* Data in the format of ['email@example.com' => ['item1' => 'value1'], ...] that will be passed to the email class
|
|
*
|
|
* @var array
|
|
*/
|
|
private $emailData;
|
|
|
|
/**
|
|
* @param array $users A list of users this notification is about
|
|
* @param array $recipients A list of recipients this notification will be sent to
|
|
* @param array $emailData Optional additional data passed to the email notification indexed by a recipient
|
|
*/
|
|
public function __construct(
|
|
array $users,
|
|
array $recipients,
|
|
array $emailData = []
|
|
) {
|
|
parent::__construct($users);
|
|
|
|
$this->recipients = $recipients;
|
|
$this->emailData = $emailData;
|
|
}
|
|
|
|
abstract public function getEmailClass(): string;
|
|
|
|
public function dispatch(): bool
|
|
{
|
|
foreach ($this->recipients as $recipient) {
|
|
$email = StaticContainer::getContainer()->make(
|
|
$this->getEmailClass(),
|
|
[
|
|
'notification' => $this,
|
|
'recipient' => $recipient,
|
|
'emailData' => $this->emailData[$recipient] ?? [],
|
|
]
|
|
);
|
|
$email->safeSend();
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|