Current File : /home/pacjaorg/public_html/km/administrator/components/com_finder/src/Response/Response.php |
<?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');
}
}
}
}