aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/notification/manager.php
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2013-09-16 01:24:05 +0200
committerNils Adermann <naderman@naderman.de>2013-09-16 01:24:05 +0200
commit21bbb5850349326464204bdb1bea7ecf5a88c10a (patch)
treec2e2ce66583cf94367301fab73e308c9dd8eddb9 /phpBB/phpbb/notification/manager.php
parentbb395bbc50df53bf2e005d95d45f34c7c8934ff0 (diff)
parentae6f37d559a71fb115cdb954452ebab5fb8fc69f (diff)
downloadforums-21bbb5850349326464204bdb1bea7ecf5a88c10a.tar
forums-21bbb5850349326464204bdb1bea7ecf5a88c10a.tar.gz
forums-21bbb5850349326464204bdb1bea7ecf5a88c10a.tar.bz2
forums-21bbb5850349326464204bdb1bea7ecf5a88c10a.tar.xz
forums-21bbb5850349326464204bdb1bea7ecf5a88c10a.zip
Merge remote-tracking branch 'github-phpbb/develop' into ticket/11700
* github-phpbb/develop: (586 commits) [ticket/11735] Display disabled checkbox in subsilver for read notifications [ticket/11735] Display disabled checkbox when notification is already read [ticket/11844] update acp/authentication language var [ticket/11795] Remove PM popup [ticket/11795] Remove outdated comment from forum_fn.js [ticket/11795] Move find user JS to forum_fn [ticket/11795] Replace TWIG with phpBB syntax in ACP [ticket/11795] Move MSN scripts to forum_fn.js [ticket/11795] Use phpBB template syntax instead of TWIG [ticket/11795] Move PM popup JS to forum_fn.js [ticket/11795] Get rid of pagination JS variables [ticket/11795] Get rid of onload_functions [ticket/11795] Use data-reset-on-edit attr to reset elements [ticket/11795] Redo form elements auto-focus [ticket/11811] Remove outline on :focus [ticket/11836] Fix subsilver fatal error [ticket/11837] Replace escaped single quote with utf-8 single quote [ticket/11836] Fix fatal error on unsupported provider for auth link [ticket/11837] Translate UCP_AUTH_LINK_NOT_SUPPORTED [ticket/11809] Ensure code.js is first script included after jQuery ... Conflicts: phpBB/config/services.yml phpBB/develop/create_schema_files.php phpBB/develop/mysql_upgrader.php phpBB/download/file.php phpBB/includes/bbcode.php phpBB/includes/functions_container.php phpBB/install/database_update.php phpBB/install/index.php phpBB/phpbb/controller/helper.php phpBB/phpbb/controller/resolver.php phpBB/phpbb/request/request_interface.php phpBB/phpbb/session.php phpBB/phpbb/style/extension_path_provider.php phpBB/phpbb/style/path_provider.php phpBB/phpbb/style/path_provider_interface.php phpBB/phpbb/style/resource_locator.php phpBB/phpbb/style/style.php phpBB/phpbb/template/locator.php phpBB/phpbb/template/template.php phpBB/phpbb/template/twig/node/includeasset.php phpBB/phpbb/template/twig/node/includecss.php phpBB/phpbb/template/twig/node/includejs.php phpBB/phpbb/template/twig/twig.php tests/controller/helper_url_test.php tests/di/create_container_test.php tests/extension/style_path_provider_test.php tests/notification/notification_test.php tests/session/continue_test.php tests/session/creation_test.php tests/template/template_events_test.php tests/template/template_test_case.php tests/template/template_test_case_with_tree.php tests/test_framework/phpbb_functional_test_case.php
Diffstat (limited to 'phpBB/phpbb/notification/manager.php')
-rw-r--r--phpBB/phpbb/notification/manager.php21
1 files changed, 12 insertions, 9 deletions
diff --git a/phpBB/phpbb/notification/manager.php b/phpBB/phpbb/notification/manager.php
index 2a445be90e..a865f7d6b9 100644
--- a/phpBB/phpbb/notification/manager.php
+++ b/phpBB/phpbb/notification/manager.php
@@ -61,7 +61,7 @@ class manager
/**
* Notification Constructor
- *
+ *
* @param array $notification_types
* @param array $notification_methods
* @param ContainerBuilder $phpbb_container
@@ -492,15 +492,15 @@ class manager
*
* @param string|array $notification_type_name Type identifier or array of item types (only acceptable if the $item_id is identical for the specified types)
* @param int|array $item_id Identifier within the type (or array of ids)
- * @param array $data Data specific for this type that will be updated
+ * @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)
*/
- public function delete_notifications($notification_type_name, $item_id)
+ public function delete_notifications($notification_type_name, $item_id, $parent_id = false)
{
if (is_array($notification_type_name))
{
foreach ($notification_type_name as $type)
{
- $this->delete_notifications($type, $item_id);
+ $this->delete_notifications($type, $item_id, $parent_id);
}
return;
@@ -510,7 +510,8 @@ class manager
$sql = 'DELETE FROM ' . $this->notifications_table . '
WHERE notification_type_id = ' . (int) $notification_type_id . '
- AND ' . (is_array($item_id) ? $this->db->sql_in_set('item_id', $item_id) : 'item_id = ' . (int) $item_id);
+ AND ' . (is_array($item_id) ? $this->db->sql_in_set('item_id', $item_id) : 'item_id = ' . (int) $item_id) .
+ (($parent_id !== false) ? ' AND ' . ((is_array($parent_id) ? $this->db->sql_in_set('item_parent_id', $parent_id) : 'item_parent_id = ' . (int) $parent_id)) : '');
$this->db->sql_query($sql);
}
@@ -798,11 +799,13 @@ class manager
* Delete all notifications older than a certain time
*
* @param int $timestamp Unix timestamp to delete all notifications that were created before
+ * @param bool $only_unread True (default) to only prune read notifications
*/
- public function prune_notifications($timestamp)
+ public function prune_notifications($timestamp, $only_read = true)
{
$sql = 'DELETE FROM ' . $this->notifications_table . '
- WHERE notification_time < ' . (int) $timestamp;
+ WHERE notification_time < ' . (int) $timestamp .
+ (($only_read) ? ' AND notification_read = 1' : '');
$this->db->sql_query($sql);
}
@@ -836,12 +839,12 @@ class manager
protected function load_object($object_name)
{
$object = $this->phpbb_container->get($object_name);
-
+
if (method_exists($object, 'set_notification_manager'))
{
$object->set_notification_manager($this);
}
-
+
return $object;
}