aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/bbcode.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/bbcode.php')
-rw-r--r--phpBB/includes/bbcode.php20
1 files changed, 18 insertions, 2 deletions
diff --git a/phpBB/includes/bbcode.php b/phpBB/includes/bbcode.php
index 1e4183109d..e0b22fd140 100644
--- a/phpBB/includes/bbcode.php
+++ b/phpBB/includes/bbcode.php
@@ -163,11 +163,10 @@ class bbcode
case 0:
$this->bbcode_cache[$bbcode_id] = array(
'str' => array(
- '[quote:$uid]' => $this->bbcode_tpl('quote_open', $bbcode_id),
'[/quote:$uid]' => $this->bbcode_tpl('quote_close', $bbcode_id)
),
'preg' => array(
- '#\[quote="(.*?)":$uid\]#' => $this->bbcode_tpl('quote_username_open', $bbcode_id)
+ '#\[quote(?:="(.*?)")?:$uid\](.)#ise' => "\$this->bbcode_second_pass_quote('\$1', '\$2')"
)
);
break;
@@ -459,6 +458,23 @@ class bbcode
return str_replace('{LIST_TYPE}', $type, $this->bbcode_tpl($tpl));
}
+ function bbcode_second_pass_quote($username, $quote)
+ {
+ // when using the /e modifier, preg_replace slashes double-quotes but does not
+ // seem to slash anything else
+ $quote = str_replace('\"', '"', $quote);
+
+ // remove newline at the beginning
+ if ($quote{0} == "\n")
+ {
+ $quote = substr($quote, 1);
+ }
+
+ $quote = (($username) ? str_replace('$1', $username, $this->bbcode_tpl('quote_username_open')) : $this->bbcode_tpl('quote_open')) . $quote;
+
+ return $quote;
+ }
+
function bbcode_second_pass_code($type, $code)
{
// when using the /e modifier, preg_replace slashes double-quotes but does not