[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)
{
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->template($email_template, $used_lang);
$messenger_method->subject(html_entity_decode($subject, ENT_COMPAT));
$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++)
{
$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->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++)
{
@ -254,7 +263,7 @@ class acp_email
}
}
$errored = !$messenger_method->send();
$errored = !$messenger_method->send() || $errored;
if ($use_queue)
{
$messenger_method->save_queue();

View file

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

View file

@ -117,8 +117,8 @@ abstract class base implements messenger_interface
service_collection $twig_extensions_collection,
lexer $twig_lexer,
user $user,
$phpbb_root_path,
$template_cache_path,
string $phpbb_root_path,
string $template_cache_path,
?manager $ext_manager = null,
?log_interface $log = null
)
@ -154,6 +154,8 @@ abstract class base implements messenger_interface
/**
* Sets the use of messenger queue flag
*
* @param bool $use_queue Flag indicating if cached queue to be used
*
* @return 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))
{
$this->queue->save();
return;
}
}

View file

@ -110,9 +110,7 @@ class email extends base
}
/**
* Sets the use of messenger queue flag
*
* @return void
* {@inheritdoc}
*/
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
{
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'] ?: '');
}
@ -295,8 +293,8 @@ class email extends base
'Return-Path' => new Address($this->config['board_email']),
'Sender' => new Address($this->config['board_email']),
'X-MSMail-Priority' => self::PRIORITY_MAP[$this->mail_priority],
'X-Mailer' => 'phpBB3',
'X-MimeOLE' => 'phpBB3',
'X-Mailer' => 'phpBB',
'X-MimeOLE' => 'phpBB',
'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->text($this->msg);
$break = false;
$subject = $this->subject;
$msg = $this->msg;
$email = $this->email;
@ -479,13 +478,15 @@ class email extends base
* Event to send message via external transport
*
* @event core.notification_message_email
* @var bool break Flag indicating if the function return after hook
* @var string subject The message subject
* @var string msg The message text
* @var string email The Symfony Email object
* @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 = [
'break',
'subject',
'msg',
'email',
@ -495,6 +496,11 @@ class email extends base
$this->build_headers();
if ($break)
{
return true;
}
// Send message ...
if (!$this->use_queue)
{

View file

@ -191,7 +191,7 @@ class jabber extends base
*/
public function port(int $port = 5222): self
{
$this->port = ($port) ? $port : 5222;
$this->port = ($port > 0) ? $port : 5222;
// Change port if we use SSL
if ($this->port == 5222 && $this->use_ssl)
@ -210,15 +210,15 @@ class jabber extends base
*/
public function username(string $username = ''): self
{
if (strpos($username, '@') === false)
{
$this->username = $username;
}
else
if (str_contains($username, '@'))
{
$this->jid = explode('@', $username, 2);
$this->username = $this->jid[0];
}
else
{
$this->username = $username;
}
return $this;
}
@ -232,7 +232,7 @@ class jabber extends base
*/
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;
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
{
@ -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
*/
@ -714,7 +714,7 @@ class jabber extends base
*/
function response(array $xml): bool
{
if (!is_array($xml) || !count($xml))
if (!count($xml))
{
return false;
}

View file

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

View file

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