Dla pewności przesyłam cały kod z modelu
Kod PHP:
<?php
/**
* @package Joomla.Administrator
* @subpackage com_phplog
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
/**
* PhpLogList Model
*
* @since 0.3.5
*/
class PhpLogModelPhpLogs extends JModelList
{
/**
* Constructor.
*
* @param array $config An optional associative array of configuration settings.
*
* @see JController
* @since 1.6
*/
public function __construct($config = array())
{
if (empty($config['filter_fields']))
{
$config['filter_fields'] = array(
'id',
'err_str',
'content',
'file',
'line',
'date_time',
'published',
'date_start',
'date_stop'
);
}
parent::__construct($config);
}
/**
* Method to build an SQL query to load the list data.
*
* @return string An SQL query
*/
protected function getListQuery()
{
// Initialize variables.
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// Create the base select statement.
$query->select('*')
->from($db->quoteName('log_php'));
// Filter: like / search
$search = $this->getState('filter.search');
if (!empty($search))
{
$like = $db->quote('%' . $search . '%');
$query->where('content LIKE ' . $like . 'OR err_str LIKE ' . $like . 'OR file LIKE ' . $like);
}
// Filter Published
$published = $this->getState('filter.published');
if (is_numeric($published))
{
$query->where('published = ' . (int) $published);
}
elseif ($published === '')
{
$query->where('(published IN (0, 1))');
}
$session = JFactory::getSession();
$start_date = $db->quote($this->getState('filter.date_start'));
$stop_date = $db->quote($this->getState('filter.date_stop'));
if($stop_date == '\'\''){
$def_stop_date = new DateTime();
$stop_date = $def_stop_date->setTime(23, 59, 59)->format('Y-m-d H:i:s');
}
if($start_date !== '\'\'' && $stop_date !== '\'\''){
$session->set('start_date', $start_date);
$session->set('stop_date', $stop_date);
}
if((empty($session->get('start_date')) && empty($session->get('stop_date'))) || ($session->get('start_date') == '\'\'' && $session->get('stop_date') == '\'\'')) {
$def_start_date = new DateTime();
$def_start_date->setTime(00, 00, 01);
$def_stop_date = new DateTime();
$def_stop_date->setTime(23, 59, 59);
$session->set('def_start_date', $db->quote($def_start_date->format('Y-m-d H:i:s')));
$session->set('def_stop_date', $db->quote($def_stop_date->format('Y-m-d H:i:s')));
$query->where('date_time BETWEEN '.$session->get('def_start_date').' AND ' . $session->get('def_stop_date') );
}else{
$query->where('date_time BETWEEN '. $session->get('start_date') . ' AND ' . $session->get('stop_date') );
}
return $query;
}
public static function getChartData(){
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('date_format(date_time,'. $db->quote('%Y-%m-%d').') as date, count(id) as count')
->from('log_php')
->group('date_format(date_time,'. $db->quote('%Y-%m-%d').')' )
->order('date_time ASC ');
$db->setQuery($query);
return $db->loadObjectList();
}
}