( ! ) Notice: Undefined index: player in /var/www/html/pages/wiki.php(36) : eval()'d code on line 59
Call Stack
#TimeMemoryFunctionLocation
10.0001356632{main}( ).../index.php:0
20.0048367160include( '/var/www/html/pages/wiki.php' ).../index.php:47
30.0103430784includestring( ).../wiki.php:403
40.0106484448eval( '?> getName(); function findMaxConcurrentPlayers($days) { $timestamps = []; foreach ($days as $day) { foreach ($day["sessions"] as $session) { $timestamps[] = ["timestamp" => $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; array_push($playerCount[$dayId]["days"], $strictDay); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"]) - ($a["total_time"] - $a["afk_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points[] = [$tmsp, findMaxConcurrentPlayers($value["days"])]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

)
.../wiki.php:36

( ! ) Fatal error: Uncaught Error: Call to a member function getName() on null in /var/www/html/pages/wiki.php(36) : eval()'d code on line 63
( ! ) Error: Call to a member function getName() on null in /var/www/html/pages/wiki.php(36) : eval()'d code on line 63
Call Stack
#TimeMemoryFunctionLocation
10.0001356632{main}( ).../index.php:0
20.0048367160include( '/var/www/html/pages/wiki.php' ).../index.php:47
30.0103430784includestring( ).../wiki.php:403
40.0106484448eval( '?> getName(); function findMaxConcurrentPlayers($days) { $timestamps = []; foreach ($days as $day) { foreach ($day["sessions"] as $session) { $timestamps[] = ["timestamp" => $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; array_push($playerCount[$dayId]["days"], $strictDay); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"]) - ($a["total_time"] - $a["afk_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points[] = [$tmsp, findMaxConcurrentPlayers($value["days"])]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

)
.../wiki.php:36