Merge pull request #3669 from s9e/ticket/13901

[ticket/13901] Add more whitespace to long quotes for readability
This commit is contained in:
Tristan Darricau 2015-06-24 16:34:53 +02:00
commit d430acb568
6 changed files with 29 additions and 7 deletions

View file

@ -942,10 +942,10 @@ function compose_pm($id, $mode, $action, $user_folders = array())
$message_link = '';
}
$quote_text = $phpbb_container->get('text_formatter.utils')->generate_quote(
censor_text(trim($message_parser->message)),
censor_text($message_parser->message),
array('author' => $quote_username)
);
$message_parser->message = $message_link . $quote_text . "\n";
$message_parser->message = $message_link . $quote_text . "\n\n";
}
if (($action == 'reply' || $action == 'quote' || $action == 'quotepost') && !$preview && !$refresh)
@ -974,7 +974,7 @@ function compose_pm($id, $mode, $action, $user_folders = array())
$forward_text[] = sprintf($user->lang['FWD_TO'], implode($user->lang['COMMA_SEPARATOR'], $fwd_to_field['to']));
$quote_text = $phpbb_container->get('text_formatter.utils')->generate_quote(
censor_text(trim($message_parser->message)),
censor_text($message_parser->message),
array('author' => $quote_username)
);
$message_parser->message = implode("\n", $forward_text) . "\n\n" . $quote_text;

View file

@ -56,6 +56,7 @@ class utils implements \phpbb\textformatter\utils_interface
*/
public function generate_quote($text, array $attributes = array())
{
$text = trim($text);
$quote = '[quote';
if (isset($attributes['author']))
{
@ -67,7 +68,9 @@ class utils implements \phpbb\textformatter\utils_interface
{
$quote .= ' ' . $name . '=' . $this->enquote($value);
}
$quote .= ']' . $text . '[/quote]';
$quote .= ']';
$newline = (strlen($quote . $text . '[/quote]') > 80 || strpos($text, "\n") !== false) ? "\n" : '';
$quote .= $newline . $text . $newline . '[/quote]';
return $quote;
}

View file

@ -1604,10 +1604,10 @@ if ($generate_quote)
if ($config['allow_bbcode'])
{
$message_parser->message = $phpbb_container->get('text_formatter.utils')->generate_quote(
censor_text(trim($message_parser->message)),
censor_text($message_parser->message),
array('author' => $post_data['quote_username'])
);
$message_parser->message .= "\n";
$message_parser->message .= "\n\n";
}
else
{

View file

@ -84,7 +84,7 @@ class phpbb_functional_private_messages_test extends phpbb_functional_test_case
public function test_quote_forward()
{
$text = 'This is a test private message sent by the testing framework.';
$expected = '[quote="admin"]' . $text . '[/quote]';
$expected = "[quote=\"admin\"]\n" . $text . "\n[/quote]";
$this->login();
$message_id = $this->create_private_message('Test', $text, array(2));

View file

@ -221,6 +221,10 @@ class phpbb_textformatter_s9e_default_formatting_test extends phpbb_test_case
'[quote="http://example.org"]...[/quote]',
'<blockquote><div><cite><a href="http://example.org" class="postlink">http://example.org</a> wrote:</cite>...</div></blockquote>'
),
array(
"[quote]\nThis is a long quote that is definitely going to exceed 80 characters\n[/quote]\n\nFollowed by a reply",
"<blockquote class=\"uncited\"><div>\nThis is a long quote that is definitely going to exceed 80 characters\n</div></blockquote>\n\nFollowed by a reply"
),
);
}
}

View file

@ -171,6 +171,21 @@ class phpbb_textformatter_s9e_utils_test extends phpbb_test_case
),
'[quote="user" post_id="123" url="http://example.org"]...[/quote]',
),
array(
'This is a long quote that is definitely going to exceed 80 characters',
array(),
"[quote]\nThis is a long quote that is definitely going to exceed 80 characters\n[/quote]",
),
array(
' This is a short quote on its own line ',
array(),
'[quote]This is a short quote on its own line[/quote]',
),
array(
"This is a short quote\non two lines",
array(),
"[quote]\nThis is a short quote\non two lines\n[/quote]",
),
);
}