[ticket/17489] Fix queue for ucp_resend, add type hints to $messenger_method

PHPBB-17489
This commit is contained in:
rxu 2025-04-03 19:16:08 +07:00
parent 7467b567e8
commit c23504e3c7
No known key found for this signature in database
GPG key ID: 955F0567380E586A
7 changed files with 15 additions and 6 deletions

View file

@ -227,6 +227,7 @@ class acp_email
$used_lang = $email_list[$i][0]['lang']; $used_lang = $email_list[$i][0]['lang'];
$used_method = $email_list[$i][0]['method']; $used_method = $email_list[$i][0]['method'];
/** @var \phpbb\messenger\method\base $messenger_method */
foreach ($messenger_collection_iterator as $messenger_method) foreach ($messenger_collection_iterator as $messenger_method)
{ {
$notify_method = $messenger_method->get_id(); $notify_method = $messenger_method->get_id();
@ -272,6 +273,7 @@ class acp_email
if ($use_queue) if ($use_queue)
{ {
/** @var \phpbb\messenger\method\base $messenger_method */
foreach ($messenger_collection_iterator as $messenger_method) foreach ($messenger_collection_iterator as $messenger_method)
{ {
$messenger_method->save_queue(); $messenger_method->save_queue();

View file

@ -205,6 +205,7 @@ class acp_inactive
do do
{ {
/** @var \phpbb\messenger\method\base $messenger_method */
foreach ($messenger_collection_iterator as $messenger_method) foreach ($messenger_collection_iterator as $messenger_method)
{ {
if ($messenger_method->get_id() == $user_row['user_notify_type'] || $user_row['user_notify_type'] == $messenger_method::NOTIFY_BOTH) if ($messenger_method->get_id() == $user_row['user_notify_type'] || $user_row['user_notify_type'] == $messenger_method::NOTIFY_BOTH)
@ -227,6 +228,7 @@ class acp_inactive
} }
while ($row = $db->sql_fetchrow($result)); while ($row = $db->sql_fetchrow($result));
/** @var \phpbb\messenger\method\base $messenger_method */
foreach ($messenger_collection_iterator as $messenger_method) foreach ($messenger_collection_iterator as $messenger_method)
{ {
$messenger_method->save_queue(); $messenger_method->save_queue();

View file

@ -133,6 +133,8 @@ class ucp_activate
$messenger = $phpbb_container->get('messenger.method_collection'); $messenger = $phpbb_container->get('messenger.method_collection');
$messenger_collection_iterator = $messenger->getIterator(); $messenger_collection_iterator = $messenger->getIterator();
/** @var \phpbb\messenger\method\base $messenger_method */
foreach ($messenger_collection_iterator as $messenger_method) foreach ($messenger_collection_iterator as $messenger_method)
{ {
if ($messenger_method->get_id() == $user_row['user_notify_type'] || $user_row['user_notify_type'] == $messenger_method::NOTIFY_BOTH) if ($messenger_method->get_id() == $user_row['user_notify_type'] || $user_row['user_notify_type'] == $messenger_method::NOTIFY_BOTH)

View file

@ -138,6 +138,7 @@ class ucp_resend
$messenger_collection_iterator = $messenger->getIterator(); $messenger_collection_iterator = $messenger->getIterator();
while ($row = $db->sql_fetchrow($result)) while ($row = $db->sql_fetchrow($result))
{ {
/** @var \phpbb\messenger\method\base $messenger_method */
foreach ($messenger_collection_iterator as $messenger_method) foreach ($messenger_collection_iterator as $messenger_method)
{ {
$messenger_method->set_use_queue(false); $messenger_method->set_use_queue(false);
@ -153,16 +154,13 @@ class ucp_resend
]); ]);
$messenger_method->send(); $messenger_method->send();
// Save the queue in the messenger method class (has to be called or these messages could be lost)
$messenger_method->save_queue();
} }
} }
} }
$db->sql_freeresult($result); $db->sql_freeresult($result);
// Save the queue in the messenger method class (has to be called or these messages could be lost)
foreach ($messenger_collection_iterator as $messenger_method)
{
$messenger_method->save_queue();
}
} }
$this->update_activation_expiration(); $this->update_activation_expiration();

View file

@ -249,6 +249,8 @@ class message
{ {
/** @psalm-suppress InvalidTemplateParam */ /** @psalm-suppress InvalidTemplateParam */
$messenger_collection_iterator = $messenger->getIterator(); $messenger_collection_iterator = $messenger->getIterator();
/** @var \phpbb\messenger\method\base $messenger_method */
foreach ($messenger_collection_iterator as $messenger_method) foreach ($messenger_collection_iterator as $messenger_method)
{ {
$messenger_method->set_use_queue(false); $messenger_method->set_use_queue(false);

View file

@ -116,6 +116,8 @@ class queue
/** @psalm-suppress InvalidTemplateParam */ /** @psalm-suppress InvalidTemplateParam */
$messenger_collection_iterator = $this->messenger_method_collection->getIterator(); $messenger_collection_iterator = $this->messenger_method_collection->getIterator();
/** @var \phpbb\messenger\method\base $messenger_method */
foreach ($messenger_collection_iterator as $messenger_method) foreach ($messenger_collection_iterator as $messenger_method)
{ {
if (isset($this->queue_data[$messenger_method->get_queue_object_name()])) if (isset($this->queue_data[$messenger_method->get_queue_object_name()]))

View file

@ -114,6 +114,7 @@ abstract class messenger_base extends \phpbb\notification\method\base
continue; continue;
} }
/** @var \phpbb\messenger\method\base $messenger_method */
foreach ($messenger_collection_iterator as $messenger_method) foreach ($messenger_collection_iterator as $messenger_method)
{ {
if ($messenger_method->get_id() == $notify_method || $notify_method == $messenger_method::NOTIFY_BOTH) if ($messenger_method->get_id() == $notify_method || $notify_method == $messenger_method::NOTIFY_BOTH)