mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-19 15:01:33 +02:00
[ticket/16752] Add methods for exporting events to rst by script
PHPBB3-16752
This commit is contained in:
@@ -243,7 +243,7 @@ class md_exporter
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the php events as a wiki table
|
||||
* Format the md events as a wiki table
|
||||
*
|
||||
* @param string $action
|
||||
* @return string Number of events found
|
||||
@@ -298,6 +298,71 @@ class md_exporter
|
||||
return $wiki_page;
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the md events as a rst table
|
||||
*
|
||||
* @param string $action
|
||||
* @return string Number of events found
|
||||
*/
|
||||
public function export_events_for_rst(string $action = ''): string
|
||||
{
|
||||
$rst_exporter = new rst_exporter();
|
||||
|
||||
if ($this->filter === 'adm')
|
||||
{
|
||||
if ($action === 'diff')
|
||||
{
|
||||
$rst_exporter->add_section_header('h3', 'ACP Template Events');
|
||||
}
|
||||
else
|
||||
{
|
||||
$rst_exporter->add_section_header('h2', 'ACP Template Events');
|
||||
}
|
||||
|
||||
$rst_exporter->set_columns([
|
||||
'event' => 'Identifier',
|
||||
'files' => 'Placement',
|
||||
'since' => 'Added in Release',
|
||||
'description' => 'Explanation',
|
||||
]);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($action === 'diff')
|
||||
{
|
||||
$rst_exporter->add_section_header('h3', 'Template Events');
|
||||
}
|
||||
else
|
||||
{
|
||||
$rst_exporter->add_section_header('h2', 'Template Events');
|
||||
}
|
||||
|
||||
$rst_exporter->set_columns([
|
||||
'event' => 'Identifier',
|
||||
'files' => 'Prosilver Placement (If applicable)',
|
||||
'since' => 'Added in Release',
|
||||
'description' => 'Explanation',
|
||||
]);
|
||||
}
|
||||
|
||||
$events = [];
|
||||
foreach ($this->events as $event_name => $event)
|
||||
{
|
||||
$files = $this->filter === 'adm' ? implode(', ', $event['files']['adm']) : implode(', ', $event['files']['prosilver']);
|
||||
|
||||
$events[] = [
|
||||
'event' => $event_name,
|
||||
'files' => $files,
|
||||
'since' => $event['since'],
|
||||
'description' => str_replace("\n", '<br>', rtrim($event['description'])),
|
||||
];
|
||||
}
|
||||
|
||||
$rst_exporter->generate_events_table($events);
|
||||
|
||||
return $rst_exporter->get_rst_output();
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates a template event name
|
||||
*
|
||||
|
@@ -184,6 +184,28 @@ class php_exporter
|
||||
return $wiki_page;
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the PHP events as a rst table
|
||||
*
|
||||
* @param string $action
|
||||
* @return string
|
||||
*/
|
||||
public function export_events_for_rst(string $action = ''): string
|
||||
{
|
||||
$rst_exporter = new rst_exporter();
|
||||
$rst_exporter->add_section_header($action === 'diff' ? 'h3' : 'h2', 'PHP Events');
|
||||
$rst_exporter->set_columns([
|
||||
'event' => 'Identifier',
|
||||
'file' => 'Placement',
|
||||
'arguments' => 'Arguments',
|
||||
'since' => 'Added in Release',
|
||||
'description' => 'Explanation',
|
||||
]);
|
||||
$rst_exporter->generate_events_table($this->events);
|
||||
|
||||
return $rst_exporter->get_rst_output();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $file
|
||||
* @return int Number of events found in this file
|
||||
@@ -287,24 +309,32 @@ class php_exporter
|
||||
array_pop($description_lines);
|
||||
}
|
||||
|
||||
$description = trim(implode('<br/>', $description_lines));
|
||||
$description = trim(implode('<br>', $description_lines));
|
||||
sort($arguments);
|
||||
|
||||
if (isset($this->events[$this->current_event]))
|
||||
{
|
||||
throw new \LogicException("The event '{$this->current_event}' from file "
|
||||
. "'{$this->current_file}:{$event_line_num}' already exists in file "
|
||||
. "'{$this->events[$this->current_event]['file']}'", 10);
|
||||
}
|
||||
if ($this->events[$this->current_event]['arguments'] != $arguments ||
|
||||
$this->events[$this->current_event]['since'] != $since)
|
||||
{
|
||||
throw new \LogicException("The event '{$this->current_event}' from file "
|
||||
. "'{$this->current_file}:{$event_line_num}' already exists in file "
|
||||
. "'{$this->events[$this->current_event]['file']}'", 10);
|
||||
}
|
||||
|
||||
sort($arguments);
|
||||
$this->events[$this->current_event] = array(
|
||||
'event' => $this->current_event,
|
||||
'file' => $this->current_file,
|
||||
'arguments' => $arguments,
|
||||
'since' => $since,
|
||||
'description' => $description,
|
||||
);
|
||||
$num_events_found++;
|
||||
$this->events[$this->current_event]['file'] .= '<br>' . $this->current_file;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->events[$this->current_event] = array(
|
||||
'event' => $this->current_event,
|
||||
'file' => $this->current_file,
|
||||
'arguments' => $arguments,
|
||||
'since' => $since,
|
||||
'description' => $description,
|
||||
);
|
||||
$num_events_found++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -178,6 +178,7 @@ class rst_exporter
|
||||
*/
|
||||
private function get_column(string $type, string $content): string
|
||||
{
|
||||
$content = rtrim($content);
|
||||
return ' ' . $content . str_repeat(' ' , $this->max_lengths[$type] - strlen($content) + 1) . '|';
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user