1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-30 21:40:43 +02:00

[ticket/17402] Add CLI reparser option to force reparsing BBCode

PHPBB-17402
This commit is contained in:
rxu
2024-09-28 18:28:49 +07:00
parent 914383a581
commit 2ac9c0ae7c
4 changed files with 25 additions and 14 deletions

View File

@@ -216,11 +216,11 @@ abstract class base implements reparser_interface
/**
* {@inheritdoc}
*/
public function reparse_range($min_id, $max_id)
public function reparse_range($min_id, $max_id, bool $force_bbcode_reparsing = false)
{
foreach ($this->get_records_by_range($min_id, $max_id) as $record)
{
$this->reparse_record($record);
$this->reparse_record($record, $force_bbcode_reparsing);
}
}
@@ -228,16 +228,17 @@ abstract class base implements reparser_interface
* Reparse given record
*
* @param array $record Associative array containing the record's data
* @param bool $force_bbcode_reparsing Flag indicating if BBCode should be reparsed unconditionally
*/
protected function reparse_record(array $record)
protected function reparse_record(array $record, bool $force_bbcode_reparsing = false)
{
// Guess magic URL state based on actual record content before adding fields
$record['enable_magic_url'] = $this->guess_magic_url($record);
$record = $this->add_missing_fields($record);
$flags = ($record['enable_bbcode']) ? OPTION_FLAG_BBCODE : 0;
$flags |= ($record['enable_smilies']) ? OPTION_FLAG_SMILIES : 0;
$flags |= ($record['enable_magic_url']) ? OPTION_FLAG_LINKS : 0;
$flags = ($record['enable_bbcode'] || $force_bbcode_reparsing) ? OPTION_FLAG_BBCODE : 0;
$flags |= ($record['enable_smilies'] || $force_bbcode_reparsing) ? OPTION_FLAG_SMILIES : 0;
$flags |= ($record['enable_magic_url'] || $force_bbcode_reparsing) ? OPTION_FLAG_LINKS : 0;
$unparsed = array_merge(
$record,
generate_text_for_edit($record['text'], $record['bbcode_uid'], $flags)
@@ -252,13 +253,13 @@ abstract class base implements reparser_interface
$unparsed['bbcode_uid'],
$bitfield,
$flags,
$unparsed['enable_bbcode'],
$unparsed['enable_magic_url'],
$unparsed['enable_smilies'],
$unparsed['enable_img_bbcode'],
$unparsed['enable_bbcode'] || $force_bbcode_reparsing,
$unparsed['enable_magic_url'] || $force_bbcode_reparsing,
$unparsed['enable_smilies'] || $force_bbcode_reparsing,
$unparsed['enable_img_bbcode'] || $force_bbcode_reparsing,
$unparsed['enable_flash_bbcode'],
$unparsed['enable_quote_bbcode'],
$unparsed['enable_url_bbcode'],
$unparsed['enable_quote_bbcode'] || $force_bbcode_reparsing,
$unparsed['enable_url_bbcode'] || $force_bbcode_reparsing,
'text_reparser.' . $this->get_name()
);

View File

@@ -41,6 +41,7 @@ interface reparser_interface
*
* @param integer $min_id Lower bound
* @param integer $max_id Upper bound
* @param bool $force_bbcode_reparsing Flag indicating if BBCode should be reparsed unconditionally
*/
public function reparse_range($min_id, $max_id);
public function reparse_range($min_id, $max_id, bool $force_bbcode_reparsing = false);
}