1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-06 23:55:26 +02:00

[ticket/15527] Skip malformed BBCodes during merge_duplicate_bbcodes migration

PHPBB3-15527
This commit is contained in:
JoshyPHP 2018-01-22 02:37:47 +01:00
parent d0143bec88
commit 5c8a667db2
2 changed files with 24 additions and 10 deletions

View File

@ -13,6 +13,8 @@
namespace phpbb\db\migration\data\v32x; namespace phpbb\db\migration\data\v32x;
use Exception;
class merge_duplicate_bbcodes extends \phpbb\db\migration\container_aware_migration class merge_duplicate_bbcodes extends \phpbb\db\migration\container_aware_migration
{ {
public function update_data() public function update_data()
@ -46,16 +48,25 @@ class merge_duplicate_bbcodes extends \phpbb\db\migration\container_aware_migrat
protected function merge_bbcodes(array $without, array $with) protected function merge_bbcodes(array $without, array $with)
{ {
$merged = $this->container->get('text_formatter.s9e.bbcode_merger')->merge_bbcodes( try
[ {
'usage' => $without['bbcode_match'], $merged = $this->container->get('text_formatter.s9e.bbcode_merger')->merge_bbcodes(
'template' => $without['bbcode_tpl'] [
], 'usage' => $without['bbcode_match'],
[ 'template' => $without['bbcode_tpl']
'usage' => $with['bbcode_match'], ],
'template' => $with['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_data = [
'bbcode_tag' => $without['bbcode_tag'], 'bbcode_tag' => $without['bbcode_tag'],
'bbcode_helpline' => $without['bbcode_helpline'] . ' | ' . $with['bbcode_helpline'], 'bbcode_helpline' => $without['bbcode_helpline'] . ' | ' . $with['bbcode_helpline'],

View File

@ -37,6 +37,9 @@ class bbcode_merger
* *
* All of the arrays contain a "usage" element and a "template" element * 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 $without BBCode definition without an attribute
* @param array $with BBCode definition with an attribute * @param array $with BBCode definition with an attribute
* @return array Merged definition * @return array Merged definition