class email extends messenger_base

Email notification method class This class handles sending emails for notifications

Properties

protected manager $notification_manager from  base
protected array $queue

Queue of messages to be sent

from  base
protected user_loader $user_loader from  messenger_base
protected string $phpbb_root_path from  messenger_base
protected string $php_ext from  messenger_base
protected user $user
protected config $config
protected driver_interface $db
protected string $notification_emails_table

Methods

set_notification_manager(manager $notification_manager)

Set notification manager (required)

from  base
bool
is_enabled_by_default()

Is the method enable by default?

from  base
array
get_notified_users(int $notification_type_id, array $options)

Return the list of the users already notified

array
load_notifications(array $options = array())

Load the user's notifications

from  base
add_to_queue(type_interface $notification)

Add a notification to the queue

from  base
update_notification(type_interface $notification, array $data, array $options)

Update a notification

from  base
mark_notifications(bool|string $notification_type_id, bool|int|array $item_id, bool|int|array $user_id, bool|int $time = false, bool $mark_read = true)

{@inheritdoc

mark_notifications_by_parent(string $notification_type_id, bool|int|array $item_parent_id, bool|int|array $user_id, bool|int $time = false, bool $mark_read = true)

Mark notifications read or unread from a parent identifier

mark_notifications_by_id(int $notification_id, bool|int $time = false, bool $mark_read = true)

Mark notifications read or unread

from  base
delete_notifications(string $notification_type_id, int|array $item_id, mixed $parent_id = false, mixed $user_id = false)

Delete a notification

from  base
prune_notifications(int $timestamp, bool $only_read = true)

Delete all notifications older than a certain time

from  base
purge_notifications(string $notification_type_id)

Purge all notifications of a certain type

from  base
empty_queue()

Empty the queue

from  base
__construct(user_loader $user_loader, user $user, config $config, driver_interface $db, string $phpbb_root_path, string $php_ext, string $notification_emails_table)

Notification Method email Constructor

is_available(type_interface $notification_type = null)

Is this method available for the user? This is checked on the notifications options

null
notify_using_messenger(int $notify_method, string $template_dir_prefix = '')

Notify using phpBB messenger

string
get_type()

Get notification method name

notify()

Parse the queue and notify the users

static array
clean_data(array $data)

Clean data to contain only what we need for email notifications table

Details

in base at line 36
set_notification_manager(manager $notification_manager)

Set notification manager (required)

Parameters

manager $notification_manager

in base at line 46
bool is_enabled_by_default()

Is the method enable by default?

Return Value

bool

at line 84
array get_notified_users(int $notification_type_id, array $options)

Return the list of the users already notified

Parameters

int $notification_type_id

ID of the notification type

array $options

Return Value

array

User

in base at line 62
array load_notifications(array $options = array())

Load the user's notifications

Parameters

array $options

Optional options to control what notifications are loaded notification_id Notification id to load (or array of notification ids) user_id User id to load notifications for (Default: $user->data['user_id']) order_by Order by (Default: notification_time) order_dir Order direction (Default: DESC) limit Number of notifications to load (Default: 5) start Notifications offset (Default: 0) all_unread Load all unread notifications? If set to true, count_unread is set to true (Default: false) count_unread Count all unread notifications? (Default: false) count_total Count all notifications? (Default: false)

Return Value

array

Array of information based on the request with keys: 'notifications' array of notification type objects 'unread_count' number of unread notifications the user has if count_unread is true in the options 'total_count' number of notifications the user has if count_total is true in the options

in base at line 76
add_to_queue(type_interface $notification)

Add a notification to the queue

Parameters

type_interface $notification

in base at line 84
update_notification(type_interface $notification, array $data, array $options)

Update a notification

Parameters

type_interface $notification

Notification to update

array $data

Data specific for this type that will be updated

array $options

at line 126
mark_notifications(bool|string $notification_type_id, bool|int|array $item_id, bool|int|array $user_id, bool|int $time = false, bool $mark_read = true)

{@inheritdoc

Parameters

bool|string $notification_type_id

Type identifier of item types. False to mark read for all item types

bool|int|array $item_id

Item id or array of item ids. False to mark read for all item ids

bool|int|array $user_id

User id or array of user ids. False to mark read for all user ids

bool|int $time

Time at which to mark all notifications prior to as read. False to mark all as read. (Default: False)

bool $mark_read

Define if the notification as to be set to True or False. (Default: True)

at line 138
mark_notifications_by_parent(string $notification_type_id, bool|int|array $item_parent_id, bool|int|array $user_id, bool|int $time = false, bool $mark_read = true)

Mark notifications read or unread from a parent identifier

Parameters

string $notification_type_id

Type identifier of item types

bool|int|array $item_parent_id

Item parent id or array of item parent ids. False to mark read for all item parent ids

bool|int|array $user_id

User id or array of user ids. False to mark read for all user ids

bool|int $time

Time at which to mark all notifications prior to as read. False to mark all as read. (Default: False)

bool $mark_read

Define if the notification as to be set to True or False. (Default: True)

in base at line 105
mark_notifications_by_id(int $notification_id, bool|int $time = false, bool $mark_read = true)

Mark notifications read or unread

Parameters

int $notification_id

Notification id of notification ids.

bool|int $time

Time at which to mark all notifications prior to as read. False to mark all as read. (Default: False)

bool $mark_read

Define if the notification as to be set to True or False. (Default: True)

in base at line 112
delete_notifications(string $notification_type_id, int|array $item_id, mixed $parent_id = false, mixed $user_id = false)

Delete a notification

Parameters

string $notification_type_id

Type identifier of item types

int|array $item_id

Identifier within the type (or array of ids)

mixed $parent_id

Parent identifier within the type (or array of ids), used in combination with item_id if specified (Default: false; not checked)

mixed $user_id

User id (Default: false; not checked)

in base at line 119
prune_notifications(int $timestamp, bool $only_read = true)

Delete all notifications older than a certain time

Parameters

int $timestamp

Unix timestamp to delete all notifications that were created before

bool $only_read

True (default) to only prune read notifications

in base at line 126
purge_notifications(string $notification_type_id)

Purge all notifications of a certain type

This should be called when an extension which has notification types is purged so that all those notifications are removed

Parameters

string $notification_type_id

Type identifier of the subscription

in base at line 133
protected empty_queue()

Empty the queue

at line 48
__construct(user_loader $user_loader, user $user, config $config, driver_interface $db, string $phpbb_root_path, string $php_ext, string $notification_emails_table)

Notification Method email Constructor

Parameters

user_loader $user_loader
user $user
config $config
driver_interface $db
string $phpbb_root_path
string $php_ext
string $notification_emails_table

at line 76
is_available(type_interface $notification_type = null)

Is this method available for the user? This is checked on the notifications options

Parameters

type_interface $notification_type

An optional instance of a notification type. This method returns false only if the type is provided and if it doesn't provide an email template.

in messenger_base at line 68
protected null notify_using_messenger(int $notify_method, string $template_dir_prefix = '')

Notify using phpBB messenger

Parameters

int $notify_method

Notify method for messenger (e.g. NOTIFY_IM)

string $template_dir_prefix

Base directory to prepend to the email template name

Return Value

null

at line 63
string get_type()

Get notification method name

Return Value

string

at line 107
notify()

Parse the queue and notify the users

at line 153
static array clean_data(array $data)

Clean data to contain only what we need for email notifications table

Parameters

array $data

Notification data

Return Value

array

Cleaned notification data