diff options
author | Marc Alexander <admin@m-a-styles.de> | 2018-01-24 23:35:49 +0100 |
---|---|---|
committer | Marc Alexander <admin@m-a-styles.de> | 2018-01-24 23:35:49 +0100 |
commit | a74658091b19a8d8100b241ce6ac710e472918e8 (patch) | |
tree | ecb7f5e9d2ef10bc2a5074cf404a67590631b0ef | |
parent | 3a8305e19066fe03083104a0825300202cbd1ada (diff) | |
parent | 532afbf83a509b25c5042f5bb374657417ca3e5d (diff) | |
download | forums-a74658091b19a8d8100b241ce6ac710e472918e8.tar forums-a74658091b19a8d8100b241ce6ac710e472918e8.tar.gz forums-a74658091b19a8d8100b241ce6ac710e472918e8.tar.bz2 forums-a74658091b19a8d8100b241ce6ac710e472918e8.tar.xz forums-a74658091b19a8d8100b241ce6ac710e472918e8.zip |
Merge pull request #5102 from JoshyPHP/ticket/15527
[ticket/15527] Skip malformed BBCodes during merge_duplicate_bbcodes migration
-rw-r--r-- | phpBB/phpbb/db/migration/data/v32x/merge_duplicate_bbcodes.php | 29 | ||||
-rw-r--r-- | phpBB/phpbb/textformatter/s9e/bbcode_merger.php | 3 |
2 files changed, 22 insertions, 10 deletions
diff --git a/phpBB/phpbb/db/migration/data/v32x/merge_duplicate_bbcodes.php b/phpBB/phpbb/db/migration/data/v32x/merge_duplicate_bbcodes.php index b1ee241f44..71ee19e3dd 100644 --- a/phpBB/phpbb/db/migration/data/v32x/merge_duplicate_bbcodes.php +++ b/phpBB/phpbb/db/migration/data/v32x/merge_duplicate_bbcodes.php @@ -46,16 +46,25 @@ class merge_duplicate_bbcodes extends \phpbb\db\migration\container_aware_migrat protected function merge_bbcodes(array $without, array $with) { - $merged = $this->container->get('text_formatter.s9e.bbcode_merger')->merge_bbcodes( - [ - 'usage' => $without['bbcode_match'], - 'template' => $without['bbcode_tpl'] - ], - [ - 'usage' => $with['bbcode_match'], - 'template' => $with['bbcode_tpl'] - ] - ); + try + { + $merged = $this->container->get('text_formatter.s9e.bbcode_merger')->merge_bbcodes( + [ + 'usage' => $without['bbcode_match'], + 'template' => $without['bbcode_tpl'] + ], + [ + 'usage' => $with['bbcode_match'], + 'template' => $with['bbcode_tpl'] + ] + ); + } + catch (\Exception $e) + { + // Ignore the pair and move on. The BBCodes would have to be fixed manually + return; + } + $bbcode_data = [ 'bbcode_tag' => $without['bbcode_tag'], 'bbcode_helpline' => $without['bbcode_helpline'] . ' | ' . $with['bbcode_helpline'], diff --git a/phpBB/phpbb/textformatter/s9e/bbcode_merger.php b/phpBB/phpbb/textformatter/s9e/bbcode_merger.php index 72b1473751..a05ca3c2b8 100644 --- a/phpBB/phpbb/textformatter/s9e/bbcode_merger.php +++ b/phpBB/phpbb/textformatter/s9e/bbcode_merger.php @@ -37,6 +37,9 @@ class bbcode_merger * * All of the arrays contain a "usage" element and a "template" element * + * @throws InvalidArgumentException if a definition cannot be interpreted + * @throws RuntimeException if something unexpected occurs + * * @param array $without BBCode definition without an attribute * @param array $with BBCode definition with an attribute * @return array Merged definition |