From 0aea8ecd8314dcd33f7ed6e86f4a44ebaf27edc0 Mon Sep 17 00:00:00 2001 From: kasimi Date: Sun, 15 Apr 2018 18:43:21 +0200 Subject: [PATCH 1/7] [ticket/15637] Extract multi-line PHP event descriptions PHPBB3-15637 --- phpBB/phpbb/event/php_exporter.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/phpBB/phpbb/event/php_exporter.php b/phpBB/phpbb/event/php_exporter.php index 64d1e429b7..b798d60481 100644 --- a/phpBB/phpbb/event/php_exporter.php +++ b/phpBB/phpbb/event/php_exporter.php @@ -264,7 +264,23 @@ class php_exporter // Find event description line $description_line_num = $this->find_description(); - $description = substr(trim($this->file_lines[$description_line_num]), strlen('* ')); + $description_lines = array(); + + while (true) + { + $description_line = substr(trim($this->file_lines[$description_line_num]), strlen('* ')); + + // Reached end of description if line is empty or a tag + if (!strlen($description_line) || $description_line[0] == '@') + { + break; + } + + $description_lines[] = $description_line; + $description_line_num++; + } + + $description = implode(' ', $description_lines); if (isset($this->events[$this->current_event])) { From 21faf69d3123b666a19731e318e07417f45b5325 Mon Sep 17 00:00:00 2001 From: kasimi Date: Sat, 7 Jul 2018 16:09:29 +0200 Subject: [PATCH 2/7] [ticket/15637] Extract all lines before the first @tag PHPBB3-15637 --- phpBB/phpbb/event/php_exporter.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/phpBB/phpbb/event/php_exporter.php b/phpBB/phpbb/event/php_exporter.php index b798d60481..5ab0baa684 100644 --- a/phpBB/phpbb/event/php_exporter.php +++ b/phpBB/phpbb/event/php_exporter.php @@ -270,8 +270,8 @@ class php_exporter { $description_line = substr(trim($this->file_lines[$description_line_num]), strlen('* ')); - // Reached end of description if line is empty or a tag - if (!strlen($description_line) || $description_line[0] == '@') + // Reached end of description if line is a tag + if (strlen($description_line) && $description_line[0] == '@') { break; } From 1c8570d0f5111255f9cac793a8404f6af551ce3e Mon Sep 17 00:00:00 2001 From: kasimi Date: Sat, 7 Jul 2018 16:10:23 +0200 Subject: [PATCH 3/7] [ticket/15637] Fixed removing white-spaces from description line PHPBB3-15637 --- phpBB/phpbb/event/php_exporter.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/phpBB/phpbb/event/php_exporter.php b/phpBB/phpbb/event/php_exporter.php index 5ab0baa684..0c105af0d9 100644 --- a/phpBB/phpbb/event/php_exporter.php +++ b/phpBB/phpbb/event/php_exporter.php @@ -268,7 +268,8 @@ class php_exporter while (true) { - $description_line = substr(trim($this->file_lines[$description_line_num]), strlen('* ')); + $description_line = substr(trim($this->file_lines[$description_line_num]), strlen('*')); + $description_line = trim(str_replace("\t", " ", $description_line)); // Reached end of description if line is a tag if (strlen($description_line) && $description_line[0] == '@') From 83a8280554652d5456849c69d8f3d0d6e59d1dc1 Mon Sep 17 00:00:00 2001 From: kasimi Date: Sat, 7 Jul 2018 20:12:35 +0200 Subject: [PATCH 4/7] [ticket/15637] Remove trailing space from description PHPBB3-15637 --- phpBB/phpbb/event/php_exporter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpBB/phpbb/event/php_exporter.php b/phpBB/phpbb/event/php_exporter.php index 0c105af0d9..eae6a7bf28 100644 --- a/phpBB/phpbb/event/php_exporter.php +++ b/phpBB/phpbb/event/php_exporter.php @@ -281,7 +281,7 @@ class php_exporter $description_line_num++; } - $description = implode(' ', $description_lines); + $description = trim(implode(' ', $description_lines)); if (isset($this->events[$this->current_event])) { From 517c601482b9400a6b6d72c04791c534e0170622 Mon Sep 17 00:00:00 2001 From: kasimi Date: Sat, 7 Jul 2018 20:13:49 +0200 Subject: [PATCH 5/7] [ticket/15637] Updated test fixture to include complete event description PHPBB3-15637 --- tests/event/fixtures/extra_description.test | 2 +- tests/event/php_exporter_test.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/event/fixtures/extra_description.test b/tests/event/fixtures/extra_description.test index ce8f97ce89..e93a1044ac 100644 --- a/tests/event/fixtures/extra_description.test +++ b/tests/event/fixtures/extra_description.test @@ -3,7 +3,7 @@ /** * Description * -* NOTE: This will not be exported +* NOTE: This will also be exported * * @event extra_description.dispatch * @since 3.1.0-b2 diff --git a/tests/event/php_exporter_test.php b/tests/event/php_exporter_test.php index 21dbb1e1d4..0d40cc3e70 100644 --- a/tests/event/php_exporter_test.php +++ b/tests/event/php_exporter_test.php @@ -57,7 +57,7 @@ class phpbb_event_php_exporter_test extends phpbb_test_case 'file' => 'extra_description.test', 'arguments' => array(), 'since' => '3.1.0-b2', - 'description' => 'Description', + 'description' => 'Description NOTE: This will also be exported', ), ), ), From 245f4df47c0d33ef8fe83bc5fd049a1afda79bb1 Mon Sep 17 00:00:00 2001 From: kasimi Date: Sat, 7 Jul 2018 21:25:29 +0200 Subject: [PATCH 6/7] [ticket/15637] Preserve line breaks in event descriptions PHPBB3-15637 --- phpBB/phpbb/event/php_exporter.php | 2 +- tests/event/php_exporter_test.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/phpBB/phpbb/event/php_exporter.php b/phpBB/phpbb/event/php_exporter.php index eae6a7bf28..15dd13190e 100644 --- a/phpBB/phpbb/event/php_exporter.php +++ b/phpBB/phpbb/event/php_exporter.php @@ -281,7 +281,7 @@ class php_exporter $description_line_num++; } - $description = trim(implode(' ', $description_lines)); + $description = trim(implode('
', $description_lines)); if (isset($this->events[$this->current_event])) { diff --git a/tests/event/php_exporter_test.php b/tests/event/php_exporter_test.php index 0d40cc3e70..c6670e1340 100644 --- a/tests/event/php_exporter_test.php +++ b/tests/event/php_exporter_test.php @@ -57,7 +57,7 @@ class phpbb_event_php_exporter_test extends phpbb_test_case 'file' => 'extra_description.test', 'arguments' => array(), 'since' => '3.1.0-b2', - 'description' => 'Description NOTE: This will also be exported', + 'description' => 'Description

NOTE: This will also be exported', ), ), ), From eedcb3bbe14c6745c10a959da31657f36d8914c3 Mon Sep 17 00:00:00 2001 From: kasimi Date: Sat, 7 Jul 2018 21:53:26 +0200 Subject: [PATCH 7/7] [ticket/15637] Remove trailing space from description PHPBB3-15637 --- phpBB/phpbb/event/php_exporter.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/phpBB/phpbb/event/php_exporter.php b/phpBB/phpbb/event/php_exporter.php index 15dd13190e..71c94a681d 100644 --- a/phpBB/phpbb/event/php_exporter.php +++ b/phpBB/phpbb/event/php_exporter.php @@ -281,6 +281,12 @@ class php_exporter $description_line_num++; } + // If there is an empty line between description and first tag, remove it + if (!strlen(end($description_lines))) + { + array_pop($description_lines); + } + $description = trim(implode('
', $description_lines)); if (isset($this->events[$this->current_event]))