'); echo ('
'; print_r($weltenDateien); echo ''; foreach($weltenDateien as $datei) { $dprefix = explode('_', $datei); if(count($dprefix) == 2 && $dprefix[0] == 'level') { $dsuffix = explode('.', $dprefix[1]); if(count($dsuffix) == 2 && $dsuffix[1] == 'json') { $levelNum = intval($dsuffix[0]); if($levelNum > 200 && $levelNum < 1000) array_push($weltenAll, $levelNum); else if($levelNum > 1000) array_push($weltenUser, $levelNum); else echo ('Malformed level number ' . $levelNum . '!'); } } } $freieID = 1000 + count($weltenUser); if(file_exists("./welten/level_" . $freieID . ".json")) { if(file_exists("./welten/level_" . $freieID + 1 . ".json")) echo '{"status":"failed"}'; else { saveFile($freieID + 1); echo '{"status":"success","levelUid":' . $freieID + 1 . '}'; } } else { saveFile($freieID); echo '{"status":"success","levelUid":' . $freieID . '}'; } } // Loads a specific level by ID. (Public levels start with the id 231 and so on, user levels with 1000...?) else if($_REQUEST['tx_eoapombeargames_pi1']['action'] == 'getWorldBuilderLevel') { $levelName = "./welten/level_" . $_REQUEST['tx_eoapombeargames_pi1']['levelUid'] . ".json"; if(file_exists($levelName)) { header('Content-Type: application/json'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Content-Length: ' . filesize($levelName)); readfile($levelName); } else { http_response_code(404); echo ('404 while loading level: ' . $levelName . ''); } } // Called by the editor to save a level as JSON else if($_REQUEST['tx_eoapombeargames_pi1']['action'] == 'updateWorldBuilderLevel') { echo $levelName . ', Bytes written: ' . saveFile($_REQUEST['tx_eoapombeargames_pi1']['levelUid'] . ''); } else { echo 'Dont know how to handle:
';
print_r($_REQUEST);
echo '';
//echo('Dont know how to handle: ' . var_dump($_REQUEST));
error_log('Dont know how to handle: ' . $_REQUEST);
}
function saveFile($levelUID) {
$levelName = "./welten/level_" . $levelUID . ".json";
if(isset($_REQUEST['tx_eoapombeargames_pi1']['json'])) {
$levelResponse->json = json_decode($_REQUEST['tx_eoapombeargames_pi1']['json']);
$levelResponse->title = $levelResponse->json->meta->name;
return file_put_contents($levelName, json_encode($levelResponse));
}
}
?>