mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-06 08:47:45 +02:00
[ticket/11444] Moving the in-board notifications to a method class
Currently the in-board method for the notifications is hardcoded and cannot be disabled. This method should be in his own class extending `phpbb\notification\method\method_interface`. It also add the possibility, for each method, to be enabled by default (ie: no entry in the DB => notification enabled). https://tracker.phpbb.com/browse/PHPBB3-11444 https://tracker.phpbb.com/browse/PHPBB3-11967 PHPBB3-11444
This commit is contained in:
committed by
Tristan Darricau
parent
58d1d37c16
commit
be0d4e20d4
@@ -25,12 +25,48 @@ interface method_interface
|
||||
*/
|
||||
public function get_type();
|
||||
|
||||
/**
|
||||
* Is the method enable by default?
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function is_enabled_by_default();
|
||||
|
||||
/**
|
||||
* Is this method available for the user?
|
||||
* This is checked on the notifications options
|
||||
*/
|
||||
public function is_available();
|
||||
|
||||
/**
|
||||
* Return the list of the users already notified
|
||||
*
|
||||
* @param int $notification_type_id Type of the notification
|
||||
* @param array $options
|
||||
* @return array User
|
||||
*/
|
||||
public function get_notified_users($notification_type_id, array $options);
|
||||
|
||||
/**
|
||||
* Load the user's notifications
|
||||
*
|
||||
* @param 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 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
|
||||
*/
|
||||
public function load_notifications(array $options = array());
|
||||
|
||||
/**
|
||||
* Add a notification to the queue
|
||||
*
|
||||
@@ -42,4 +78,72 @@ interface method_interface
|
||||
* Parse the queue and notify the users
|
||||
*/
|
||||
public function notify();
|
||||
|
||||
/**
|
||||
* Update a notification
|
||||
*
|
||||
* @param \phpbb\notification\type\type_interface $notification Notification to update
|
||||
* @param array $data Data specific for this type that will be updated
|
||||
* @param array $options
|
||||
*/
|
||||
public function update_notification($notification, array $data, array $options);
|
||||
|
||||
/**
|
||||
* Mark notifications read or unread
|
||||
*
|
||||
* @param bool|string $notification_type_id Type identifier of item types. False to mark read for all item types
|
||||
* @param bool|int|array $item_id Item id or array of item ids. False to mark read for all item ids
|
||||
* @param bool|int|array $user_id User id or array of user ids. False to mark read for all user ids
|
||||
* @param bool|int $time Time at which to mark all notifications prior to as read. False to mark all as read. (Default: False)
|
||||
* @param bool $mark_read Define if the notification as to be set to True or False. (Default: True)
|
||||
*/
|
||||
public function mark_notifications($notification_type_id, $item_id, $user_id, $time = false, $mark_read = true);
|
||||
|
||||
/**
|
||||
* Mark notifications read or unread from a parent identifier
|
||||
*
|
||||
* @param string $notification_type_id Type identifier of item types
|
||||
* @param bool|int|array $item_parent_id Item parent id or array of item parent ids. False to mark read for all item parent ids
|
||||
* @param bool|int|array $user_id User id or array of user ids. False to mark read for all user ids
|
||||
* @param bool|int $time Time at which to mark all notifications prior to as read. False to mark all as read. (Default: False)
|
||||
* @param bool $mark_read Define if the notification as to be set to True or False. (Default: True)
|
||||
*/
|
||||
public function mark_notifications_by_parent($notification_type_id, $item_parent_id, $user_id, $time = false, $mark_read = true);
|
||||
|
||||
/**
|
||||
* Mark notifications read or unread
|
||||
*
|
||||
* @param int $notification_id Notification id of notification ids.
|
||||
* @param bool|int $time Time at which to mark all notifications prior to as read. False to mark all as read. (Default: False)
|
||||
* @param bool $mark_read Define if the notification as to be set to True or False. (Default: True)
|
||||
*/
|
||||
public function mark_notifications_by_id($notification_id, $time = false, $mark_read = true);
|
||||
|
||||
/**
|
||||
* Delete a notification
|
||||
*
|
||||
* @param string $notification_type_id Type identifier of item types
|
||||
* @param int|array $item_id Identifier within the type (or array of ids)
|
||||
* @param mixed $parent_id Parent identifier within the type (or array of ids), used in combination with item_id if specified (Default: false; not checked)
|
||||
* @param mixed $user_id User id (Default: false; not checked)
|
||||
*/
|
||||
public function delete_notifications($notification_type_id, $item_id, $parent_id = false, $user_id = false);
|
||||
|
||||
/**
|
||||
* Delete all notifications older than a certain time
|
||||
*
|
||||
* @param int $timestamp Unix timestamp to delete all notifications that were created before
|
||||
* @param bool $only_read True (default) to only prune read notifications
|
||||
*/
|
||||
public function prune_notifications($timestamp, $only_read = true);
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* @param string $notification_type_id Type identifier of the subscription
|
||||
*/
|
||||
public function purge_notifications($notification_type_id);
|
||||
}
|
||||
|
Reference in New Issue
Block a user