From 75a24ae4845ce3d60460afc7082dd1bbb12626f0 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Mon, 21 Apr 2025 15:42:59 +0200 Subject: [PATCH] [ticket/17493] Explicitly use email in acp/ucp modules PHPBB-17493 --- phpBB/includes/acp/acp_email.php | 53 +++++++++++++---------------- phpBB/includes/acp/acp_inactive.php | 34 ++++++++---------- phpBB/includes/ucp/ucp_activate.php | 29 +++++++--------- phpBB/includes/ucp/ucp_resend.php | 35 ++++++++----------- 4 files changed, 65 insertions(+), 86 deletions(-) diff --git a/phpBB/includes/acp/acp_email.php b/phpBB/includes/acp/acp_email.php index 5156676881..2d1b4b72dd 100644 --- a/phpBB/includes/acp/acp_email.php +++ b/phpBB/includes/acp/acp_email.php @@ -213,43 +213,38 @@ class acp_email ); extract($phpbb_dispatcher->trigger_event('core.acp_email_send_before', compact($vars))); - /** @var \phpbb\di\service_collection */ - $messenger = $phpbb_container->get('messenger.method_collection'); - $messenger_collection_iterator = $messenger->getIterator(); + /** @var \phpbb\di\service_collection $messenger_collection */ + $messenger_collection = $phpbb_container->get('messenger.method_collection'); + /** @var \phpbb\messenger\method\messenger_interface $messenger_method */ + $messenger_method = $messenger_collection->offsetGet('messenger.method.email'); + for ($i = 0, $size = count($email_list); $i < $size; $i++) { $used_lang = $email_list[$i][0]['lang']; - /** - * @var \phpbb\messenger\method\messenger_interface $messenger_method - * @psalm-suppress UndefinedMethod - */ - foreach ($messenger_collection_iterator as $messenger_method) + $messenger_method->set_use_queue($use_queue); + $messenger_method->template($email_template, $used_lang); + $messenger_method->subject(html_entity_decode($subject, ENT_COMPAT)); + $messenger_method->assign_vars($template_data); + + for ($j = 0, $list_size = count($email_list[$i]); $j < $list_size; $j++) { - $messenger_method->set_use_queue($use_queue); - $messenger_method->template($email_template, $used_lang); - $messenger_method->subject(html_entity_decode($subject, ENT_COMPAT)); - $messenger_method->assign_vars($template_data); - - for ($j = 0, $list_size = count($email_list[$i]); $j < $list_size; $j++) + $email_row = $email_list[$i][$j]; + if (count($email_list[$i]) == 1) { - $email_row = $email_list[$i][$j]; - if (count($email_list[$i]) == 1) - { - $messenger_method->to($email_row['email'], $email_row['name']); - } - else - { - $messenger_method->bcc($email_row['email'], $email_row['name']); - } + $messenger_method->to($email_row['email'], $email_row['name']); + } + else + { + $messenger_method->bcc($email_row['email'], $email_row['name']); } - - $messenger_method->anti_abuse_headers($config, $user); - $messenger_method->set_mail_priority($priority); - - $errored = !$messenger_method->send() || $errored; - $messenger_method->save_queue(); } + + $messenger_method->anti_abuse_headers($config, $user); + $messenger_method->set_mail_priority($priority); + + $errored = !$messenger_method->send() || $errored; + $messenger_method->save_queue(); } unset($email_list); diff --git a/phpBB/includes/acp/acp_inactive.php b/phpBB/includes/acp/acp_inactive.php index b4b39cbdf9..35bbdf4e85 100644 --- a/phpBB/includes/acp/acp_inactive.php +++ b/phpBB/includes/acp/acp_inactive.php @@ -194,9 +194,10 @@ class acp_inactive $result = $db->sql_query($sql); - /** @var \phpbb\di\service_collection */ - $messenger = $phpbb_container->get('messenger.method_collection'); - $messenger_collection_iterator = $messenger->getIterator(); + /** @var \phpbb\di\service_collection $messenger_collection */ + $messenger_collection = $phpbb_container->get('messenger.method_collection'); + /** @var \phpbb\messenger\method\messenger_interface $messenger_method */ + $messenger_method = $messenger_collection->offsetGet('messenger.method.email'); if ($row = $db->sql_fetchrow($result)) { @@ -205,24 +206,17 @@ class acp_inactive do { - /** - * @var \phpbb\messenger\method\messenger_interface $messenger_method - * @psalm-suppress UndefinedMethod - */ - foreach ($messenger_collection_iterator as $messenger_method) - { - $messenger_method->template('user_remind_inactive', $row['user_lang']); - $messenger_method->set_addresses($row); - $messenger_method->anti_abuse_headers($config, $user); - $messenger_method->assign_vars([ - 'USERNAME' => html_entity_decode($row['username'], ENT_COMPAT), - 'REGISTER_DATE' => $user->format_date($row['user_regdate'], false, true), - 'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u=" . $row['user_id'] . '&k=' . $row['user_actkey'], - ]); + $messenger_method->template('user_remind_inactive', $row['user_lang']); + $messenger_method->set_addresses($row); + $messenger_method->anti_abuse_headers($config, $user); + $messenger_method->assign_vars([ + 'USERNAME' => html_entity_decode($row['username'], ENT_COMPAT), + 'REGISTER_DATE' => $user->format_date($row['user_regdate'], false, true), + 'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u=" . $row['user_id'] . '&k=' . $row['user_actkey'], + ]); - $messenger_method->send(); - $messenger_method->save_queue(); - } + $messenger_method->send(); + $messenger_method->save_queue(); $usernames[] = $row['username']; $user_ids[] = (int) $row['user_id']; diff --git a/phpBB/includes/ucp/ucp_activate.php b/phpBB/includes/ucp/ucp_activate.php index 50ccdfa7e6..5351e7c518 100644 --- a/phpBB/includes/ucp/ucp_activate.php +++ b/phpBB/includes/ucp/ucp_activate.php @@ -131,25 +131,20 @@ class ucp_activate $phpbb_notifications = $phpbb_container->get('notification_manager'); $phpbb_notifications->delete_notifications('notification.type.admin_activate_user', $user_row['user_id']); - $messenger = $phpbb_container->get('messenger.method_collection'); - $messenger_collection_iterator = $messenger->getIterator(); + /** @var \phpbb\di\service_collection $messenger_collection */ + $messenger_collection = $phpbb_container->get('messenger.method_collection'); + /** @var \phpbb\messenger\method\messenger_interface $messenger_method */ + $messenger_method = $messenger_collection->offsetGet('messenger.method.email'); - /** - * @var \phpbb\messenger\method\messenger_interface $messenger_method - * @psalm-suppress UndefinedMethod - */ - foreach ($messenger_collection_iterator as $messenger_method) - { - $messenger_method->set_use_queue(false); - $messenger_method->template('admin_welcome_activated', $user_row['user_lang']); - $messenger_method->set_addresses($user_row); - $messenger_method->anti_abuse_headers($config, $user); - $messenger_method->assign_vars([ - 'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT), - ]); + $messenger_method->set_use_queue(false); + $messenger_method->template('admin_welcome_activated', $user_row['user_lang']); + $messenger_method->set_addresses($user_row); + $messenger_method->anti_abuse_headers($config, $user); + $messenger_method->assign_vars([ + 'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT), + ]); - $messenger_method->send(); - } + $messenger_method->send(); $message = 'ACCOUNT_ACTIVE_ADMIN'; } diff --git a/phpBB/includes/ucp/ucp_resend.php b/phpBB/includes/ucp/ucp_resend.php index 023ea80852..c2debbbe27 100644 --- a/phpBB/includes/ucp/ucp_resend.php +++ b/phpBB/includes/ucp/ucp_resend.php @@ -133,29 +133,24 @@ class ucp_resend WHERE ' . $db->sql_in_set('user_id', $admin_ary[0]['a_user']); $result = $db->sql_query($sql); - /** @var \phpbb\di\service_collection */ - $messenger = $phpbb_container->get('messenger.method_collection'); - $messenger_collection_iterator = $messenger->getIterator(); + /** @var \phpbb\di\service_collection $messenger_collection */ + $messenger_collection = $phpbb_container->get('messenger.method_collection'); + /** @var \phpbb\messenger\method\messenger_interface $messenger_method */ + $messenger_method = $messenger_collection->offsetGet('messenger.method.email'); + while ($row = $db->sql_fetchrow($result)) { - /** - * @var \phpbb\messenger\method\messenger_interface $messenger_method - * @psalm-suppress UndefinedMethod - */ - foreach ($messenger_collection_iterator as $messenger_method) - { - $messenger_method->set_use_queue(false); - $messenger_method->template('admin_activate', $row['user_lang']); - $messenger_method->set_addresses($row); - $messenger_method->anti_abuse_headers($config, $user); - $messenger_method->assign_vars([ - 'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT), - 'U_USER_DETAILS' => $board_url . "/memberlist.$phpEx?mode=viewprofile&u={$user_row['user_id']}", - 'U_ACTIVATE' => $board_url . "/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k={$user_row['user_actkey']}", - ]); + $messenger_method->set_use_queue(false); + $messenger_method->template('admin_activate', $row['user_lang']); + $messenger_method->set_addresses($row); + $messenger_method->anti_abuse_headers($config, $user); + $messenger_method->assign_vars([ + 'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT), + 'U_USER_DETAILS' => $board_url . "/memberlist.$phpEx?mode=viewprofile&u={$user_row['user_id']}", + 'U_ACTIVATE' => $board_url . "/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k={$user_row['user_actkey']}", + ]); - $messenger_method->send(); - } + $messenger_method->send(); } $db->sql_freeresult($result); }