abstract class base implements method_interface

Base notifications method class

Properties

protected manager $notification_manager
protected array $queue

Queue of messages to be sent

Methods

set_notification_manager(manager $notification_manager)

Set notification manager (required)

bool
is_enabled_by_default()

Is the method enable by default?

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

add_to_queue(type_interface $notification)

Add a notification to the queue

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

Update a notification

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

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

Delete a notification

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

Delete all notifications older than a certain time

purge_notifications(string $notification_type_id)

Purge all notifications of a certain type

empty_queue()

Empty the queue

Details

at line 36
set_notification_manager(manager $notification_manager)

Set notification manager (required)

Parameters

manager $notification_manager

at line 46
bool is_enabled_by_default()

Is the method enable by default?

Return Value

bool

at line 54
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

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

at line 76
add_to_queue(type_interface $notification)

Add a notification to the queue

Parameters

type_interface $notification

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 91
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 98
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)

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)

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)

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

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

at line 133
protected empty_queue()

Empty the queue