%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/lightco1/upgrade.lightco.com.au/administrator/components/com_csvi/models/
Upload File :
Create Path :
Current File : /home/lightco1/upgrade.lightco.com.au/administrator/components/com_csvi/models/logdetails.php

<?php
/**
 * @package     CSVI
 * @subpackage  Logdetails
 *
 * @author      Roland Dalmulder <contact@csvimproved.com>
 * @copyright   Copyright (C) 2006 - 2016 RolandD Cyber Produksi. All rights reserved.
 * @license     GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 * @link        http://www.csvimproved.com
 */

defined('_JEXEC') or die;

/**
 * Log details model.
 *
 * @package     CSVI
 * @subpackage  Logdetails
 * @since       6.0
 */
class CsviModelLogdetails extends JModelList
{
	/**
	 * The database class
	 *
	 * @var    JDatabaseDriver
	 * @since  6.0
	 */
	protected $db;

	/**
	 * Construct the class.
	 *
	 * @param   array  $config  An optional associative array of configuration settings.
	 *
	 * @since   6.0
	 */
	public function __construct($config = array())
	{
		if (empty($config['filter_fields']))
		{
			$config['filter_fields'] = array(
				'a.action', 'action',
				'a.result', 'result',
			);
		}

		// Load the basics
		$this->db = JFactory::getDbo();

		parent::__construct($config);
	}

	/**
	 * Method to auto-populate the model state.
	 *
	 * Note. Calling getState in this method will result in recursion.
	 *
	 * @param   string  $ordering   An optional ordering field.
	 * @param   string  $direction  An optional direction (asc|desc).
	 *
	 * @return  void
	 *
	 * @since   6.6.0
	 */
	protected function populateState($ordering = 'a.csvi_logdetail_id', $direction = 'ASC')
	{
		// List state information.
		parent::populateState($ordering, $direction);
	}

	/**
	 * Build an SQL query to load the list data.
	 *
	 * @return  JDatabaseQuery  The query to execute.
	 *
	 * @since   4.0
	 *
	 * @throws  Exception
	 * @throws  RuntimeException
	 */
	protected function getListQuery()
	{
		// Get the Run ID
		$run_id = JFactory::getApplication()->input->getInt('run_id', 0);

		// Get the parent query
		$query = $this->db->getQuery(true)
			->from($this->db->quoteName('#__csvi_logdetails', 'a'))
			->leftJoin(
				$this->db->quoteName('#__csvi_logs', 'l')
				. ' ON ' . $this->db->quoteName('l.csvi_log_id') . ' = ' . $this->db->quoteName('a.csvi_log_id')
			)
			->select(
				$this->db->quoteName(
					array(
						'a.csvi_logdetail_id',
						'a.csvi_log_id',
						'a.line',
						'a.description',
						'a.result',
						'a.status',
						'a.area',
					)
				)
			)
			->where($this->db->quoteName('l.csvi_log_id') . ' = ' . (int) $run_id);

		// Filter by search
		$search = $this->getState('filter.search');

		if ($search)
		{
			$query->where($this->db->quoteName('a.description') . ' LIKE ' . $this->db->quote('%' . $search . '%'));
		}

		// Filter by action
		$action = $this->getState('filter.action');

		if ($action)
		{
			$query->where($this->db->quoteName('status') . ' = ' . $this->db->quote($action));
		}

		// Filter by action
		$result = $this->getState('filter.result');

		if ($result)
		{
			$query->where($this->db->quoteName('result') . ' = ' . $this->db->quote($result));
		}

		return $query;
	}

	/**
	 * Load the statistics for displaying.
	 *
	 * @param   int     $runId  The log ID.
	 *
	 * @return  object  Object of result
	 *
	 * @since   3.0
	 *
	 * @throws  RuntimeException
	 * @throws  InvalidArgumentException
	 */
	public function getStats($runId)
	{
		$details = new stdClass;
		$csviHelper = new CsviHelperCsvi();

		if ($runId)
		{
			jimport('joomla.filesystem.file');

			// Add the run ID
			$details->run_id = $runId;

			// Get the total number of records
			$query = $this->db->getQuery(true)
				->select(
					array(
						$this->db->quoteName('start'),
						$this->db->quoteName('end'),
						$this->db->quoteName('addon'),
						$this->db->quoteName('action'),
						$this->db->quoteName('action_type'),
						$this->db->quoteName('template_name'),
						$this->db->quoteName('records'),
						$this->db->quoteName('file_name'),
						$this->db->quoteName('run_cancelled')
					)
				)
				->from($this->db->quoteName('#__csvi_logs'))
				->where($this->db->quoteName('csvi_log_id') . ' = ' . (int) $runId);
			$this->db->setQuery($query);
			$details = $this->db->loadObject();

			// Load the addon language
			$csviHelper->loadLanguage($details->addon);

			// Get the status area results
			$query->clear()
				->select('COUNT(' . $this->db->quoteName('status') . ') AS ' . $this->db->quoteName('total'))
				->select($this->db->quoteName('status'))
				->select($this->db->quoteName('area'))
				->from($this->db->quoteName('#__csvi_logdetails'))
				->where($this->db->quoteName('csvi_log_id') . ' = ' . (int) $runId)
				->group($this->db->quoteName(array('status', 'area')))
				->order($this->db->quoteName('area'));
			$this->db->setQuery($query);
			$details->resultstats = $this->db->loadObjectList();

			// Get some status results
			$query->clear()
				->select('COUNT(' . $this->db->quoteName('status') . ') AS ' . $this->db->quoteName('total'))
				->select($this->db->quoteName('status'))
				->select($this->db->quoteName('result'))
				->from($this->db->quoteName('#__csvi_logdetails'))
				->where($this->db->quoteName('csvi_log_id') . ' = ' . (int) $runId)
				->order($this->db->quoteName('csvi_logdetail_id'));
			$this->db->setQuery($query);
			$results = $this->db->loadObjectList('status');
			$details->result = array();

			foreach ($results as $status => $result)
			{
				if ($status)
				{
					$details->result[$status] = $result;
				}
			}

			// Check if there is a debug log file
			$logfile = JPATH_SITE . '/logs/com_csvi.log.' . $runId . '.php';

			if (JFile::exists($logfile))
			{
				$attribs = 'class="modal" onclick="" rel="{handler: \'iframe\', size: {x: 950, y: 500}}"';
				$details->debug = JHtml::_(
					'link',
					JRoute::_('index.php?option=com_csvi&view=logs&layout=logreader&tmpl=component&run_id=' . $runId),
					JText::_('COM_CSVI_SHOW_LOG'),
					$attribs
				);
				$details->debug .= ' | ';
				$details->debug .= JHtml::_(
					'link',
					JRoute::_('index.php?option=com_csvi&view=logs&layout=logreader&tmpl=component&run_id=' . $runId),
					JText::_('COM_CSVI_OPEN_LOG'),
					'target="_new"'
				);
				$details->debug .= ' | ';
				$details->debug .= JHtml::_(
					'link',
					JRoute::_('index.php?option=com_csvi&task=logs.downloadDebug&run_id=' . $runId),
					JText::_('COM_CSVI_DOWNLOAD_LOG')
				);
			}
			else
			{
				$details->debug = JText::_('COM_CSVI_NO_DEBUG_LOG_FOUND');
			}
		}

		return $details;
	}
}

Zerion Mini Shell 1.0