aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/includes/notifications/type/approve_post.php21
-rw-r--r--phpBB/includes/notifications/type/approve_topic.php21
2 files changed, 30 insertions, 12 deletions
diff --git a/phpBB/includes/notifications/type/approve_post.php b/phpBB/includes/notifications/type/approve_post.php
index a3a52b8780..91fb4106b1 100644
--- a/phpBB/includes/notifications/type/approve_post.php
+++ b/phpBB/includes/notifications/type/approve_post.php
@@ -69,11 +69,9 @@ class phpbb_notifications_type_approve_post extends phpbb_notifications_type_pos
*/
public static function find_users_for_notification(ContainerBuilder $phpbb_container, $post)
{
- $users = array();
+ $db = $phpbb_container->get('dbal.conn');
- /* todo
- * find what type of notification they'd like to receive
- */
+ $users = array();
$users[$post['poster_id']] = array('');
$auth_read = $phpbb_container->get('auth')->acl_get_list(array_keys($users), 'f_read', $post['forum_id']);
@@ -85,10 +83,21 @@ class phpbb_notifications_type_approve_post extends phpbb_notifications_type_pos
$notify_users = array();
- foreach ($auth_read[$post['forum_id']]['f_read'] as $user_id)
+ $sql = 'SELECT *
+ FROM ' . USER_NOTIFICATIONS_TABLE . "
+ WHERE item_type = 'moderation_queue'
+ AND " . $db->sql_in_set('user_id', $auth_read[$post['forum_id']]['f_read']);
+ $result = $db->sql_query($sql);
+ while ($row = $db->sql_fetchrow($result))
{
- $notify_users[$user_id] = $users[$user_id];
+ if (!isset($rowset[$row['user_id']]))
+ {
+ $notify_users[$row['user_id']] = array();
+ }
+
+ $notify_users[$row['user_id']][] = $row['method'];
}
+ $db->sql_freeresult($result);
return $notify_users;
}
diff --git a/phpBB/includes/notifications/type/approve_topic.php b/phpBB/includes/notifications/type/approve_topic.php
index ba7227c671..7da6fde747 100644
--- a/phpBB/includes/notifications/type/approve_topic.php
+++ b/phpBB/includes/notifications/type/approve_topic.php
@@ -69,11 +69,9 @@ class phpbb_notifications_type_approve_topic extends phpbb_notifications_type_to
*/
public static function find_users_for_notification(ContainerBuilder $phpbb_container, $post)
{
- $users = array();
+ $db = $phpbb_container->get('dbal.conn');
- /* todo
- * find what type of notification they'd like to receive
- */
+ $users = array();
$users[$post['poster_id']] = array('');
$auth_read = $phpbb_container->get('auth')->acl_get_list(array_keys($users), 'f_read', $post['forum_id']);
@@ -85,10 +83,21 @@ class phpbb_notifications_type_approve_topic extends phpbb_notifications_type_to
$notify_users = array();
- foreach ($auth_read[$post['forum_id']]['f_read'] as $user_id)
+ $sql = 'SELECT *
+ FROM ' . USER_NOTIFICATIONS_TABLE . "
+ WHERE item_type = 'moderation_queue'
+ AND " . $db->sql_in_set('user_id', $auth_read[$post['forum_id']]['f_read']);
+ $result = $db->sql_query($sql);
+ while ($row = $db->sql_fetchrow($result))
{
- $notify_users[$user_id] = $users[$user_id];
+ if (!isset($rowset[$row['user_id']]))
+ {
+ $notify_users[$row['user_id']] = array();
+ }
+
+ $notify_users[$row['user_id']][] = $row['method'];
}
+ $db->sql_freeresult($result);
return $notify_users;
}