mediatheque
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
namespace Grav\Plugin\Console;
|
||||
|
||||
use Grav\Console\ConsoleCommand;
|
||||
use Grav\Plugin\TNTSearchPlugin;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
|
||||
/**
|
||||
* Class IndexerCommand
|
||||
*
|
||||
* @package Grav\Plugin\Console
|
||||
*/
|
||||
class TNTSearchIndexerCommand extends ConsoleCommand
|
||||
{
|
||||
/** @var array */
|
||||
protected $options = [];
|
||||
/** @var array */
|
||||
protected $colors = [
|
||||
'DEBUG' => 'green',
|
||||
'INFO' => 'cyan',
|
||||
'NOTICE' => 'yellow',
|
||||
'WARNING' => 'yellow',
|
||||
'ERROR' => 'red',
|
||||
'CRITICAL' => 'red',
|
||||
'ALERT' => 'red',
|
||||
'EMERGENCY' => 'magenta'
|
||||
];
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
protected function configure(): void
|
||||
{
|
||||
$this
|
||||
->setName('index')
|
||||
->addOption(
|
||||
'alt',
|
||||
null,
|
||||
InputOption::VALUE_NONE,
|
||||
'alternative output'
|
||||
)
|
||||
->addOption(
|
||||
'language',
|
||||
'l',
|
||||
InputOption::VALUE_OPTIONAL,
|
||||
'optional language to index (multi-language sites only)'
|
||||
)
|
||||
->setDescription('TNTSearch Indexer')
|
||||
->setHelp('The <info>index command</info> re-indexes the search engine');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
protected function serve(): int
|
||||
{
|
||||
/** @var string|null $langCode */
|
||||
$langCode = $this->input->getOption('language');
|
||||
|
||||
error_reporting(1);
|
||||
$this->setLanguage($langCode);
|
||||
$this->initializePages();
|
||||
|
||||
$alt_output = $this->input->getOption('alt') ? true : false;
|
||||
|
||||
if ($alt_output) {
|
||||
$output = $this->doIndex($langCode);
|
||||
$this->output->write($output);
|
||||
$this->output->writeln('');
|
||||
} else {
|
||||
$this->output->writeln('');
|
||||
$this->output->writeln('<magenta>Re-indexing</magenta>');
|
||||
$this->output->writeln('');
|
||||
$start = microtime(true);
|
||||
$output = $this->doIndex($langCode);
|
||||
$this->output->write($output);
|
||||
$this->output->writeln('');
|
||||
$end = number_format(microtime(true) - $start,1);
|
||||
$this->output->writeln('');
|
||||
$this->output->writeln('Indexed in ' . $end . 's');
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $langCode
|
||||
* @return string
|
||||
*/
|
||||
private function doIndex(string $langCode = null): string
|
||||
{
|
||||
[,,$output] = TNTSearchPlugin::indexJob($langCode);
|
||||
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user