diff --git a/src/Html/Generator.php b/src/Html/Generator.php
index da9d1d8347..32a2a7537b 100644
--- a/src/Html/Generator.php
+++ b/src/Html/Generator.php
@@ -399,7 +399,7 @@ class Generator
public static function getMessage(
Message|string $message,
string|null $sqlQuery = null,
- MessageType|string $type = MessageType::Notice,
+ MessageType $type = MessageType::Notice,
): string {
$retval = '';
@@ -422,14 +422,6 @@ class Generator
}
if (is_string($message)) {
- if (is_string($type)) {
- $type = match ($type) {
- 'success' => MessageType::Success,
- 'error' => MessageType::Error,
- default => MessageType::Notice,
- };
- }
-
$message = new Message($message, $type);
}
diff --git a/src/Twig/MessageExtension.php b/src/Twig/MessageExtension.php
index 8a5e31cc7b..fa5930f428 100644
--- a/src/Twig/MessageExtension.php
+++ b/src/Twig/MessageExtension.php
@@ -6,6 +6,7 @@ namespace PhpMyAdmin\Twig;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Message;
+use PhpMyAdmin\MessageType;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;
use Twig\TwigFunction;
@@ -41,6 +42,20 @@ class MessageExtension extends AbstractExtension
/** @inheritDoc */
public function getFunctions(): array
{
- return [new TwigFunction('statement_message', Generator::getMessage(...), ['is_safe' => ['html']])];
+ return [
+ new TwigFunction(
+ 'statement_message',
+ static function (string $message, string $statement, string $context): string {
+ $type = match ($context) {
+ 'success' => MessageType::Success,
+ 'error', 'danger' => MessageType::Error,
+ default => MessageType::Notice,
+ };
+
+ return Generator::getMessage($message, $statement, $type);
+ },
+ ['is_safe' => ['html']],
+ ),
+ ];
}
}