86 lines
2.6 KiB
PHP
86 lines
2.6 KiB
PHP
|
<?php
|
||
|
require_once('include/global.php');
|
||
|
|
||
|
if(!$authenticated) {
|
||
|
header('Location: index.php');
|
||
|
exit;
|
||
|
}
|
||
|
|
||
|
$action = isset($_GET['action']) ? $_GET['action'] : 'list';
|
||
|
$subaction = isset($_GET['subaction']) ? $_GET['subaction'] : 'none';
|
||
|
|
||
|
switch($action) {
|
||
|
case 'list':
|
||
|
|
||
|
$activity_log = array();
|
||
|
|
||
|
$action_list = array('all'=>'all');
|
||
|
$result = $db->query('SELECT DISTINCT `action` FROM `activity_logs`;');
|
||
|
while($row = $result->fetch_assoc()) {
|
||
|
$action_list[$row['action']] = $row['action'];
|
||
|
}
|
||
|
$smarty->assign('action_list', $action_list);
|
||
|
|
||
|
// generate the user dropdown
|
||
|
$user_id_list = array('all'=>'-');
|
||
|
$result = $db->query('SELECT `id`, `username` FROM `users`;');
|
||
|
while($row = $result->fetch_assoc()) {
|
||
|
$user_id_list[$row['id']] = $row['username'];
|
||
|
}
|
||
|
$smarty->assign('user_id_list', $user_id_list);
|
||
|
|
||
|
$addon_options = '';
|
||
|
|
||
|
$filter_user_id = !empty($_GET['filter_user_id']) ? (int)$_GET['filter_user_id'] : 0;
|
||
|
if($filter_user_id != 0) {
|
||
|
if(!empty($addon_options)) {
|
||
|
$addon_options .= " AND `user_id` = '$filter_user_id'";
|
||
|
} else {
|
||
|
$addon_options .= " WHERE `user_id` = '$filter_user_id'";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$filter_action = !empty($_GET['filter_action']) ? $db->real_escape_string($_GET['filter_action']) : 'all';
|
||
|
if($filter_action != 'all') {
|
||
|
if(!empty($addon_options)) {
|
||
|
$addon_options .= " AND `action` = '$filter_action'";
|
||
|
} else {
|
||
|
$addon_options .= " WHERE `action` = '$filter_action'";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$smarty->assign('selected_user_id', $filter_user_id);
|
||
|
$smarty->assign('selected_action', $filter_action);
|
||
|
|
||
|
|
||
|
// add the addon options to the count too
|
||
|
$page_max = 0;
|
||
|
if($result = $db->query('SELECT COUNT(*) / 20 FROM `activity_logs`'.$addon_options)) {
|
||
|
if($count = $result->fetch_row()) {
|
||
|
$page_max = $count[0];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$selected_page = isset($_GET['page']) ? (int)$_GET['page'] : 0;
|
||
|
$smarty->assign('page_min', 0);
|
||
|
$smarty->assign('page_max', $page_max);
|
||
|
|
||
|
if( $result = $db->query('SELECT `activity_logs`.*, INET_NTOA(`activity_logs`.`ip`) as `ipaddr`, `users`.`username`, `programs`.`name` AS `program_name`
|
||
|
FROM `activity_logs`
|
||
|
LEFT JOIN `users` ON `users`.`id` = `activity_logs`.`user_id`
|
||
|
LEFT JOIN `programs` ON `programs`.`id` = `activity_logs`.`program_id`'.
|
||
|
$addon_options .
|
||
|
' ORDER BY `activity_time` DESC LIMIT '.($selected_page * 20).',20;')) {
|
||
|
|
||
|
while($row = $result->fetch_assoc()) {
|
||
|
$activity_log[] = $row;
|
||
|
}
|
||
|
} else {
|
||
|
die($db->error);
|
||
|
}
|
||
|
|
||
|
$smarty->assign('activity_log', $activity_log);
|
||
|
$smarty->display('activity.tpl');
|
||
|
break;
|
||
|
}
|
||
|
?>
|