<?php
namespace App\Controllers\Admin;
use App\Controllers\BaseController;
use App\Models\LoggingModel;
class Logs extends BaseController
{
public function index()
{
$this->data['meta']['title'] = 'Logs';
$model = new LoggingModel();
$request = service('request');
$searchData = $request->getGet();
$search = [];
$search['search'] = '';
$search['column'] = '';
$search['perpage'] = 20;
if (isset($searchData)) {
if (isset($searchData['search'])) {
$search['search'] = trim($searchData['search']);
}
if (isset($searchData['perpage'])) {
$search['perpage'] = trim($searchData['perpage']);
}
}
$search['column'] = 'date';
if (isset($searchData['column'])) {
switch ($searchData['column']) {
case 'id':
$search['column'] = 'id';
break;
case 'ip':
$search['column'] = 'ip';
break;
case 'host_name':
$search['column'] = 'host_name';
break;
case 'user_agent':
$search['column'] = 'user_agent';
break;
case 'referer':
$search['column'] = 'http_referer';
break;
case 'date':
default:
$search['column'] = 'date';
break;
}
}
$search['order'] = (isset($searchData['order']) && $searchData['order'] === strtolower('asc')) ? 'asc' : 'desc';
if ($search == '') {
$paginateData = $model->paginate($search['perpage']);
} else {
$paginateData = $model->select('*')
->orLike('ip', $search['search'])
->orLike('host_name', $search['search'])
->orLike('date', $search['search'])
->orderBy($search['column'], $search['order'])
->paginate($search['perpage']);
}
$this->data['data'] = $paginateData;
$this->data['pager'] = $model->pager;
$this->data['search'] = $search;
echo view('Admin/Logs/index', $this->data);
}
}