mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
Merge pull request #3625 from s9e/ticket/11742
[ticket/11742] Remove tabs-to-space conversion in [code]
This commit is contained in:
commit
835a2ebcb8
7 changed files with 16 additions and 54 deletions
8
phpBB/composer.lock
generated
8
phpBB/composer.lock
generated
|
@ -220,12 +220,12 @@
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/s9e/TextFormatter.git",
|
"url": "https://github.com/s9e/TextFormatter.git",
|
||||||
"reference": "29c5959f4425934a53b6fdb42760d719b95a6e82"
|
"reference": "0a6016ab96ab1da5be73f7a407f96f57d307b6b6"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/s9e/TextFormatter/zipball/29c5959f4425934a53b6fdb42760d719b95a6e82",
|
"url": "https://api.github.com/repos/s9e/TextFormatter/zipball/0a6016ab96ab1da5be73f7a407f96f57d307b6b6",
|
||||||
"reference": "29c5959f4425934a53b6fdb42760d719b95a6e82",
|
"reference": "0a6016ab96ab1da5be73f7a407f96f57d307b6b6",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -270,7 +270,7 @@
|
||||||
"parser",
|
"parser",
|
||||||
"shortcodes"
|
"shortcodes"
|
||||||
],
|
],
|
||||||
"time": "2015-05-18 04:48:32"
|
"time": "2015-05-23 17:07:15"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/config",
|
"name": "symfony/config",
|
||||||
|
|
|
@ -234,10 +234,6 @@ class renderer implements \phpbb\textformatter\renderer_interface
|
||||||
}
|
}
|
||||||
|
|
||||||
$html = $this->renderer->render($xml);
|
$html = $this->renderer->render($xml);
|
||||||
if (stripos($html, '<code') !== false)
|
|
||||||
{
|
|
||||||
$html = $this->replace_tabs_in_code($html);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Modify a rendered text
|
* Modify a rendered text
|
||||||
|
@ -253,45 +249,6 @@ class renderer implements \phpbb\textformatter\renderer_interface
|
||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Replace tabs in code elements
|
|
||||||
*
|
|
||||||
* @see bbcode::bbcode_second_pass_code()
|
|
||||||
*
|
|
||||||
* @param string $html Original HTML
|
|
||||||
* @return string Modified HTML
|
|
||||||
*/
|
|
||||||
protected function replace_tabs_in_code($html)
|
|
||||||
{
|
|
||||||
return preg_replace_callback(
|
|
||||||
'((<code[^>]*>)(.*?)(</code>))is',
|
|
||||||
function ($captures)
|
|
||||||
{
|
|
||||||
$code = $captures[2];
|
|
||||||
|
|
||||||
$code = str_replace("\t", ' ', $code);
|
|
||||||
$code = str_replace(' ', ' ', $code);
|
|
||||||
$code = str_replace(' ', ' ', $code);
|
|
||||||
$code = str_replace("\n ", "\n ", $code);
|
|
||||||
|
|
||||||
// keep space at the beginning
|
|
||||||
if (!empty($code) && $code[0] == ' ')
|
|
||||||
{
|
|
||||||
$code = ' ' . substr($code, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// remove newline at the beginning
|
|
||||||
if (!empty($code) && $code[0] == "\n")
|
|
||||||
{
|
|
||||||
$code = substr($code, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $captures[1] . $code . $captures[3];
|
|
||||||
},
|
|
||||||
$html
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,8 +12,8 @@
|
||||||
<!-- BEGIN quote_open --><blockquote class="uncited"><div><!-- END quote_open -->
|
<!-- BEGIN quote_open --><blockquote class="uncited"><div><!-- END quote_open -->
|
||||||
<!-- BEGIN quote_close --></div></blockquote><!-- END quote_close -->
|
<!-- BEGIN quote_close --></div></blockquote><!-- END quote_close -->
|
||||||
|
|
||||||
<!-- BEGIN code_open --><div class="codebox"><p>{L_CODE}{L_COLON} <a href="#" onclick="selectCode(this); return false;">{L_SELECT_ALL_CODE}</a></p><code><!-- END code_open -->
|
<!-- BEGIN code_open --><div class="codebox"><p>{L_CODE}{L_COLON} <a href="#" onclick="selectCode(this); return false;">{L_SELECT_ALL_CODE}</a></p><pre><code><!-- END code_open -->
|
||||||
<!-- BEGIN code_close --></code></div><!-- END code_close -->
|
<!-- BEGIN code_close --></code></pre></div><!-- END code_close -->
|
||||||
|
|
||||||
<!-- BEGIN inline_attachment_open --><div class="inline-attachment"><!-- END inline_attachment_open -->
|
<!-- BEGIN inline_attachment_open --><div class="inline-attachment"><!-- END inline_attachment_open -->
|
||||||
<!-- BEGIN inline_attachment_close --></div><!-- END inline_attachment_close -->
|
<!-- BEGIN inline_attachment_close --></div><!-- END inline_attachment_close -->
|
||||||
|
|
|
@ -513,7 +513,6 @@ blockquote .codebox {
|
||||||
display: block;
|
display: block;
|
||||||
height: auto;
|
height: auto;
|
||||||
max-height: 200px;
|
max-height: 200px;
|
||||||
white-space: normal;
|
|
||||||
padding-top: 5px;
|
padding-top: 5px;
|
||||||
font: 0.9em Monaco, "Andale Mono","Courier New", Courier, mono;
|
font: 0.9em Monaco, "Andale Mono","Courier New", Courier, mono;
|
||||||
line-height: 1.3em;
|
line-height: 1.3em;
|
||||||
|
|
|
@ -68,7 +68,7 @@ class phpbb_textformatter_s9e_default_formatting_test extends phpbb_test_case
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'[code]unparsed code[/code]',
|
'[code]unparsed code[/code]',
|
||||||
'<div class="codebox"><p>CODE: <a href="#" onclick="selectCode(this); return false;">Select all</a></p><code>unparsed code</code></div>'
|
'<div class="codebox"><p>CODE: <a href="#" onclick="selectCode(this); return false;">Select all</a></p><pre><code>unparsed code</code></pre></div>'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'[list]no item[/list]',
|
'[list]no item[/list]',
|
||||||
|
@ -181,12 +181,12 @@ class phpbb_textformatter_s9e_default_formatting_test extends phpbb_test_case
|
||||||
array(
|
array(
|
||||||
// Do not parse textual bbcodes in code
|
// Do not parse textual bbcodes in code
|
||||||
'[code]unparsed code [b]bold [i]bold + italic[/i][/b][/code]',
|
'[code]unparsed code [b]bold [i]bold + italic[/i][/b][/code]',
|
||||||
'<div class="codebox"><p>CODE: <a href="#" onclick="selectCode(this); return false;">Select all</a></p><code>unparsed code [b]bold [i]bold + italic[/i][/b]</code></div>'
|
'<div class="codebox"><p>CODE: <a href="#" onclick="selectCode(this); return false;">Select all</a></p><pre><code>unparsed code [b]bold [i]bold + italic[/i][/b]</code></pre></div>'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
// Do not parse quote bbcodes in code
|
// Do not parse quote bbcodes in code
|
||||||
'[code]unparsed code [quote="username"]quoted[/quote][/code]',
|
'[code]unparsed code [quote="username"]quoted[/quote][/code]',
|
||||||
'<div class="codebox"><p>CODE: <a href="#" onclick="selectCode(this); return false;">Select all</a></p><code>unparsed code [quote="username"]quoted[/quote]</code></div>'
|
'<div class="codebox"><p>CODE: <a href="#" onclick="selectCode(this); return false;">Select all</a></p><pre><code>unparsed code [quote="username"]quoted[/quote]</code></pre></div>'
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
// Textual bbcode nesting into textual bbcode
|
// Textual bbcode nesting into textual bbcode
|
||||||
|
@ -195,7 +195,11 @@ class phpbb_textformatter_s9e_default_formatting_test extends phpbb_test_case
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
"[code]\tline1\n line2[/code]",
|
"[code]\tline1\n line2[/code]",
|
||||||
'<div class="codebox"><p>CODE: <a href="#" onclick="selectCode(this); return false;">Select all</a></p><code> line1<br>' . "\n" . ' line2</code></div>'
|
'<div class="codebox"><p>CODE: <a href="#" onclick="selectCode(this); return false;">Select all</a></p><pre><code>' . "\tline1\n line2</code></pre></div>"
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
"[code]\n\tline1\n line2[/code]",
|
||||||
|
'<div class="codebox"><p>CODE: <a href="#" onclick="selectCode(this); return false;">Select all</a></p><pre><code>' . "\tline1\n line2</code></pre></div>"
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'... http://example.org ...',
|
'... http://example.org ...',
|
||||||
|
|
1
tests/text_processing/tickets_data/PHPBB3-11742.html
Normal file
1
tests/text_processing/tickets_data/PHPBB3-11742.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<div class="codebox"><p>CODE: <a href="#" onclick="selectCode(this); return false;">Select all</a></p><pre><code> tab</code></pre></div>
|
1
tests/text_processing/tickets_data/PHPBB3-11742.txt
Normal file
1
tests/text_processing/tickets_data/PHPBB3-11742.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[code] tab[/code]
|
Loading…
Add table
Reference in a new issue