aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/posting.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/posting.php')
-rw-r--r--phpBB/posting.php19
1 files changed, 17 insertions, 2 deletions
diff --git a/phpBB/posting.php b/phpBB/posting.php
index fd09f5e464..1c7b756fc2 100644
--- a/phpBB/posting.php
+++ b/phpBB/posting.php
@@ -1578,15 +1578,30 @@ if (!sizeof($error) && $preview)
}
}
+// Remove quotes that would become nested too deep before decoding the text
+$generate_quote = ($mode == 'quote' && !$submit && !$preview && !$refresh);
+if ($generate_quote && $config['max_quote_depth'] > 0 && preg_match('#^<[rt][ >]#', $message_parser->message))
+{
+ $message_parser->message = $phpbb_container->get('text_formatter.utils')->remove_bbcode(
+ $message_parser->message,
+ 'quote',
+ $config['max_quote_depth'] - 1
+ );
+}
+
// Decode text for message display
$post_data['bbcode_uid'] = ($mode == 'quote' && !$preview && !$refresh && !sizeof($error)) ? $post_data['bbcode_uid'] : $message_parser->bbcode_uid;
$message_parser->decode_message($post_data['bbcode_uid']);
-if ($mode == 'quote' && !$submit && !$preview && !$refresh)
+if ($generate_quote)
{
if ($config['allow_bbcode'])
{
- $message_parser->message = '[quote=&quot;' . $post_data['quote_username'] . '&quot;]' . censor_text(trim($message_parser->message)) . "[/quote]\n";
+ $message_parser->message = $phpbb_container->get('text_formatter.utils')->generate_quote(
+ censor_text(trim($message_parser->message)),
+ array('author' => $post_data['quote_username'])
+ );
+ $message_parser->message .= "\n";
}
else
{