$data = json_decode(file_get_contents($modlist_cache), true); } $service->versions = array_reverse($data['versions']); $service->versions_grouped = array_reverse($data['versions_grouped']); $service->versions_count = $data['versions_count']; $service->uri = $request->uri(); if ($request->cookies()->theme === 'dark') { $service->themed = true; } else { $service->themed = false; } $service->cssVer = filemtime('public/resources/stylesheets/modlist.css'); $service->cssPanelVer = filemtime('public/resources/stylesheets/panel.css'); $service->layout('html/layouts/modlist.phtml'); }); $klein->with('/typeahead', 'routes/submission.php'); $klein->with('/panel', 'routes/panel.php'); $klein->with('/api/v3', 'routes/apiv3.php'); /* * Variable to allow programmatic 404 calls */ $notfound = function ($request, $response, $service, $app) { header('HTTP/1.1 404 Not Found'); $logfile = 'data/404.json'; $logs = file_exists($logfile) ? json_decode(file_get_contents($logfile), true) : array(); $uri = $request->uri(); $logs[$uri] = isset($logs[$uri]) ? ++$logs[$uri] : 1; $encoded_data = json_encode($logs, JSON_UNESCAPED_SLASHES); file_put_contents($logfile, $encoded_data); $service->uri = ''; $service->render('html/404.html');