primo commit
This commit is contained in:
189
administrator/components/com_finder/src/Response/Response.php
Normal file
189
administrator/components/com_finder/src/Response/Response.php
Normal file
@ -0,0 +1,189 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_finder
|
||||
*
|
||||
* @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
namespace Joomla\Component\Finder\Administrator\Response;
|
||||
|
||||
use Joomla\CMS\Component\ComponentHelper;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Log\Log;
|
||||
|
||||
// phpcs:disable PSR1.Files.SideEffects
|
||||
\defined('_JEXEC') or die;
|
||||
// phpcs:enable PSR1.Files.SideEffects
|
||||
|
||||
/**
|
||||
* Finder Indexer JSON Response Class
|
||||
*
|
||||
* @since 2.5
|
||||
*/
|
||||
class Response
|
||||
{
|
||||
/**
|
||||
* The buffer
|
||||
*
|
||||
* @var string
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public $buffer;
|
||||
|
||||
/**
|
||||
* The memory
|
||||
*
|
||||
* @var string
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public $memory;
|
||||
|
||||
/**
|
||||
* If it has an error
|
||||
*
|
||||
* @var bool
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public $error;
|
||||
|
||||
/**
|
||||
* The header
|
||||
*
|
||||
* @var string
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public $header;
|
||||
|
||||
/**
|
||||
* The message
|
||||
*
|
||||
* @var string
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public $message;
|
||||
|
||||
/**
|
||||
* The batch size
|
||||
*
|
||||
* @var int
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public $batchSize;
|
||||
|
||||
/**
|
||||
* The batch offset
|
||||
*
|
||||
* @var int
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public $batchOffset;
|
||||
|
||||
/**
|
||||
* The total items
|
||||
*
|
||||
* @var int
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public $totalItems;
|
||||
|
||||
/**
|
||||
* The plugin state
|
||||
*
|
||||
* @var string
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public $pluginState;
|
||||
|
||||
/**
|
||||
* The start time
|
||||
*
|
||||
* @var string
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public $startTime;
|
||||
|
||||
/**
|
||||
* The end time
|
||||
*
|
||||
* @var string
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public $endTime;
|
||||
|
||||
/**
|
||||
* The start
|
||||
*
|
||||
* @var int
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public $start;
|
||||
|
||||
/**
|
||||
* The complete
|
||||
*
|
||||
* @var int
|
||||
* @since 4.3.0
|
||||
*/
|
||||
public $complete;
|
||||
|
||||
/**
|
||||
* Class Constructor
|
||||
*
|
||||
* @param mixed $state The processing state for the indexer
|
||||
*
|
||||
* @since 2.5
|
||||
*/
|
||||
public function __construct($state)
|
||||
{
|
||||
$params = ComponentHelper::getParams('com_finder');
|
||||
|
||||
if ($params->get('enable_logging', '0')) {
|
||||
$options['format'] = '{DATE}\t{TIME}\t{LEVEL}\t{CODE}\t{MESSAGE}';
|
||||
$options['text_file'] = 'indexer.php';
|
||||
Log::addLogger($options);
|
||||
}
|
||||
|
||||
// Check if we are dealing with an error.
|
||||
if ($state instanceof \Exception) {
|
||||
// Log the error
|
||||
try {
|
||||
Log::add($state->getMessage(), Log::ERROR);
|
||||
} catch (\RuntimeException $exception) {
|
||||
// Informational log only
|
||||
}
|
||||
|
||||
// Prepare the error response.
|
||||
$this->error = true;
|
||||
$this->header = Text::_('COM_FINDER_INDEXER_HEADER_ERROR');
|
||||
$this->message = $state->getMessage();
|
||||
} else {
|
||||
// Prepare the response data.
|
||||
$this->batchSize = (int) $state->batchSize;
|
||||
$this->batchOffset = (int) $state->batchOffset;
|
||||
$this->totalItems = (int) $state->totalItems;
|
||||
$this->pluginState = $state->pluginState;
|
||||
|
||||
$this->startTime = $state->startTime;
|
||||
$this->endTime = Factory::getDate()->toSql();
|
||||
|
||||
$this->start = !empty($state->start) ? (int) $state->start : 0;
|
||||
$this->complete = !empty($state->complete) ? (int) $state->complete : 0;
|
||||
|
||||
// Set the appropriate messages.
|
||||
if ($this->totalItems <= 0 && $this->complete) {
|
||||
$this->header = Text::_('COM_FINDER_INDEXER_HEADER_COMPLETE');
|
||||
$this->message = Text::_('COM_FINDER_INDEXER_MESSAGE_COMPLETE');
|
||||
} elseif ($this->totalItems <= 0) {
|
||||
$this->header = Text::_('COM_FINDER_INDEXER_HEADER_OPTIMIZE');
|
||||
$this->message = Text::_('COM_FINDER_INDEXER_MESSAGE_OPTIMIZE');
|
||||
} else {
|
||||
$this->header = Text::_('COM_FINDER_INDEXER_HEADER_RUNNING');
|
||||
$this->message = Text::_('COM_FINDER_INDEXER_MESSAGE_RUNNING');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user