App Logs. */ require_once '../../includes/modal_header.php'; $app_log_id = intval($_GET['id'] ?? 0); $row = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT * FROM app_logs WHERE app_log_id = $app_log_id")); if (!$row) { echo json_encode(['error' => 'That app log entry no longer exists - it may have been cleared.']); exit; } $level = appLogLevel($row['app_log_type']); $style = appLogLevels()[$level]; $category = (string) $row['app_log_category']; $created = strtotime($row['app_log_created_at']); $at = escapeSql($row['app_log_created_at']); $window = "BETWEEN '$at' - INTERVAL 5 MINUTE AND '$at' + INTERVAL 5 MINUTE"; // The other app log entries in the five minutes either side $around_where = "app_log_created_at $window AND app_log_id <> $app_log_id"; $around_count = intval(mysqli_fetch_row(mysqli_query($mysqli, "SELECT COUNT(*) FROM app_logs WHERE $around_where"))[0]); $around = []; $sql = mysqli_query($mysqli, "SELECT app_log_id, app_log_category, app_log_type, app_log_details, app_log_created_at FROM app_logs WHERE $around_where ORDER BY app_log_created_at ASC, app_log_id ASC LIMIT 8"); while ($around_row = mysqli_fetch_assoc($sql)) { $around[] = $around_row; } // What was done in the audit log then $audit_where = "log_created_at $window"; $audit_count = intval(mysqli_fetch_row(mysqli_query($mysqli, "SELECT COUNT(*) FROM logs WHERE $audit_where"))[0]); $audit = []; $sql = mysqli_query($mysqli, "SELECT log_id, log_type, log_action, log_description, log_created_at FROM logs WHERE $audit_where ORDER BY log_created_at ASC, log_id ASC LIMIT 8"); while ($audit_row = mysqli_fetch_assoc($sql)) { $audit[] = $audit_row; } $category_count = $category !== '' ? intval(mysqli_fetch_row(mysqli_query($mysqli, "SELECT COUNT(*) FROM app_logs WHERE app_log_category = '" . escapeSql($category) . "'"))[0]) : 0; $day = date('Y-m-d', $created); $day_query = 'canned_date=custom&dtf=' . $day . '&dtt=' . $day; ob_start(); ?>