false, "msg" => $msg)); } spl_autoload_extensions(".php"); spl_autoload_register(function($class) { $full_path = getClassPath($class); if(file_exists($full_path)) include_once $full_path; else include_once getClassPath($class, false); }); include_once 'core/core.php'; include_once 'core/datetime.php'; include_once 'core/constants.php'; $config = new Configuration\Configuration(); $installation = (!$config->load()); $user = new Objects\User($config); if(isset($_GET["api"]) && is_string($_GET["api"])) { header("Content-Type: application/json"); if($installation) { $response = createError("Not installed"); } else { $apiFunction = $_GET["api"]; if(empty($apiFunction)) { header("403 Forbidden"); $response = ""; } else if(!preg_match("/[a-zA-Z]+(\/[a-zA-Z]+)*/", $apiFunction)) { header("400 Bad Request"); $response = createError("Invalid Method"); } else { $apiFunction = strtoupper($apiFunction[0]) . substr($apiFunction, 1); $apiFunction = str_replace("/", "\\", $apiFunction); $class = "\\Api\\$apiFunction"; $file = getClassPath($class); if(!file_exists($file)) { header("404 Not Found"); $response = createError("Not found"); } else if(!is_subclass_of($class, \Api\Request::class)) { header("400 Bad Request"); $response = createError("Inalid Method"); } else { $request = new $class($user, true); $success = $request->execute(); $msg = $request->getLastError(); $response = $request->getJsonResult(); } } } } else { if ($installation) { $document = new Documents\Install($user); } else { $documentName = $_GET["site"]; if(empty($documentName) || strcasecmp($documentName, "install") === 0) { $documentName = "home"; } else if(!preg_match("/[a-zA-Z]+(\/[a-zA-Z]+)*/", $documentName)) { $documentName = "Document404"; } $documentName = strtoupper($documentName[0]) . substr($documentName, 1); $documentName = str_replace("/", "\\", $documentName); $class = "\\Documents\\$documentName"; $file = getClassPath($class); if(!file_exists($file) || !is_subclass_of($class, \Elements\Document::class)) { $document = new \Documents\Document404($user); } else { $document = new $class($user); } } $response = $document->getCode(); } $user->sendCookies(); die($response); ?>