/solar27/admin.php
PHP | 655 lines | 481 code | 129 blank | 45 comment | 96 complexity | cf6b7b5efad59a3de3ab5956e2c32a98 MD5 | raw file
Possible License(s): LGPL-2.1, AGPL-3.0, BSD-3-Clause, LGPL-2.0, MIT, GPL-2.0
- <?php
- // Solar Imperium is licensed under GPL2, Check LICENSE.TXT for mode details //
- define("LANGUAGE_DOMAIN","system");
- require_once ("include/init.php");
- // check if the player is logged
- if (!isset ($_SESSION["player"])) {
- $DB->CompleteTrans();
- die(header("Location: welcome.php"));
- }
- // check if the player is admin
- if ($_SESSION["player"]["admin"] != 1) {
- $DB->CompleteTrans();
- die(T_("You need to be an admin!"));
- }
- // *********************************************************************************
- // Delete empire callback
- // *********************************************************************************
- if (isset($_GET["DELETE_EMPIRE"])) {
- // do nothing for now
- }
- // *********************************************************************************
- // Post message callback
- // *********************************************************************************
- if (isset($_GET["POSTMSG"])) {
- $message = $_POST["message"];
- $message = str_replace("<","(",$message);
- $message = str_replace(">",")",$message);
- if ($message != "") {
- $players = $DB->Execute("SELECT * FROM system_tb_players");
- while(!$players->EOF) {
- $DB->Execute("INSERT INTO system_tb_messages (player_id,date,message) VALUES(".$players->fields["id"].",".time().",'".utf8_encode(addslashes($message))."')");
- $players->MoveNext();
- }
- }
- $DB->CompleteTrans();
- die(header("Location: admin.php"));
- }
- // *********************************************************************************
- // Update game description callback
- // *********************************************************************************
- if (isset($_GET["UPDATE_DESCRIPTION"])) {
- $game_id = intval($_GET["UPDATE_DESCRIPTION"]);
- $description = "";
- if (isset($_POST["description"]))
- $description = (addslashes($_POST["description"]));
- $DB->Execute("UPDATE system_tb_games SET description='$description' WHERE id='$game_id'");
- $DB->CompleteTrans();
- die(header("Location: admin.php"));
- }
- // *********************************************************************************
- // Reset rules callback
- // *********************************************************************************
- if (isset ($_GET["RESETRULES"])) {
- $game_id = intval($_GET["RESETRULES"]);
- copy("include/game/rules_orig.php","include/game/games_rules/" . $game_id . ".php");
- $DB->CompleteTrans();
- die(header("Location: admin.php"));
- }
- // *********************************************************************************
- // Update rules callback
- // *********************************************************************************
- if (isset ($_GET["UPDATERULES"])) {
- $fd = fopen("include/game/games_rules/".intval($_GET["UPDATERULES"]).".php","w");
- $filedata = stripslashes($_POST["filedata"]);
- $filedata = str_replace("_?php","<?php",$filedata);
-
- if (strpos($filedata,"<?php") === false) {
- die(T_("Invalid rules sent."));
- } else {
- $filedata = substr($filedata,strpos($filedata,"<?php"));
- if (strpos($filedata,"?>") === false) {
- die(T_("Invalid rules sent."));
- } else {
- $filedata = substr($filedata,0,strpos($filedata,"?>")+2);
- }
- }
- fwrite($fd,stripslashes($filedata));
- fclose($fd);
- $DB->CompleteTrans();
- die(header("Location: admin.php"));
- }
- // *********************************************************************************
- // Edit rules callback
- // *********************************************************************************
- if (isset ($_GET["EDITRULES"])) {
- $game_id = intval($_GET["EDITRULES"]);
-
- $filename = "include/game/games_rules/".$game_id.".php";
- $fd = fopen($filename,"r");
- $fsize = filesize($filename);
- $filedata = "";
- if ($fsize != 0)
- $filedata = fread($fd,$fsize);
- fclose($fd);
- $TPL->assign("game_id",$game_id);
- $TPL->assign("file_content",$filedata);
- $TPL->display("page_admin_editrules.html");
- $DB->CompleteTrans();
- die();
- }
- // *********************************************************************************
- // Delete game callback
- // *********************************************************************************
- if (isset ($_GET["ADDAI"])) {
- $game_id = intval($_GET["ADDAI"]);
- $ai_level = intval($_POST["ai_level"]);
- // Pre checks
- $rs = $DB->Execute("SELECT * FROM system_tb_games WHERE id='$game_id'");
- if ($rs->EOF) trigger_error($DB->ErrorMsg());
- $game_data = $rs->fields;
- $rs = $DB->Execute("SELECT COUNT(*) FROM game".$game_id."_tb_empire");
- if ($rs->fields[0] >= $game_data["max_players"]) {
- $DB->CompleteTrans();
- die(T_("Cannot add computer component, max players reached!"));
- }
-
- $rs = $DB->Execute("SELECT * FROM game".$game_id."_tb_coordinator");
- if ($rs->EOF) {
- $DB->CompleteTrans();
- die(T_("Game not resetted yet!"));
- }
- // Create a new empire!
- $empire_rand1 = Array(
- 'Corporate','Master','Space',
- 'Solar','Ralos','Blorgz','Heavy',
- 'Hyperdrive','USR','Rogue','Death',
- 'Star','Galactic','Cyber','Peaceful',
- 'Power','Kickass','Elite','Evil'
- );
- $empire_rand2 = Array(
- 'Muirepmi','Imperium','Corporation','Associates',
- 'Industries','Robotics','Nation','Squadron',
- 'Destroyers','Hyperion','Factories','Dominion'
- );
- $emperor_rand1 = Array(
- 'Nafarious','Necro','Infamous','Illarious',
- 'Mad','Bloody','Imperial','Goth','Chief',
- 'Undead','Star','Evil','Good','Nasty',
- 'Marvellous','Lord','Solar'
- );
- $emperor_rand2 = Array(
- 'Leader','Warrrior','Vampire',
- 'PlanetBuster','Monster','JailKeeper','Jack',
- 'Cleon I','Bevatron','Lord','Gurney','Jackal',
- 'Destroyer','Master','Chief'
- );
-
- $empire_name = "";
- $emperor_name = "";
- $count = 0;
- while(true) {
- $empire_name = $empire_rand1[rand(0,count($empire_rand1)-1)];
- $empire_name .= " ".$empire_rand2[rand(0,count($empire_rand2)-1)];
- $emperor_name = $emperor_rand1[rand(0,count($emperor_rand1)-1)];
- $emperor_name .= " ".$emperor_rand2[rand(0,count($emperor_rand2)-1)];
- $rs = $DB->Execute("SELECT * FROM game".$game_id."_tb_empire WHERE emperor='".addslashes($emperor_name)."' OR name='".addslashes($empire_name)."'");
- if ($rs->EOF) break;
- if ($count++ == 1000) {
- die(T_("Fatal error while creating new empire!"));
- }
- }
- $x = 0;
- $y = 0;
- do {
- $x = -1000+(rand(0,40) * 50);
- $y = -1000+(rand(0,40) * 50);
- $rs = $DB->Execute("SELECT * FROM game".$game_id."_tb_empire WHERE (x>=".($x-50)." AND x<=".($x+50).") AND (y>=".($y-50)." AND y<=".($y+50).") AND active < 2");
- } while(!$rs->EOF);
- $default_logo = $default_logo[rand(0,count($default_logo)-1)];
- $premium = 0;
- $gender = (rand(0,1)==0?"M":"F");
- $autobio = T_("Resistance is futile!");
- // 4 insert data in dabase
- $query = "INSERT INTO game".$game_id."_tb_empire (player_id,ai_level,
- emperor,
- name,
- gender,
- logo,
- biography,
- active,
- date,
- last_turn_date,
- turns_left,
- protection_turns_left,
- credits,
- last_credits,
- population,
- food,
- x,y,premium,food_rate,ore_rate,petroleum_rate)
- VALUES(-1,".$ai_level.",
- '".$emperor_name."',
- '".$empire_name."',
- '".$gender."',
- '$default_logo',
- '".$autobio."',
- 1,
- ".time(NULL).",
- ".time(NULL).",
- ".($game_data["turns_per_day"]*4).",
- ".$game_data["protection_turns"].",
- ".CONF_START_CREDITS.",
- ".CONF_START_CREDITS.",
- ".CONF_START_POPULATION.",
- ".CONF_START_FOOD.",$x,$y,$premium,".CONF_DEFAULT_AUTOSELL_RATE.",".CONF_DEFAULT_AUTOSELL_RATE.",".CONF_DEFAULT_AUTOSELL_RATE."
- );";
- $DB->Execute($query);
- if (!$DB) trigger_error($DB->ErrorMsg());
- $id = $DB->Insert_ID();
- $query = "INSERT INTO game".$game_id."_tb_production (empire) values($id)";
- $DB->Execute($query);
- $query = "INSERT INTO game".$game_id."_tb_supply (empire, rate_soldier, rate_fighter, rate_station, rate_heavycruiser, rate_carrier, rate_covert, rate_credits) values($id,15,15,15,15,10,20,10);";
- $DB->Execute($query);
- $query = "INSERT INTO game".$game_id."_tb_planets (
- empire,
- food_planets,
- ore_planets,
- tourism_planets,
- supply_planets,
- gov_planets,
- edu_planets,
- research_planets,
- urban_planets,
- petro_planets,
- antipollu_planets)
- VALUES(
- $id,
- ".(CONF_START_FOOD_PLANETS * $ai_level).",
- ".(CONF_START_ORE_PLANETS * $ai_level).",
- ".(CONF_START_TOURISM_PLANETS * $ai_level).",
- ".(CONF_START_SUPPLY_PLANETS * $ai_level).",
- ".(CONF_START_GOV_PLANETS * $ai_level).",
- ".(CONF_START_EDU_PLANETS * $ai_level).",
- ".(CONF_START_RESEARCH_PLANETS * $ai_level).",
- ".(CONF_START_URBAN_PLANETS * $ai_level).",
- ".(CONF_START_PETRO_PLANETS * $ai_level).",
- ".(CONF_START_ANTIPOLLU_PLANETS * $ai_level)."
- );";
- $DB->Execute($query);
- $query = "INSERT INTO game".$game_id."_tb_army (empire,soldiers,fighters,stations)
- VALUES($id,".(CONF_START_SOLDIERS * $ai_level).",".(CONF_START_FIGHTERS * $ai_level).",".(CONF_START_STATIONS * $ai_level).");";
- $DB->Execute($query);
- $evt_type = CONF_EVENT_NEWEMPIRE;
- $evt_from = $id;
- $evt_params = array("empire_emperor"=>$emperor_name,"empire_name"=>$empire_name,"gender"=>$gender);
- $evt_sticky = 0;
- $evt_seen = 0;
- $evt_height = 160;
- $query = "SELECT * FROM game".$game_id."_tb_empire WHERE active=1";
- $recipients = $DB->Execute($query);
- while(!$recipients->EOF)
- {
- $query = "INSERT INTO game".$game_id."_tb_event (event_type,event_from,event_to,params,seen,sticky,date,height) ".
- "VALUES(".$evt_type.",".$evt_from.",".$recipients->fields["id"].",'".addslashes(serialize($evt_params))."',".$evt_seen.",".$evt_sticky.",".time(NULL).",".$evt_height.")";
- if (!$DB->Execute($query)) trigger_error($DB->ErrorMsg());
- $recipients->MoveNext();
- }
- // garbage collection
- $timeout_unseen = time(NULL) - CONF_UNSEEN_EVENT_TIMEOUT;
- $timeout_seen = time(NULL) - CONF_SEEN_EVENT_TIMEOUT;
- if (!$DB->Execute("DELETE FROM game".$game_id."_tb_event WHERE date < $timeout_unseen AND seen=0")) trigger_error($this->DB->ErrorMsg());
- if (!$DB->Execute("DELETE FROM game".$game_id."_tb_event WHERE date < $timeout_seen AND seen=1")) trigger_error($this->DB->ErrorMsg());
- $DB->CompleteTrans();
- die(header("Location: admin.php"));
-
-
- }
- // *********************************************************************************
- // Delete game callback
- // *********************************************************************************
- if (isset ($_GET["DELETEGAME"])) {
- $game_id = intval($_GET["DELETEGAME"]);
- $DB->Execute("DELETE FROM system_tb_games WHERE id='$game_id'");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $rs2 = $DB->Execute("SHOW TABLES LIKE 'game".$game_id."_%'");
- if (!$rs2) trigger_error($DB->ErrorMsg());
- while(!$rs2->EOF)
- {
- $DB->Execute("DROP TABLE ".$rs2->fields[0]);
- $rs2->MoveNext();
- }
- if (file_exists("include/game/games_config/" . $game_id . ".php")) unlink("include/game/games_config/" . $game_id . ".php");
- if (file_exists("include/game/games_rules/" . $game_id . ".php")) unlink("include/game/games_rules/" . $game_id . ".php");
- $DB->CompleteTrans();
- die(header("Location: admin.php"));
- }
- // *********************************************************************************
- // Reset game callback
- // *********************************************************************************
- if (isset ($_GET["RESETGAME"])) {
- $game_id = intval($_GET["RESETGAME"]);
- $players = $DB->Execute("SELECT id FROM game".$game_id."_tb_empire");
- while (!$players->EOF) {
- $DB->Execute("DELETE FROM game".$game_id."_tb_army WHERE empire='" . $players->fields["id"]."'");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_planets WHERE empire='" . $players->fields["id"]."'");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_production WHERE empire='" . $players->fields["id"]."'");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_empire WHERE id='" . $players->fields["id"]."'");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_supply WHERE empire='" . $players->fields["id"]."'");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $players->MoveNext();
- }
- $DB->Execute("DELETE FROM game".$game_id."_tb_bond");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_coalition");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_event");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_loan");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_trace");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_member");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_research_done");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_session");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_invasion");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_shoutbox");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_stats");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_treaty");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_market");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_tradeconvoy");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("DELETE FROM game".$game_id."_tb_coordinator");
- if (!$DB) trigger_error($DB->ErrorMsg());
- $DB->Execute("INSERT INTO game".$game_id."_tb_market (last_update) VALUES(0)");
- if (!$DB) trigger_error($DB->ErrorMsg());
-
- $query = "INSERT INTO game".$game_id."_tb_coordinator (last_master) VALUES('".T_("Nobody")."')";
- $DB->Execute($query);
- if (!$DB) trigger_error($DB->ErrorMsg());
-
- $query = "UPDATE game".$game_id."_tb_coordinator SET
- date=" . time(NULL) . ",game_status=0,
- lottery_cash=0,
- lottery_date=0
- ";
-
-
- $DB->Execute($query);
- if (!$DB) trigger_error($DB->ErrorMsg());
- // remove empire logos
- if (!file_exists("images/game/empires/".$game_id."/"))
- mkdir("images/game/empires/".$game_id."/");
-
-
- $dir = opendir("images/game/empires/".$game_id."/");
- while ($file = readdir($dir)) {
- if ($file[0] == ".")
- continue;
- if ($file == "new.jpg")
- continue;
- unlink("images/game/empires/".$game_id."/" . $file);
- }
- closedir($dir);
- // reset pirates
- $rs = $DB->Execute("SELECT * FROM game".$game_id."_tb_pirate");
- if (!$rs) trigger_error($DB->ErrorMsg());
- while (!$rs->EOF) {
- $pirate = $rs->fields;
- $pirate["credits"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["food"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["research"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["covertagents"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["stations"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["soldiers"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["fighters"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["lightcruisers"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["heavycruisers"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["carriers"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["food_planets"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["ore_planets"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["tourism_planets"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["supply_planets"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["gov_planets"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["edu_planets"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["urban_planets"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["research_planets"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["petro_planets"] = rand(0, CONF_PIRATE_BASEVALUE);
- $pirate["antipollu_planets"] = rand(0, CONF_PIRATE_BASEVALUE);
- $networth = 0;
- $networth += ($pirate["credits"] * CONF_NETWORTH_CREDITS);
- $planets = 0;
- $planets += $pirate["food_planets"];
- $planets += $pirate["ore_planets"];
- $planets += $pirate["tourism_planets"];
- $planets += $pirate["supply_planets"];
- $planets += $pirate["gov_planets"];
- $planets += $pirate["edu_planets"];
- $planets += $pirate["research_planets"];
- $planets += $pirate["urban_planets"];
- $planets += $pirate["petro_planets"];
- $planets += $pirate["antipollu_planets"];
- $networth += ($planets * CONF_NETWORTH_PLANETS);
- $army = 0;
- $army += $pirate["soldiers"] * CONF_NETWORTH_MILITARY_SOLDIER;
- $army += $pirate["fighters"] * CONF_NETWORTH_MILITARY_FIGHTER;
- $army += $pirate["stations"] * CONF_NETWORTH_MILITARY_STATION;
- $army += $pirate["lightcruisers"] * CONF_NETWORTH_MILITARY_LIGHTCRUISER;
- $army += $pirate["heavycruisers"] * CONF_NETWORTH_MILITARY_HEAVYCRUISER;
- $army += $pirate["carriers"] * CONF_NETWORTH_MILITARY_CARRIER;
- $army += $pirate["covertagents"] * CONF_NETWORTH_MILITARY_COVERT;
- $networth += $army;
- $pirate["networth"] = $networth;
- $DB->Execute("UPDATE game".$game_id."_tb_pirate SET soldiers=" . $pirate["soldiers"] . ",
- fighters=" . $pirate["fighters"] . ",
- lightcruisers=" . $pirate["lightcruisers"] . ",
- heavycruisers=" . $pirate["heavycruisers"] . ",
- stations=" . $pirate["stations"] . ",
- carriers=" . $pirate["carriers"] . ",
- covertagents=" . $pirate["covertagents"] . ",
- food=" . $pirate["food"] . ",
- credits=" . $pirate["credits"] . ",
- research=" . $pirate["research"] . ",
- food_planets=" . $pirate["food_planets"] . ",
- ore_planets=" . $pirate["ore_planets"] . ",
- tourism_planets=" . $pirate["tourism_planets"] . ",
- supply_planets=" . $pirate["supply_planets"] . ",
- gov_planets=" . $pirate["gov_planets"] . ",
- edu_planets=" . $pirate["edu_planets"] . ",
- research_planets=" . $pirate["research_planets"] . ",
- urban_planets=" . $pirate["urban_planets"] . ",
- petro_planets=" . $pirate["petro_planets"] . ",
- antipollu_planets=" . $pirate["antipollu_planets"] . ",
- networth=" . addslashes($pirate["networth"]) . "
- WHERE id=" . $pirate["id"]);
- if (!$DB) trigger_error($DB->ErrorMsg());
-
- $rs->MoveNext();
- }
- $DB->CompleteTrans();
- header("Location: admin.php?RESETDONE");
- die();
-
- }
- // *********************************************************************************
- // Add game callback
- // *********************************************************************************
- if (isset ($_GET["ADDGAME"])) {
- if ($_POST["game_name"] == "") { $DB->CompleteTrans(); die(T_("Game name empty!")); }
- if ($_POST["lifetime"] == "") { $DB->CompleteTrans(); die(T_("Lifetime empty!")); }
- if ($_POST["turns_per_day"] == "") { $DB->CompleteTrans(); die(T_("Turns per day empty!")); }
- if ($_POST["protection_turns"] == "") { $DB->CompleteTrans(); die(T_("Protection turns empty!")); }
- if ($_POST["maxplayers"] == "") { $DB->CompleteTrans(); die(T_("Max players empty!")); }
- if ($_POST["players_slot"] == "") { $DB->CompleteTrans(); die(T_("Players slot empty!")); }
- $premium_only = 0;
- if (isset ($_POST["premium_only"]))
- $premium_only = 1;
- if (!$DB->Execute("INSERT INTO system_tb_games (name,victory_condition,premium_only,lifetime,turns_per_day,protection_turns,max_players,players_slot) " .
- "VALUES('" . addslashes($_POST["game_name"]) . "','" . addslashes($_POST["victory_condition"]) . "',$premium_only," . addslashes($_POST["lifetime"]) . "," . addslashes($_POST["turns_per_day"]) . "," . addslashes($_POST["protection_turns"]) . "," . addslashes($_POST["maxplayers"]) . "," . addslashes($_POST["players_slot"]) . ")")) {
- trigger_error($DB->ErrorMsg());
- }
- $game_id = $DB->Insert_ID();
- $fd = fopen("include/game/config_orig.php", "r");
- $filedata = fread($fd, filesize("include/game/config_orig.php"));
- fclose($fd);
- $filedata = str_replace("{game_name}", addslashes($_POST["game_name"]), $filedata);
- $filedata = str_replace("{game_lifetime}", addslashes(($_POST["lifetime"] * 60 * 60 * 24)), $filedata);
- $filedata = str_replace("{game_bool_research}", ($_POST["victory_condition"] == "research" ? "true" : "false"), $filedata);
- $filedata = str_replace("{game_bool_premiumonly}", ($premium_only == 1 ? "true" : "false"), $filedata);
- $filedata = str_replace("{game_maxplayers}", addslashes($_POST["maxplayers"]), $filedata);
- $filedata = str_replace("{game_turnsperday}", addslashes($_POST["turns_per_day"]), $filedata);
- $filedata = str_replace("{game_maxslots}", addslashes($_POST["players_slot"]), $filedata);
- $filedata = str_replace("{game_protection_turns}", addslashes($_POST["protection_turns"]), $filedata);
- $filedata = str_replace("{game_id}", $game_id, $filedata);
- $fd = fopen("include/game/games_config/" . $game_id . ".php", "w");
- fwrite($fd, $filedata);
- fclose($fd);
- copy("include/game/rules_orig.php","include/game/games_rules/".$game_id.".php");
- $fd = fopen("include/sql_insert.txt", "r");
- $sql_data = fread($fd, filesize("include/sql_insert.txt"));
- $sql_data = str_replace("{game_id}",$game_id,$sql_data);
- fclose($fd);
- $sql_data = explode("/***/", $sql_data);
-
- for ($i = 0; $i < count($sql_data); $i++) {
- $query = $sql_data[$i];
- $query = str_replace("{prefix}",$game_id,$query);
- if (!$DB->Execute($query)) {
- $error_str = $DB->ErrorMsg()." = $query";
- if (!$DB->Execute("DELETE FROM system_tb_games WHERE id=".$game_id)) trigger_error($DB->ErrorMsg());
- if (file_exists("include/game/games_config/" . $game_id . ".php")) unlink("include/game/games_config/" . $game_id . ".php");
- if (file_exists("include/game/games_rules/" . $game_id . ".php")) unlink("include/game/games_rules/" . $game_id . ".php");
- $DB->Execute("DROP TABLE game".$game_id."_tb_*");
- trigger_error($error_str);
- }
- }
- $DB->CompleteTrans();
- die(header("Location: admin.php?"));
- }
- // *********************************************************************************
- // Display page
- // *********************************************************************************
- // populate games
- $games = array ();
- $rs = $DB->Execute("SELECT * FROM system_tb_games");
- while (!$rs->EOF) {
- $game = $rs->fields;
- $rs2 = $DB->Execute("SELECT COUNT(*) FROM game".$game["id"]."_tb_empire WHERE active=1");
- if ($rs2 == NULL) {
- // bogus database entry
- $DB->Execute("DELETE FROM system_tb_games WHERE id=".$rs->fields["id"]);
- $rs->MoveNext();
- continue;
- }
- $game["empires_count"] = $rs2->fields[0];
-
- $rs3 = $DB->Execute("SELECT date FROM game".$game["id"]."_tb_coordinator");
- if ($rs3->EOF)
- $game["time_elapsed"] = T_("Need a reset!");
- else {
- $elapsed = (time(NULL) - $rs3->fields["date"]);
- $game["time_elapsed"] = (floor($elapsed / (60 * 60 * 24)) + 1) . " ".T_("days");
- }
- $game["description"] = stripslashes($game["description"]);
- $empires = array();
- $rs4 = $DB->Execute("SELECT * FROM game".$game["id"]."_tb_empire ORDER BY networth DESC");
- $rank = 1;
- while(!$rs4->EOF) {
- $empire = $rs4->fields;
- $empire["rank"] = $rank++;
- $empire["lifespan"] = formatTime(time(NULL) - $empire["date"]);
- $empires[] = $empire;
- $rs4->MoveNext();
- }
- $game["empires"] = $empires;
- $games[] = $game;
- $rs->MoveNext();
- }
- $TPL->assign("games", $games);
- $DB->CompleteTrans();
- $TPL->display("page_admin.html");
- ?>