From fb78fc7ae0d870262483f9dcc588601cd656b66b Mon Sep 17 00:00:00 2001 From: rxu Date: Thu, 17 Dec 2015 23:06:51 +0700 Subject: [PATCH 1/2] [ticket/14366] Add core events to the function decode_message() Add core event to the function decode_message() in includes/functions_content.php to allow extensions performing additional message handling before/after decoding. PHPBB3-14366 --- phpBB/includes/functions_content.php | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php index 6f861b8607..4fb76a6f7e 100644 --- a/phpBB/includes/functions_content.php +++ b/phpBB/includes/functions_content.php @@ -392,7 +392,7 @@ function phpbb_clean_search_string($search_string) */ function decode_message(&$message, $bbcode_uid = '') { - global $config; + global $config, $phpbb_dispatcher; if ($bbcode_uid) { @@ -405,12 +405,38 @@ function decode_message(&$message, $bbcode_uid = '') $replace = array("\n"); } + /** + * Use this event to modify the message before it is decoded + * + * @event core.decode_message_before + * @var string message The message content + * @var string bbcode_uid The message BBCode UID + * @var string match Match pattern to replace + * @var int replace Replacement for the matched text + * @since 3.1.8-RC1 + */ + $vars = array('message', 'bbcode_uid', 'match', 'replace'); + extract($phpbb_dispatcher->trigger_event('core.decode_message_before', compact($vars))); + $message = str_replace($match, $replace, $message); $match = get_preg_expression('bbcode_htm'); $replace = array('\1', '\1', '\2', '\1', '', ''); $message = preg_replace($match, $replace, $message); + + /** + * Use this event to modify the message after it is decoded + * + * @event core.decode_message_after + * @var string message The message content + * @var string bbcode_uid The message BBCode UID + * @var string match Match pattern to replace + * @var int replace Replacement for the matched text + * @since 3.1.8-RC1 + */ + $vars = array('message', 'bbcode_uid', 'match', 'replace'); + extract($phpbb_dispatcher->trigger_event('core.decode_message_after', compact($vars))); } /** From cd3b93b9e2ef93575d84ca3de4aef741938d2bbc Mon Sep 17 00:00:00 2001 From: rxu Date: Sat, 27 Feb 2016 12:08:58 +0700 Subject: [PATCH 2/2] [ticket/14366] Add core events to the function decode_message() Remove match/replace vars, use alternative var for the message var, update the target phpBB version. PHPBB3-14366 --- phpBB/includes/functions_content.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php index 4fb76a6f7e..1c53c69027 100644 --- a/phpBB/includes/functions_content.php +++ b/phpBB/includes/functions_content.php @@ -409,14 +409,14 @@ function decode_message(&$message, $bbcode_uid = '') * Use this event to modify the message before it is decoded * * @event core.decode_message_before - * @var string message The message content + * @var string message_text The message content * @var string bbcode_uid The message BBCode UID - * @var string match Match pattern to replace - * @var int replace Replacement for the matched text - * @since 3.1.8-RC1 + * @since 3.1.9-RC1 */ - $vars = array('message', 'bbcode_uid', 'match', 'replace'); + $message_text = $message; + $vars = array('message_text', 'bbcode_uid'); extract($phpbb_dispatcher->trigger_event('core.decode_message_before', compact($vars))); + $message = $message_text; $message = str_replace($match, $replace, $message); @@ -429,14 +429,14 @@ function decode_message(&$message, $bbcode_uid = '') * Use this event to modify the message after it is decoded * * @event core.decode_message_after - * @var string message The message content + * @var string message_text The message content * @var string bbcode_uid The message BBCode UID - * @var string match Match pattern to replace - * @var int replace Replacement for the matched text - * @since 3.1.8-RC1 + * @since 3.1.9-RC1 */ - $vars = array('message', 'bbcode_uid', 'match', 'replace'); + $message_text = $message; + $vars = array('message_text', 'bbcode_uid'); extract($phpbb_dispatcher->trigger_event('core.decode_message_after', compact($vars))); + $message = $message_text; } /**