aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2018-12-02 12:55:02 +0100
committerMarc Alexander <admin@m-a-styles.de>2018-12-02 19:50:09 +0100
commit087bf6fd35913152129eed97005953ac3979002a (patch)
treee3f7626a46a4819e4831fd46a84d88d76d3d7b76
parentfc27dc02b42e3afa98e96bdab0daf752c6cb9ccf (diff)
downloadforums-087bf6fd35913152129eed97005953ac3979002a.tar
forums-087bf6fd35913152129eed97005953ac3979002a.tar.gz
forums-087bf6fd35913152129eed97005953ac3979002a.tar.bz2
forums-087bf6fd35913152129eed97005953ac3979002a.tar.xz
forums-087bf6fd35913152129eed97005953ac3979002a.zip
[ticket/15893] Pass needed language class directly to format quote
PHPBB3-15893
-rw-r--r--phpBB/includes/functions_content.php15
-rw-r--r--phpBB/includes/ucp/ucp_pm_compose.php6
-rw-r--r--phpBB/posting.php5
-rw-r--r--tests/functions_content/phpbb_format_quote_test.php17
4 files changed, 28 insertions, 15 deletions
diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php
index 8284aab6a4..a15a03f966 100644
--- a/phpBB/includes/functions_content.php
+++ b/phpBB/includes/functions_content.php
@@ -1762,13 +1762,14 @@ class bitfield
/**
* Formats the quote according to the given BBCode status setting
*
- * @param bool $bbcode_status The status of the BBCode setting
- * @param array $quote_attributes The attributes of the quoted post
- * @param phpbb\textformatter\utils $text_formatter_utils Text formatter utilities
- * @param parse_message $message_parser Message parser class
- * @param string $message_link Link of the original quoted post
+ * @param phpbb\language\language $language Language class
+ * @param parse_message $message_parser Message parser class
+ * @param phpbb\textformatter\utils_interface $text_formatter_utils Text formatter utilities
+ * @param bool $bbcode_status The status of the BBCode setting
+ * @param array $quote_attributes The attributes of the quoted post
+ * @param string $message_link Link of the original quoted post
*/
-function phpbb_format_quote($bbcode_status, $quote_attributes, $text_formatter_utils, $message_parser, $message_link = '')
+function phpbb_format_quote($language, $message_parser, $text_formatter_utils, $bbcode_status, $quote_attributes, $message_link = '')
{
if ($bbcode_status)
{
@@ -1794,7 +1795,7 @@ function phpbb_format_quote($bbcode_status, $quote_attributes, $text_formatter_u
$message = $quote_string . $message;
$message = str_replace("\n", "\n" . $quote_string, $message);
- $message_parser->message = $quote_attributes['author'] . " " . $user->lang['WROTE'] . ":\n" . $message . "\n";
+ $message_parser->message = $quote_attributes['author'] . " " . $language->lang('WROTE') . ":\n" . $message . "\n";
}
if ($message_link)
diff --git a/phpBB/includes/ucp/ucp_pm_compose.php b/phpBB/includes/ucp/ucp_pm_compose.php
index bc59d8ca86..b1b039add1 100644
--- a/phpBB/includes/ucp/ucp_pm_compose.php
+++ b/phpBB/includes/ucp/ucp_pm_compose.php
@@ -986,7 +986,11 @@ function compose_pm($id, $mode, $action, $user_folders = array())
$quote_attributes['post_id'] = $post['msg_id'];
}
- phpbb_format_quote($bbcode_status, $quote_attributes, $phpbb_container->get('text_formatter.utils'), $message_parser, $message_link);
+ /** @var \phpbb\language\language $language */
+ $language = $phpbb_container->get('language');
+ /** @var \phpbb\textformatter\utils_interface $text_formatter_utils */
+ $text_formatter_utils = $phpbb_container->get('text_formatter.utils');
+ phpbb_format_quote($language, $message_parser, $text_formatter_utils, $bbcode_status, $quote_attributes, $message_link);
}
if (($action == 'reply' || $action == 'quote' || $action == 'quotepost') && !$preview && !$refresh)
diff --git a/phpBB/posting.php b/phpBB/posting.php
index e2329d610d..59be983987 100644
--- a/phpBB/posting.php
+++ b/phpBB/posting.php
@@ -846,6 +846,7 @@ if ($load && ($mode == 'reply' || $mode == 'quote' || $mode == 'post') && $post_
load_drafts($topic_id, $forum_id);
}
+/** @var \phpbb\textformatter\utils_interface $bbcode_utils */
$bbcode_utils = $phpbb_container->get('text_formatter.utils');
if ($submit || $preview || $refresh)
@@ -1648,7 +1649,9 @@ if ($generate_quote)
'user_id' => $post_data['poster_id'],
);
- phpbb_format_quote($config['allow_bbcode'], $quote_attributes, $bbcode_utils, $message_parser);
+ /** @var \phpbb\language\language $language */
+ $language = $phpbb_container->get('language');
+ phpbb_format_quote($language, $message_parser, $bbcode_utils, $bbcode_status, $quote_attributes);
}
if (($mode == 'reply' || $mode == 'quote') && !$submit && !$preview && !$refresh)
diff --git a/tests/functions_content/phpbb_format_quote_test.php b/tests/functions_content/phpbb_format_quote_test.php
index 0f6136f5d9..cbbd46d0a9 100644
--- a/tests/functions_content/phpbb_format_quote_test.php
+++ b/tests/functions_content/phpbb_format_quote_test.php
@@ -15,13 +15,16 @@ require_once dirname(__FILE__) . '/../../phpBB/includes/message_parser.php';
class phpbb_functions_content_phpbb_format_quote_test extends phpbb_test_case
{
+ /** @var \phpbb\language\language */
+ protected $lang;
+
public function setUp()
{
global $cache, $user, $phpbb_root_path, $phpEx;
$lang_file_loader = new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx);
- $lang = new \phpbb\language\language($lang_file_loader);
- $user = new \phpbb\user($lang, '\phpbb\datetime');
+ $this->lang = new \phpbb\language\language($lang_file_loader);
+ $user = new \phpbb\user($this->lang, '\phpbb\datetime');
$cache = new phpbb_mock_cache();
parent::setUp();
@@ -30,8 +33,10 @@ class phpbb_functions_content_phpbb_format_quote_test extends phpbb_test_case
public function data_phpbb_format_quote()
{
return [
- [true, ['author' => 'admin', 'user_id' => 2], '[quote=&quot;username&quot;]quoted[/quote]', "[quote=admin user_id=2][quote=&quot;username&quot;]quoted[/quote][/quote]\n\n"],
- [false, ['author' => 'admin', 'user_id' => 2], '[quote=&quot;username&quot;]quoted[/quote]', "admin wrote:\n&gt; [quote=&quot;username&quot;]quoted[/quote]\n"]
+ [true, ['author' => 'admin', 'user_id' => 2], '[quote=&quot;username&quot;]quoted[/quote]', '', "[quote=admin user_id=2][quote=&quot;username&quot;]quoted[/quote][/quote]\n\n"],
+ [false, ['author' => 'admin', 'user_id' => 2], '[quote=&quot;username&quot;]quoted[/quote]', '', "admin wrote:\n&gt; [quote=&quot;username&quot;]quoted[/quote]\n"],
+ [true, ['author' => 'admin', 'user_id' => 2], '[quote=&quot;username&quot;]quoted[/quote]', "[url=http://viewtopic.php?p=1#p1]Subject: Foo[/url]\n\n", "[url=http://viewtopic.php?p=1#p1]Subject: Foo[/url]\n\n[quote=admin user_id=2][quote=&quot;username&quot;]quoted[/quote][/quote]\n\n"],
+ [false, ['author' => 'admin', 'user_id' => 2], '[quote=&quot;username&quot;]quoted[/quote]', "http://viewtopic.php?p=1#p1 - Subject: Foo\n\n", "http://viewtopic.php?p=1#p1 - Subject: Foo\n\nadmin wrote:\n&gt; [quote=&quot;username&quot;]quoted[/quote]\n"],
];
}
@@ -39,13 +44,13 @@ class phpbb_functions_content_phpbb_format_quote_test extends phpbb_test_case
/**
* @dataProvider data_phpbb_format_quote
*/
- public function test_phpbb_format_quote($bbcode_status, $quote_attributes, $message, $expected)
+ public function test_phpbb_format_quote($bbcode_status, $quote_attributes, $message, $message_link, $expected)
{
$text_formatter_utils = new \phpbb\textformatter\s9e\utils();
$message_parser = new parse_message($message);
- phpbb_format_quote($bbcode_status, $quote_attributes, $text_formatter_utils, $message_parser);
+ phpbb_format_quote($this->lang, $message_parser, $text_formatter_utils, $bbcode_status, $quote_attributes, $message_link);
$this->assertEquals($expected, $message_parser->message);
}