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;
 | 
						|
}
 | 
						|
?>
 |