[ticket/17135] Address review issues but constants

PHPBB-17135
This commit is contained in:
rxu 2025-01-06 18:24:32 +07:00
parent 2f6ec7fc65
commit 28d5534d06
No known key found for this signature in database
GPG key ID: 955F0567380E586A
7 changed files with 50 additions and 33 deletions

View file

@ -227,25 +227,34 @@ class acp_email
foreach ($messenger_collection_iterator as $messenger_method) foreach ($messenger_collection_iterator as $messenger_method)
{ {
if ($messenger_method->get_id() == $used_method || $used_method == NOTIFY_BOTH) $notify_method = $messenger_method->get_id();
if ($notify_method == $used_method || $used_method == NOTIFY_BOTH)
{ {
$messenger_method->set_use_queue($use_queue); $messenger_method->set_use_queue($use_queue);
$messenger_method->template($email_template, $used_lang); $messenger_method->template($email_template, $used_lang);
$messenger_method->subject(html_entity_decode($subject, ENT_COMPAT)); $messenger_method->subject(html_entity_decode($subject, ENT_COMPAT));
$messenger_method->assign_vars($template_data); $messenger_method->assign_vars($template_data);
if ($messenger_method->get_id() == NOTIFY_EMAIL) if ($notify_method == NOTIFY_EMAIL)
{ {
for ($j = 0, $list_size = count($email_list[$i]); $j < $list_size; $j++) for ($j = 0, $list_size = count($email_list[$i]); $j < $list_size; $j++)
{ {
$email_row = $email_list[$i][$j]; $email_row = $email_list[$i][$j];
$messenger_method->{((count($email_list[$i]) == 1) ? 'to' : 'bcc')}($email_row['email'], $email_row['name']); 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->anti_abuse_headers($config, $user); $messenger_method->anti_abuse_headers($config, $user);
$messenger_method->set_mail_priority($priority); $messenger_method->set_mail_priority($priority);
} }
else if ($messenger_method->get_id() == NOTIFY_JABBER) else if ($notify_method == NOTIFY_IM)
{ {
for ($j = 0, $list_size = count($email_list[$i]); $j < $list_size; $j++) for ($j = 0, $list_size = count($email_list[$i]); $j < $list_size; $j++)
{ {
@ -254,7 +263,7 @@ class acp_email
} }
} }
$errored = !$messenger_method->send(); $errored = !$messenger_method->send() || $errored;
if ($use_queue) if ($use_queue)
{ {
$messenger_method->save_queue(); $messenger_method->save_queue();

View file

@ -92,6 +92,7 @@ class ucp_resend
trigger_error('NO_GROUP'); trigger_error('NO_GROUP');
} }
$board_url = generate_board_url();
$coppa = ($row['group_name'] == 'REGISTERED_COPPA' && $row['group_type'] == GROUP_SPECIAL) ? true : false; $coppa = ($row['group_name'] == 'REGISTERED_COPPA' && $row['group_type'] == GROUP_SPECIAL) ? true : false;
$email_method = $phpbb_container->get('messenger.method.email'); $email_method = $phpbb_container->get('messenger.method.email');
@ -107,7 +108,7 @@ class ucp_resend
$email_method->assign_vars([ $email_method->assign_vars([
'WELCOME_MSG' => html_entity_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename']), ENT_COMPAT), 'WELCOME_MSG' => html_entity_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename']), ENT_COMPAT),
'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT), 'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT),
'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k={$user_row['user_actkey']}", 'U_ACTIVATE' => $board_url . "/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k={$user_row['user_actkey']}",
]); ]);
if ($coppa) if ($coppa)
@ -145,8 +146,8 @@ class ucp_resend
$messenger_method->anti_abuse_headers($config, $user); $messenger_method->anti_abuse_headers($config, $user);
$messenger_method->assign_vars([ $messenger_method->assign_vars([
'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT), 'USERNAME' => html_entity_decode($user_row['username'], ENT_COMPAT),
'U_USER_DETAILS' => generate_board_url() . "/memberlist.$phpEx?mode=viewprofile&u={$user_row['user_id']}", 'U_USER_DETAILS' => $board_url . "/memberlist.$phpEx?mode=viewprofile&u={$user_row['user_id']}",
'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k={$user_row['user_actkey']}", 'U_ACTIVATE' => $board_url . "/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k={$user_row['user_actkey']}",
]); ]);
$messenger_method->send(); $messenger_method->send();

View file

@ -117,8 +117,8 @@ abstract class base implements messenger_interface
service_collection $twig_extensions_collection, service_collection $twig_extensions_collection,
lexer $twig_lexer, lexer $twig_lexer,
user $user, user $user,
$phpbb_root_path, string $phpbb_root_path,
$template_cache_path, string $template_cache_path,
?manager $ext_manager = null, ?manager $ext_manager = null,
?log_interface $log = null ?log_interface $log = null
) )
@ -154,6 +154,8 @@ abstract class base implements messenger_interface
/** /**
* Sets the use of messenger queue flag * Sets the use of messenger queue flag
* *
* @param bool $use_queue Flag indicating if cached queue to be used
*
* @return void * @return void
*/ */
public function set_use_queue(bool $use_queue = true): void public function set_use_queue(bool $use_queue = true): void
@ -426,7 +428,6 @@ abstract class base implements messenger_interface
if ($this->use_queue && !empty($this->queue)) if ($this->use_queue && !empty($this->queue))
{ {
$this->queue->save(); $this->queue->save();
return;
} }
} }

View file

@ -110,9 +110,7 @@ class email extends base
} }
/** /**
* Sets the use of messenger queue flag * {@inheritdoc}
*
* @return void
*/ */
public function set_use_queue(bool $use_queue = true): void public function set_use_queue(bool $use_queue = true): void
{ {
@ -124,7 +122,7 @@ class email extends base
*/ */
public function set_addresses(array $user_row): void public function set_addresses(array $user_row): void
{ {
if (isset($user_row['user_email']) && $user_row['user_email']) if (!empty($user_row['user_email']))
{ {
$this->to($user_row['user_email'], $user_row['username'] ?: ''); $this->to($user_row['user_email'], $user_row['username'] ?: '');
} }
@ -295,8 +293,8 @@ class email extends base
'Return-Path' => new Address($this->config['board_email']), 'Return-Path' => new Address($this->config['board_email']),
'Sender' => new Address($this->config['board_email']), 'Sender' => new Address($this->config['board_email']),
'X-MSMail-Priority' => self::PRIORITY_MAP[$this->mail_priority], 'X-MSMail-Priority' => self::PRIORITY_MAP[$this->mail_priority],
'X-Mailer' => 'phpBB3', 'X-Mailer' => 'phpBB',
'X-MimeOLE' => 'phpBB3', 'X-MimeOLE' => 'phpBB',
'X-phpBB-Origin' => 'phpbb://' . str_replace(['http://', 'https://'], ['', ''], generate_board_url()), 'X-phpBB-Origin' => 'phpbb://' . str_replace(['http://', 'https://'], ['', ''], generate_board_url()),
]; ];
@ -472,6 +470,7 @@ class email extends base
$this->email->subject($this->subject); $this->email->subject($this->subject);
$this->email->text($this->msg); $this->email->text($this->msg);
$break = false;
$subject = $this->subject; $subject = $this->subject;
$msg = $this->msg; $msg = $this->msg;
$email = $this->email; $email = $this->email;
@ -479,13 +478,15 @@ class email extends base
* Event to send message via external transport * Event to send message via external transport
* *
* @event core.notification_message_email * @event core.notification_message_email
* @var bool break Flag indicating if the function return after hook
* @var string subject The message subject * @var string subject The message subject
* @var string msg The message text * @var string msg The message text
* @var string email The Symfony Email object * @var string email The Symfony Email object
* @since 3.2.4-RC1 * @since 3.2.4-RC1
* @changed 4.0.0-a1 Added vars: email. Removed vars: addresses, break * @changed 4.0.0-a1 Added vars: email. Removed vars: addresses
*/ */
$vars = [ $vars = [
'break',
'subject', 'subject',
'msg', 'msg',
'email', 'email',
@ -495,6 +496,11 @@ class email extends base
$this->build_headers(); $this->build_headers();
if ($break)
{
return true;
}
// Send message ... // Send message ...
if (!$this->use_queue) if (!$this->use_queue)
{ {

View file

@ -191,7 +191,7 @@ class jabber extends base
*/ */
public function port(int $port = 5222): self public function port(int $port = 5222): self
{ {
$this->port = ($port) ? $port : 5222; $this->port = ($port > 0) ? $port : 5222;
// Change port if we use SSL // Change port if we use SSL
if ($this->port == 5222 && $this->use_ssl) if ($this->port == 5222 && $this->use_ssl)
@ -210,15 +210,15 @@ class jabber extends base
*/ */
public function username(string $username = ''): self public function username(string $username = ''): self
{ {
if (strpos($username, '@') === false) if (str_contains($username, '@'))
{
$this->username = $username;
}
else
{ {
$this->jid = explode('@', $username, 2); $this->jid = explode('@', $username, 2);
$this->username = $this->jid[0]; $this->username = $this->jid[0];
} }
else
{
$this->username = $username;
}
return $this; return $this;
} }
@ -232,7 +232,7 @@ class jabber extends base
*/ */
public function server(string $server = ''): self public function server(string $server = ''): self
{ {
$this->connect_server = ($server) ? $server : 'localhost'; $this->connect_server = $server ?: 'localhost';
$this->server = $this->jid[1] ?? $this->connect_server; $this->server = $this->jid[1] ?? $this->connect_server;
return $this; return $this;
@ -407,7 +407,7 @@ class jabber extends base
} }
/** /**
* {@inheritDoc} * Resets all the data (address, template file, etc) to default
*/ */
public function reset(): void public function reset(): void
{ {
@ -663,7 +663,7 @@ class jabber extends base
} }
/** /**
* Initiates account registration (based on data used for contructor) * Initiates account registration (based on data used for constructor)
* *
* @return bool|null * @return bool|null
*/ */
@ -714,7 +714,7 @@ class jabber extends base
*/ */
function response(array $xml): bool function response(array $xml): bool
{ {
if (!is_array($xml) || !count($xml)) if (!count($xml))
{ {
return false; return false;
} }

View file

@ -112,7 +112,6 @@ abstract class messenger_base extends \phpbb\notification\method\base
continue; continue;
} }
/** @psalm-suppress InvalidTemplateParam */
$messenger_collection_iterator = $this->messenger->getIterator(); $messenger_collection_iterator = $this->messenger->getIterator();
foreach ($messenger_collection_iterator as $messenger_method) foreach ($messenger_collection_iterator as $messenger_method)
{ {

View file

@ -14,6 +14,9 @@
namespace phpbb\template\twig; namespace phpbb\template\twig;
use Twig\Error\RuntimeError; use Twig\Error\RuntimeError;
use Twig\Extension\CoreExtension;
use Twig\Extension\EscaperExtension;
use Twig\Runtime\EscaperRuntime;
class extension extends \Twig\Extension\AbstractExtension class extension extends \Twig\Extension\AbstractExtension
{ {
@ -164,8 +167,7 @@ class extension extends \Twig\Extension\AbstractExtension
// We always include the last element (this was the past design) // We always include the last element (this was the past design)
$end = ($end == -1 || $end === null) ? null : $end + 1; $end = ($end == -1 || $end === null) ? null : $end + 1;
/** @psalm-suppress UndefinedFunction */ return CoreExtension::slice($env->getCharset(), $item, $start, $end, $preserveKeys);
return twig_slice($env, $item, $start, $end, $preserveKeys);
} }
/** /**
@ -214,8 +216,7 @@ class extension extends \Twig\Extension\AbstractExtension
{ {
$args = func_get_args(); $args = func_get_args();
/** @psalm-suppress UndefinedFunction */ return $this->environment->getRuntime(EscaperRuntime::class)->escape(call_user_func_array([$this, 'lang'], $args), 'js');
return twig_escape_filter($this->environment, call_user_func_array([$this, 'lang'], $args), 'js');
} }
/** /**