mirror of
https://github.com/phpbb/phpbb.git
synced 2025-03-22 00:21:02 +01:00
Merge pull request #4585 from VSEphpbb/ticket/14925
[ticket/14925] Set reparser names in service definitions
This commit is contained in:
commit
fd19ef7598
@ -24,6 +24,8 @@ services:
|
||||
class: phpbb\textreparser\plugins\contact_admin_info
|
||||
arguments:
|
||||
- '@config_text'
|
||||
calls:
|
||||
- [set_name, [contact_admin_info]]
|
||||
tags:
|
||||
- { name: text_reparser.plugin }
|
||||
|
||||
@ -32,6 +34,8 @@ services:
|
||||
arguments:
|
||||
- '@dbal.conn'
|
||||
- '%tables.forums%'
|
||||
calls:
|
||||
- [set_name, [forum_description]]
|
||||
tags:
|
||||
- { name: text_reparser.plugin }
|
||||
|
||||
@ -40,6 +44,8 @@ services:
|
||||
arguments:
|
||||
- '@dbal.conn'
|
||||
- '%tables.forums%'
|
||||
calls:
|
||||
- [set_name, [forum_rules]]
|
||||
tags:
|
||||
- { name: text_reparser.plugin }
|
||||
|
||||
@ -48,6 +54,8 @@ services:
|
||||
arguments:
|
||||
- '@dbal.conn'
|
||||
- '%tables.groups%'
|
||||
calls:
|
||||
- [set_name, [group_description]]
|
||||
tags:
|
||||
- { name: text_reparser.plugin }
|
||||
|
||||
@ -56,6 +64,8 @@ services:
|
||||
arguments:
|
||||
- '@dbal.conn'
|
||||
- '%tables.privmsgs%'
|
||||
calls:
|
||||
- [set_name, [pm_text]]
|
||||
tags:
|
||||
- { name: text_reparser.plugin }
|
||||
|
||||
@ -63,6 +73,8 @@ services:
|
||||
class: phpbb\textreparser\plugins\poll_option
|
||||
arguments:
|
||||
- '@dbal.conn'
|
||||
calls:
|
||||
- [set_name, [poll_option]]
|
||||
tags:
|
||||
- { name: text_reparser.plugin }
|
||||
|
||||
@ -71,6 +83,8 @@ services:
|
||||
arguments:
|
||||
- '@dbal.conn'
|
||||
- '%tables.topics%'
|
||||
calls:
|
||||
- [set_name, [poll_title]]
|
||||
tags:
|
||||
- { name: text_reparser.plugin }
|
||||
|
||||
@ -79,6 +93,8 @@ services:
|
||||
arguments:
|
||||
- '@dbal.conn'
|
||||
- '%tables.posts%'
|
||||
calls:
|
||||
- [set_name, [post_text]]
|
||||
tags:
|
||||
- { name: text_reparser.plugin }
|
||||
|
||||
@ -87,5 +103,7 @@ services:
|
||||
arguments:
|
||||
- '@dbal.conn'
|
||||
- '%tables.users%'
|
||||
calls:
|
||||
- [set_name, [user_signature]]
|
||||
tags:
|
||||
- { name: text_reparser.plugin }
|
||||
|
@ -34,10 +34,10 @@ class list_all extends \phpbb\console\command\command
|
||||
{
|
||||
parent::__construct($user);
|
||||
$this->reparser_names = array();
|
||||
foreach ($reparsers as $name => $reparser)
|
||||
foreach ($reparsers as $reparser)
|
||||
{
|
||||
// Store the names without the "text_reparser." prefix
|
||||
$this->reparser_names[] = preg_replace('(^text_reparser\\.)', '', $name);
|
||||
$this->reparser_names[] = $reparser->get_name();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -140,13 +140,9 @@ class reparse extends \phpbb\console\command\command
|
||||
}
|
||||
|
||||
$name = $input->getArgument('reparser-name');
|
||||
if (isset($name))
|
||||
if ($name)
|
||||
{
|
||||
// Allow "post_text" to be an alias for "text_reparser.post_text"
|
||||
if (!isset($this->reparsers[$name]))
|
||||
{
|
||||
$name = 'text_reparser.' . $name;
|
||||
}
|
||||
$name = $this->reparser_manager->find_reparser($name);
|
||||
$this->reparse($name);
|
||||
}
|
||||
else
|
||||
@ -187,7 +183,7 @@ class reparse extends \phpbb\console\command\command
|
||||
/**
|
||||
* Reparse all text handled by given reparser within given range
|
||||
*
|
||||
* @param string $name Reparser name
|
||||
* @param string $name Reparser service name
|
||||
*/
|
||||
protected function reparse($name)
|
||||
{
|
||||
@ -218,10 +214,10 @@ class reparse extends \phpbb\console\command\command
|
||||
return;
|
||||
}
|
||||
|
||||
$this->io->section($this->user->lang('CLI_REPARSER_REPARSE_REPARSING', preg_replace('(^text_reparser\\.)', '', $name), $min, $max));
|
||||
$this->io->section($this->user->lang('CLI_REPARSER_REPARSE_REPARSING', $reparser->get_name(), $min, $max));
|
||||
|
||||
$progress = $this->create_progress_bar($max, $this->io, $this->output, true);
|
||||
$progress->setMessage($this->user->lang('CLI_REPARSER_REPARSE_REPARSING_START', preg_replace('(^text_reparser\\.)', '', $name)));
|
||||
$progress->setMessage($this->user->lang('CLI_REPARSER_REPARSE_REPARSING_START', $reparser->get_name()));
|
||||
$progress->start();
|
||||
|
||||
// Start from $max and decrement $current by $size until we reach $min
|
||||
@ -231,7 +227,7 @@ class reparse extends \phpbb\console\command\command
|
||||
$start = max($min, $current + 1 - $size);
|
||||
$end = max($min, $current);
|
||||
|
||||
$progress->setMessage($this->user->lang('CLI_REPARSER_REPARSE_REPARSING', preg_replace('(^text_reparser\\.)', '', $name), $start, $end));
|
||||
$progress->setMessage($this->user->lang('CLI_REPARSER_REPARSE_REPARSING', $reparser->get_name(), $start, $end));
|
||||
$reparser->reparse_range($start, $end);
|
||||
|
||||
$current = $start - 1;
|
||||
|
@ -81,7 +81,7 @@ class reparser extends \phpbb\cron\task\base
|
||||
*/
|
||||
public function set_reparser($reparser)
|
||||
{
|
||||
$this->reparser_name = (!isset($this->reparsers[$reparser]) ? 'text_reparser.' : '') . $reparser;
|
||||
$this->reparser_name = !isset($this->reparsers[$reparser]) ? $this->reparser_manager->find_reparser($reparser) : $reparser;
|
||||
|
||||
if ($this->resume_data === null)
|
||||
{
|
||||
|
@ -15,6 +15,11 @@ namespace phpbb\textreparser;
|
||||
|
||||
abstract class base implements reparser_interface
|
||||
{
|
||||
/**
|
||||
* @var string The reparser name
|
||||
*/
|
||||
protected $name;
|
||||
|
||||
/**
|
||||
* @var bool Whether to save changes to the database
|
||||
*/
|
||||
@ -89,6 +94,26 @@ abstract class base implements reparser_interface
|
||||
return $record;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of the reparser
|
||||
*
|
||||
* @return string Name of reparser
|
||||
*/
|
||||
public function get_name()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the name of the reparser
|
||||
*
|
||||
* @param string $name The reparser name
|
||||
*/
|
||||
public function set_name($name)
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Disable saving changes to the database
|
||||
*/
|
||||
@ -231,7 +256,7 @@ abstract class base implements reparser_interface
|
||||
$unparsed['enable_flash_bbcode'],
|
||||
$unparsed['enable_quote_bbcode'],
|
||||
$unparsed['enable_url_bbcode'],
|
||||
'reparse'
|
||||
'text_reparser.' . $this->get_name()
|
||||
);
|
||||
|
||||
// Save the new text if it has changed and it's not a dry run
|
||||
|
@ -125,4 +125,24 @@ class manager
|
||||
$this->schedule($reparser, $interval);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds a reparser by name.
|
||||
*
|
||||
* If there is no reparser with the specified name, null is returned.
|
||||
*
|
||||
* @param string $name Name of the reparser to look up.
|
||||
* @return string A reparser service name, or null.
|
||||
*/
|
||||
public function find_reparser($name)
|
||||
{
|
||||
foreach ($this->reparsers as $service => $reparser)
|
||||
{
|
||||
if ($reparser->get_name() == $name)
|
||||
{
|
||||
return $service;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -22,6 +22,20 @@ interface reparser_interface
|
||||
*/
|
||||
public function get_max_id();
|
||||
|
||||
/**
|
||||
* Returns the name of the reparser
|
||||
*
|
||||
* @return string Name of reparser
|
||||
*/
|
||||
public function get_name();
|
||||
|
||||
/**
|
||||
* Sets the name of the reparser
|
||||
*
|
||||
* @param string $name The reparser name
|
||||
*/
|
||||
public function set_name($name);
|
||||
|
||||
/**
|
||||
* Reparse all records in given range
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user