readPage(0, 20); $data['last_seven_days'] = array(); $data['user_logins'] = array(); $data['admin_logins'] = array(); $data['client_logins'] = array(); $data['failed_logins'] = array(); for($i = 6; $i >= 0; $i--) { $data['last_seven_days'][] = $this->getDayAgo($i); $data['user_logins'][] = $this->getLogCountForDayAgo('login', $i); $data['failed_logins'][] = $this->getLogCountForDayAgo('login-failed', $i); } $data['admin_logins'] = array(2, 3, 5, 4, 2, 4, 8); $data['client_logins'] = array(8, 4, 2, 4, 4, 3, 2); $abandonedUploads = new GetAbandonedUploads(); $data['abandoned_uploads'] = $abandonedUploads->get(); $data['superadmin'] = $_SESSION['superadmin'] ?? false; return (new View())->render("admin/dashboard.php", $data); } private function getLogCountForDayAgo($action, $daysAgo) { $pastDateStart = date("Y-m-d 00:00:00", strtotime('-'.$daysAgo.' days')); $pastDateEnd = date("Y-m-d 23:59:59", strtotime('-'.$daysAgo.' days')); $sql = "SELECT count(*) as count FROM security_logs WHERE action = '".$action."' AND recordtime > '" . $pastDateStart . "' AND recordtime < '" . $pastDateEnd . "';"; $database = SqliteDatabase::getSingleton(); $result = $database->queryArray($sql); return $result[0]["count"]; } private function getDayAgo($daysAgo) { return date('l', strtotime('-'.$daysAgo.' days')); } }