From 4bb4693d2eee6acf916abcd10a04e73d0f5c9ae5 Mon Sep 17 00:00:00 2001 From: Gregory PLANCHAT Date: Mon, 5 Dec 2011 18:52:05 +0100 Subject: [PATCH] Updated install script Fixed CSS issues Signed-off-by: Gregory PLANCHAT --- admin/activeplanet.php | 53 +++--- admin/add_fleet.php | 122 +++++++------ admin/add_money.php | 51 +++--- ainfo.php | 4 +- alliance.php | 171 +++++++++--------- application/code/core/Generations/Empire.php | 159 ++++++++++++++++ .../Empire}/install/mysql5/install-1.5.0.php | 77 ++++---- .../install/mysql5/uninstall-1.5.0.php | 0 .../Officers/install/mysql5/.placeholder | 0 application/code/core/Wootook.php | 22 ++- .../Core/Setup/Exception/RuntimeException.php | 7 + .../Setup/Exception/VersionStageError.php | 7 + .../Setup/Exception/VersionValueError.php | 7 + .../code/core/Wootook/Core/Setup/Updater.php | 20 +- .../Core/Setup/Updater/ScriptQueue.php | 59 +++--- .../Wootook/Core/install/mysql5/.placeholder | 0 application/code/core/Wootook/Database.php | 13 +- .../Empire/install/mysql5/.placeholder | 0 .../default/scripts/step/database.phtml | 65 +++++++ .../default/scripts/step/profile.phtml | 30 +++ .../install/default/scripts/step/system.phtml | 2 +- .../default/scripts/step/universe.phtml | 37 ++++ config.php | 82 +++++++++ install/gameplays.php | 26 +++ install/index.php | 147 +++++++++------ install/injection-galaxy.txt | 90 +++++++++ 26 files changed, 919 insertions(+), 332 deletions(-) create mode 100644 application/code/core/Generations/Empire.php rename application/code/core/{Wootook/Core => Legacies/Empire}/install/mysql5/install-1.5.0.php (94%) rename application/code/core/{Wootook/Core => Legacies/Empire}/install/mysql5/uninstall-1.5.0.php (100%) create mode 100644 application/code/core/Legacies/Officers/install/mysql5/.placeholder create mode 100644 application/code/core/Wootook/Core/Setup/Exception/RuntimeException.php create mode 100644 application/code/core/Wootook/Core/Setup/Exception/VersionStageError.php create mode 100644 application/code/core/Wootook/Core/Setup/Exception/VersionValueError.php create mode 100644 application/code/core/Wootook/Core/install/mysql5/.placeholder create mode 100644 application/code/core/Wootook/Empire/install/mysql5/.placeholder create mode 100644 application/design/install/default/scripts/step/database.phtml create mode 100644 application/design/install/default/scripts/step/profile.phtml create mode 100644 application/design/install/default/scripts/step/universe.phtml create mode 100644 install/gameplays.php create mode 100644 install/injection-galaxy.txt diff --git a/admin/activeplanet.php b/admin/activeplanet.php index e8bf1b5..5a5245a 100644 --- a/admin/activeplanet.php +++ b/admin/activeplanet.php @@ -33,34 +33,35 @@ define('INSTALL' , false); define('IN_ADMIN', true); require_once dirname(dirname(__FILE__)) .'/application/bootstrap.php'; - if (in_array($user['authlevel'], array(LEVEL_ADMIN, LEVEL_OPERATOR))) { - includeLang('admin'); +$user = Wootook_Empire_Model_User::getSingleton(); - $parse = $lang; - $parse['dpath'] = $dpath; - $parse['mf'] = $mf; +if (!in_array($user['authlevel'], array(LEVEL_ADMIN, LEVEL_OPERATOR))) { + message( $lang['sys_noalloaw'], $lang['sys_noaccess'] ); + exit(0); +} - $PageTPL = gettemplate('admin/activeplanet_body'); - $AllActivPlanet = doquery("SELECT * FROM {{table}} WHERE `last_update` >= '". (time()-15 * 60) ."' ORDER BY `id` ASC", 'planets'); - $Count = 0; +includeLang('admin'); - while ($ActivPlanet = $AllActivPlanet->fetch(PDO::FETCH_BOTH)) { - $parse['online_list'] .= ""; - $parse['online_list'] .= "
". $ActivPlanet['name'] ."
"; - $parse['online_list'] .= "
[". $ActivPlanet['galaxy'] .":". $ActivPlanet['system'] .":". $ActivPlanet['planet'] ."]
"; - $parse['online_list'] .= "
". pretty_number($ActivPlanet['points'] / 1000) ."
"; - $parse['online_list'] .= "
". pretty_time(time() - $ActivPlanet['last_update']) . "
"; - $parse['online_list'] .= ""; - $Count++; - } - $parse['online_list'] .= ""; - $parse['online_list'] .= "". $lang['adm_pl_they'] ." ". $Count ." ". $lang['adm_pl_apla'] .""; - $parse['online_list'] .= ""; +$parse = $lang; +$parse['dpath'] = $dpath; +$parse['mf'] = $mf; - $page = parsetemplate( $PageTPL , $parse ); - display( $page, $lang['adm_pl_title'], false, '', true ); - } else { - message( $lang['sys_noalloaw'], $lang['sys_noaccess'] ); - } +$PageTPL = gettemplate('admin/activeplanet_body'); +$AllActivPlanet = doquery("SELECT * FROM {{table}} WHERE `last_update` >= '". (time()-15 * 60) ."' ORDER BY `id` ASC", 'planets'); +$Count = 0; -?> \ No newline at end of file +while ($ActivPlanet = $AllActivPlanet->fetch(PDO::FETCH_BOTH)) { + $parse['online_list'] .= ""; + $parse['online_list'] .= "
". $ActivPlanet['name'] ."
"; + $parse['online_list'] .= "
[". $ActivPlanet['galaxy'] .":". $ActivPlanet['system'] .":". $ActivPlanet['planet'] ."]
"; + $parse['online_list'] .= "
". pretty_number($ActivPlanet['points'] / 1000) ."
"; + $parse['online_list'] .= "
". pretty_time(time() - $ActivPlanet['last_update']) . "
"; + $parse['online_list'] .= ""; + $Count++; +} +$parse['online_list'] .= ""; +$parse['online_list'] .= "". $lang['adm_pl_they'] ." ". $Count ." ". $lang['adm_pl_apla'] .""; +$parse['online_list'] .= ""; + +$page = parsetemplate( $PageTPL , $parse ); +display( $page, $lang['adm_pl_title'], false, '', true ); diff --git a/admin/add_fleet.php b/admin/add_fleet.php index 96d8a21..3bdb738 100644 --- a/admin/add_fleet.php +++ b/admin/add_fleet.php @@ -31,71 +31,73 @@ define('INSIDE' , true); define('INSTALL' , false); define('IN_ADMIN', true); + require_once dirname(dirname(__FILE__)) .'/application/bootstrap.php'; - if ($user['authlevel'] >= 1) { - includeLang('admin/add_fleet'); - $mode = $_GET['mode']; +$user = Wootook_Empire_Model_User::getSingleton(); - if($mode != 'add') { - $parse['ID'] = $lang['Id']; - $parse['Cle'] = $lang['cle']; - $parse['Clourd'] = $lang['clourd']; - $parse['Pt'] = $lang['pt']; - $parse['Gt'] = $lang['gt']; - $parse['Cruise'] = $lang['cruise']; - $parse['Vb'] = $lang['vb']; - $parse['Colo'] = $lang['colo']; - $parse['Rc'] = $lang['rc']; - $parse['Spy'] = $lang['spy']; - $parse['Bomb'] = $lang['bomb']; - $parse['Solar'] = $lang['solar']; - $parse['Des'] = $lang['des']; - $parse['Rip'] = $lang['rip']; - $parse['Traq'] = $lang['traq']; +if (!in_array($user['authlevel'], array(LEVEL_ADMIN, LEVEL_OPERATOR))) { + message( $lang['sys_noalloaw'], $lang['sys_noaccess'] ); + exit(0); +} - } elseif($mode == 'add') { - $id = $_POST['id']; - $cle = $_POST['cle']; - $clourd = $_POST['clourd']; - $pt = $_POST['pt']; - $gt = $_POST['gt']; - $cruise = $_POST['cruise']; - $vb = $_POST['vb']; - $colo = $_POST['colo']; - $rc = $_POST['rc']; - $spy = $_POST['spy']; - $bomb = $_POST['bomb']; - $solar = $_POST['solar']; - $des = $_POST['des']; - $rip = $_POST['rip']; - $traq = $_POST['traq']; +includeLang('admin/add_fleet'); +$mode = $_GET['mode']; - $SqlAdd = "UPDATE {{table}} SET"; - $SqlAdd .= "`light_hunter` = '".$cle."+light_hunter', "; - $SqlAdd .= "`heavy_hunter` = '".$clourd."+heavy_hunter', "; - $SqlAdd .= "`small_ship_cargo` = '".$pt."+small_ship_cargo', "; - $SqlAdd .= "`big_ship_cargo` = '".$gt."+big_ship_cargo', "; - $SqlAdd .= "`crusher` = '".$cruise."+crusher', "; - $SqlAdd .= "`battle_ship` = '".$vb."+battle_ship', "; - $SqlAdd .= "`colonizer` = '".$colo."+colonizer', "; - $SqlAdd .= "`recycler` = '".$rc."+recycler', "; - $SqlAdd .= "`spy_sonde`= '".$spy."+spy_sonde', "; - $SqlAdd .= "`bomber_ship` = '".$bomb."+bomber_ship', "; - $SqlAdd .= "`solar_satelit` = '".$solar."+solar_satelit', "; - $SqlAdd .= "`destructor` = '".$des."+destructor', "; - $SqlAdd .= "`dearth_star` = '".$rip."+dearth_star', "; - $SqlAdd .= "`battleship` = '".$traq."+battleship', "; - $SqlAdd .= " WHERE `id` = '".$id."' LIMIT 1"; - doquery($SqlAdd, "planets"); - message('Ajout OK'); - } +if($mode != 'add') { + $parse['ID'] = $lang['Id']; + $parse['Cle'] = $lang['cle']; + $parse['Clourd'] = $lang['clourd']; + $parse['Pt'] = $lang['pt']; + $parse['Gt'] = $lang['gt']; + $parse['Cruise'] = $lang['cruise']; + $parse['Vb'] = $lang['vb']; + $parse['Colo'] = $lang['colo']; + $parse['Rc'] = $lang['rc']; + $parse['Spy'] = $lang['spy']; + $parse['Bomb'] = $lang['bomb']; + $parse['Solar'] = $lang['solar']; + $parse['Des'] = $lang['des']; + $parse['Rip'] = $lang['rip']; + $parse['Traq'] = $lang['traq']; - $page = parsetemplate(gettemplate('admin/add_fleet'), $parse); - display( $page); +} else if($mode == 'add') { + $id = $_POST['id']; + $cle = $_POST['cle']; + $clourd = $_POST['clourd']; + $pt = $_POST['pt']; + $gt = $_POST['gt']; + $cruise = $_POST['cruise']; + $vb = $_POST['vb']; + $colo = $_POST['colo']; + $rc = $_POST['rc']; + $spy = $_POST['spy']; + $bomb = $_POST['bomb']; + $solar = $_POST['solar']; + $des = $_POST['des']; + $rip = $_POST['rip']; + $traq = $_POST['traq']; - } else { - message( $lang['sys_noalloaw'], $lang['sys_noaccess'] ); - } + $SqlAdd = "UPDATE {{table}} SET"; + $SqlAdd .= "`light_hunter` = '".$cle."+light_hunter', "; + $SqlAdd .= "`heavy_hunter` = '".$clourd."+heavy_hunter', "; + $SqlAdd .= "`small_ship_cargo` = '".$pt."+small_ship_cargo', "; + $SqlAdd .= "`big_ship_cargo` = '".$gt."+big_ship_cargo', "; + $SqlAdd .= "`crusher` = '".$cruise."+crusher', "; + $SqlAdd .= "`battle_ship` = '".$vb."+battle_ship', "; + $SqlAdd .= "`colonizer` = '".$colo."+colonizer', "; + $SqlAdd .= "`recycler` = '".$rc."+recycler', "; + $SqlAdd .= "`spy_sonde`= '".$spy."+spy_sonde', "; + $SqlAdd .= "`bomber_ship` = '".$bomb."+bomber_ship', "; + $SqlAdd .= "`solar_satelit` = '".$solar."+solar_satelit', "; + $SqlAdd .= "`destructor` = '".$des."+destructor', "; + $SqlAdd .= "`dearth_star` = '".$rip."+dearth_star', "; + $SqlAdd .= "`battleship` = '".$traq."+battleship', "; + $SqlAdd .= " WHERE `id` = '".$id."' LIMIT 1"; + doquery($SqlAdd, "planets"); + message('Ajout OK'); +} + +$page = parsetemplate(gettemplate('admin/add_fleet'), $parse); +display( $page); -?> \ No newline at end of file diff --git a/admin/add_money.php b/admin/add_money.php index 142acd7..41e7de2 100644 --- a/admin/add_money.php +++ b/admin/add_money.php @@ -33,35 +33,36 @@ define('INSTALL' , false); define('IN_ADMIN', true); require_once dirname(dirname(__FILE__)) .'/application/bootstrap.php'; - if (in_array($user['authlevel'], array(LEVEL_ADMIN, LEVEL_OPERATOR))) { - includeLang('admin'); +$user = Wootook_Empire_Model_User::getSingleton(); - $mode = $_POST['mode']; +if (!in_array($user['authlevel'], array(LEVEL_ADMIN, LEVEL_OPERATOR))) { + message( $lang['sys_noalloaw'], $lang['sys_noaccess'] ); + exit(0); +} - $PageTpl = gettemplate("admin/add_money"); - $parse = $lang; +includeLang('admin'); - if ($mode == 'addit') { - $id = $_POST['id']; - $metal = $_POST['metal']; - $cristal = $_POST['cristal']; - $deut = $_POST['deut']; +$mode = $_POST['mode']; - $QryUpdatePlanet = "UPDATE {{table}} SET "; - $QryUpdatePlanet .= "`metal` = `metal` + '". $metal ."', "; - $QryUpdatePlanet .= "`crystal` = `crystal` + '". $cristal ."', "; - $QryUpdatePlanet .= "`deuterium` = `deuterium` + '". $deut ."' "; - $QryUpdatePlanet .= "WHERE "; - $QryUpdatePlanet .= "`id` = '". $id ."' "; - doquery( $QryUpdatePlanet, "planets"); +$PageTpl = gettemplate("admin/add_money"); +$parse = $lang; - AdminMessage ( $lang['adm_am_done'], $lang['adm_am_ttle'] ); - } - $Page = parsetemplate($PageTpl, $parse); +if ($mode == 'addit') { + $id = $_POST['id']; + $metal = $_POST['metal']; + $cristal = $_POST['cristal']; + $deut = $_POST['deut']; - display ($Page, $lang['adm_am_ttle'], false, '', true); - } else { - AdminMessage ( $lang['sys_noalloaw'], $lang['sys_noaccess'] ); - } + $QryUpdatePlanet = "UPDATE {{table}} SET "; + $QryUpdatePlanet .= "`metal` = `metal` + '". $metal ."', "; + $QryUpdatePlanet .= "`crystal` = `crystal` + '". $cristal ."', "; + $QryUpdatePlanet .= "`deuterium` = `deuterium` + '". $deut ."' "; + $QryUpdatePlanet .= "WHERE "; + $QryUpdatePlanet .= "`id` = '". $id ."' "; + doquery( $QryUpdatePlanet, "planets"); -?> \ No newline at end of file + AdminMessage ( $lang['adm_am_done'], $lang['adm_am_ttle'] ); +} +$Page = parsetemplate($PageTpl, $parse); + +display ($Page, $lang['adm_am_ttle'], false, '', true); diff --git a/ainfo.php b/ainfo.php index 4f12f4f..59081a9 100644 --- a/ainfo.php +++ b/ainfo.php @@ -37,11 +37,11 @@ $dpath = (!$userrow["dpath"]) ? DEFAULT_SKINPATH : $userrow["dpath"]; if(!is_numeric($_GET["a"]) || !$_GET["a"] ){ message("Ungültige Allianz-ID","Fehler");} -$allyrow = doquery("SELECT ally_name,ally_tag,ally_description,ally_web,ally_image FROM {{table}} WHERE id=".$_GET["a"],"alliance",true); +$allyrow = doquery("SELECT ally_name,ally_tag,ally_description,ally_web,ally_image FROM {{table}} WHERE id=".intval($_GET["a"]),"alliance",true); if(!$allyrow){ message("Alliance non trouvée","Erreur");} -$count = doquery("SELECT COUNT(DISTINCT(id)) FROM {{table}} WHERE ally_id=".$_GET["a"].";","users",true); +$count = doquery("SELECT COUNT(DISTINCT(id)) FROM {{table}} WHERE ally_id=".intval($_GET["a"]).";","users",true); $ally_member_scount = $count[0]; $page .=""; diff --git a/alliance.php b/alliance.php index 8229453..7e00373 100644 --- a/alliance.php +++ b/alliance.php @@ -41,30 +41,31 @@ echo 'parent.location="../";'; echo ''; } -$mode = isset($_GET['mode']) ? $_GET['mode'] : null; -$yes = isset($_GET['yes']) ? $_GET['yes'] : null; -$edit = isset($_GET['edit']) ? $_GET['edit'] : null; -$allyid = isset($_GET['allyid']) ? intval($_GET['allyid']) : null; -$kick = isset($_GET['kick']) ? $_GET['kick'] : null; -$show = isset($_GET['show']) ? intval($_GET['show']) : null; -$sort = isset($_GET['sort']) ? intval($_GET['sort']) : null; -$sendmail = isset($_GET['sendmail']) ? intval($_GET['sendmail']) : null; -$rank = isset($_GET['rank']) ? intval($_GET['rank']) : null; -$t = isset($_GET['t']) ? $_GET['t'] : null; -$a = isset($_GET['a']) ? intval($_GET['a']) : null; -$tag = isset($_GET['tag']) ? $db->quote($_GET['tag']) : null; -$page = isset($page) ? $page : null; -$d = isset($_GET['d']) ? $_GET['d'] : null; -$id = isset($_GET['id']) ? $_GET['id'] : null; +$request = Wootook::getRequest(); -$_POST['id'] = isset($_POST['id']) ? $_POST['id'] : null; -$_POST['t'] = isset($_POST['t']) ? $_POST['t'] : null; -$_POST['options'] = isset($_POST['options']) ? $_POST['options'] : null; -$_POST['action'] = isset($_POST['action']) ? $_POST['action'] : null; +$mode = $request->getQuery('mode'); +$yes = $request->getQuery('yes'); +$edit = $request->getQuery('edit'); +$allyid = intval($request->getQuery('allyid')); +$kick = $request->getQuery('kick'); +$show = intval($request->getQuery('show')); +$sort = intval($request->getQuery('sort')); +$sendmail = intval($request->getQuery('sendmail')); +$rank = intval($request->getQuery('rank')); +$t = $request->getQuery('t'); +$allianceId = intval($request->getQuery('a')); +$tag = $request->getQuery('tag'); +$page = $request->getQuery('page'); +$d = $request->getQuery('d'); +$id = $request->getQuery('id'); + +$allianceIds = $request->getPost('id'); +$actionType = $request->getPost('t'); +$options = $request->getPost('options'); +$action = $request->getPost('action'); includeLang('alliance'); - /** *Alliance information display. */ @@ -73,9 +74,9 @@ if ($mode == 'ainfo') { $lang['Alliance_information'] = "Information Alliance"; if ($tag) { - $allyrow = doquery("SELECT * FROM {{table}} WHERE ally_tag={$tag}", "alliance", true); - } elseif (is_numeric($a) && $a != 0) { - $allyrow = doquery("SELECT * FROM {{table}} WHERE id='{$a}'", "alliance", true); + $allyrow = doquery("SELECT * FROM {{table}} WHERE ally_tag={$db->quote($tag)}", "alliance", true); + } elseif (is_numeric($allianceId) && $allianceId != 0) { + $allyrow = doquery("SELECT * FROM {{table}} WHERE id='{$allianceId}'", "alliance", true); } else { message("Cette alliance n'existe pas !", "Information Alliance (1)"); } @@ -138,17 +139,17 @@ if ($user->getData('ally_id') == 0) { /* * Creation of the alliance */ - if ($yes == 1 && isset($_POST)) { + if ($yes == 1 && isset($request->isPost())) { - if (empty($_POST['atag'])) { + if ($request->getPost('atag') !== null) { message($lang['have_not_tag'], $lang['make_alliance']); } - if (empty($_POST['aname'])) { + if ($request->getPost('aname') !== null) { message($lang['have_not_name'], $lang['make_alliance']); } - $alliance_name = $db->quote($_POST['aname']); - $alliance_tag = $db->quote($_POST['atag']); + $alliance_name = $db->quote($request->getPost('aname')); + $alliance_tag = $db->quote($request->getPost('atag')); $tagquery = doquery("SELECT * FROM {{table}} WHERE ally_tag=" .$alliance_tag. ";", 'alliance', true); @@ -156,7 +157,7 @@ if ($user->getData('ally_id') == 0) { message(str_replace('%s', $alliance_tag, $lang['always_exist']), $lang['make_alliance']); } $ranks = ''; - $allianz_raenge[] = array('name' => 'Novice', + $allianz_raenge[] = array('name' => 'Novice', 'mails' => 0, 'delete' => 0, 'kick' => 0, @@ -175,7 +176,7 @@ if ($user->getData('ally_id') == 0) { `ally_tag`=" . $alliance_tag . " , `ally_owner`='" .$user->getId(). "', `ally_owner_range`='Leader', - `ally_ranks`='" . $ranks . "', + `ally_ranks`='" . $ranks . "', `ally_members`='1', `ally_register_time`=" . time() , "alliance"); @@ -200,11 +201,11 @@ if ($user->getData('ally_id') == 0) { if ($mode == 'search' && $user->getData('ally_request') == 0) { $parse = $lang; - $search_text = isset($_POST['searchtext']) ? $_POST['searchtext'] : null; + $search_text = $request->getPost('searchtext'); $lang['searchtext'] = $search_text; $page = parsetemplate(gettemplate('alliance_searchform'), $lang); - if (isset($_POST['searchtext'])) { + if ($request->getPost('searchtext') !== null) { $stmt = $db->prepare("SELECT * FROM {$db->getTable('alliance')} WHERE ally_name LIKE :search_field OR ally_tag LIKE :search_field LIMIT 30"); $stmt->execute(array(':search_field' => '%' .$search_text. '%')); if ($stmt->rowCount() != 0) { @@ -244,8 +245,8 @@ if ($user->getData('ally_id') == 0) { extract($allyrow); - if (isset($_POST['further']) && $_POST['further'] == $lang['Send']) { - doquery("UPDATE {{table}} SET `ally_request`='" . $allyid . "', ally_request_text=" . $db->quote($_POST['text']) . ", ally_register_time='" . time() . "' WHERE `id`='" . $user->getId(). "'", "users"); + if ($request->getPost('further') !== null && $request->getPost('further') == $lang['Send']) { + doquery("UPDATE {{table}} SET `ally_request`='" . $allyid . "', ally_request_text=" . $db->quote($request->getPost('text')) . ", ally_register_time='" . time() . "' WHERE `id`='" . $user->getId(). "'", "users"); message($lang['apply_registered'], $lang['your_apply']); } else { $text_apply = ($ally_request) ? $ally_request : $lang['There_is_no_a_text_apply']; @@ -269,7 +270,7 @@ if ($user->getData('ally_id') == 0) { $allyquery = doquery("SELECT ally_tag FROM {{table}} WHERE id='" . $user->getData('ally_request') . "' ORDER BY `id`", "alliance", true); extract($allyquery); - if (isset($_POST['bcancel'])) { + if ($request->getPost('bcancel') !== null) { doquery("UPDATE {{table}} SET `ally_request`=0 WHERE `id`=" . $user->getId('id'), "users"); $lang['request_text'] = str_replace('%s', $ally_tag, $lang['Canceled_a_request_text']); @@ -394,9 +395,9 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { message($lang['Denied_access'], $lang['Members_list']); } // Order of displaying the different users - $sort2 = isset($_GET['sort2']) ? intval($_GET['sort2']) : null; + $sort2 = intval($request->getQuery('sort2')); if ($sort2) { - $sort1 = isset($_GET['sort1']) ? intval($_GET['sort1']) : null; + $sort1 = intval($request->getQuery('sort1')); switch($sort1){ case 1: $sort = " ORDER BY `username`"; @@ -506,9 +507,9 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { } if ($sendmail == 1) { - if (isset($_POST['r']) && is_numeric($_POST['r'])){ - $group_rank = intval($_POST['r']); - $message_text = $db->quote($_POST['text']); + if ($request->getPost('r') !== null && is_numeric($request->getPost('r'))){ + $group_rank = intval($request->getPost('r')); + $message_text = $db->quote($request->getPost('text')); if ($group_rang == 0) { $sq = doquery("SELECT id,username FROM {{table}} WHERE ally_id='{$user['ally_id']}'", "users"); } else { @@ -558,8 +559,8 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { if ($ally['ally_owner'] != $user->getId() && !$user_can_edit_rights) { message($lang['Denied_access'], $lang['Members_list']); - } elseif (!empty($_POST['newrangname'])) { - $name = strip_tags($_POST['newrangname']); + } else if ($request->getPost('newrangname') != '') { + $name = strip_tags($request->getPost('newrangname')); $allianz_raenge[] = array('name' => $name, 'mails' => 0, @@ -581,63 +582,63 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { header("Location: " . $goto); exit(); - } elseif ($_POST['id'] != '' && is_array($_POST['id'])) { + } elseif (is_array($allianceIds) && !empty($allianceIds)) { $ally_ranks_new = array(); - foreach ($_POST['id'] as $id) { + foreach ($allianceIds as $id) { $name = $allianz_raenge[$id]['name']; $ally_ranks_new[$id]['name'] = $name; - if (isset($_POST['u' . $id . 'r0'])) { + if ($request->getPost('u' . $id . 'r0') !== null) { $ally_ranks_new[$id]['delete'] = 1; } else { $ally_ranks_new[$id]['delete'] = 0; } - if (isset($_POST['u' . $id . 'r1']) && $ally['ally_owner'] == $user->getId()) { + if ($request->getPost('u' . $id . 'r1') !== null && $ally['ally_owner'] == $user->getId()) { $ally_ranks_new[$id]['kick'] = 1; } else { $ally_ranks_new[$id]['kick'] = 0; } - if (isset($_POST['u' . $id . 'r2'])) { + if ($request->getPost('u' . $id . 'r2') !== null) { $ally_ranks_new[$id]['bewerbungen'] = 1; } else { $ally_ranks_new[$id]['bewerbungen'] = 0; } - if (isset($_POST['u' . $id . 'r3'])) { + if ($request->getPost('u' . $id . 'r3') !== null) { $ally_ranks_new[$id]['memberlist'] = 1; } else { $ally_ranks_new[$id]['memberlist'] = 0; } - if (isset($_POST['u' . $id . 'r4'])) { + if ($request->getPost('u' . $id . 'r4') !== null) { $ally_ranks_new[$id]['bewerbungenbearbeiten'] = 1; } else { $ally_ranks_new[$id]['bewerbungenbearbeiten'] = 0; } - if (isset($_POST['u' . $id . 'r5'])) { + if ($request->getPost('u' . $id . 'r5') !== null) { $ally_ranks_new[$id]['administrieren'] = 1; } else { $ally_ranks_new[$id]['administrieren'] = 0; } - if (isset($_POST['u' . $id . 'r6'])) { + if ($request->getPost('u' . $id . 'r6') !== null) { $ally_ranks_new[$id]['onlinestatus'] = 1; } else { $ally_ranks_new[$id]['onlinestatus'] = 0; } - if (isset($_POST['u' . $id . 'r7'])) { + if ($request->getPost('u' . $id . 'r7') !== null) { $ally_ranks_new[$id]['mails'] = 1; } else { $ally_ranks_new[$id]['mails'] = 0; } - if (isset($_POST['u' . $id . 'r8'])) { + if ($request->getPost('u' . $id . 'r8') !== null) { $ally_ranks_new[$id]['rechtehand'] = 1; } else { $ally_ranks_new[$id]['rechtehand'] = 0; @@ -719,24 +720,18 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { if ($t != 1 && $t != 2 && $t != 3) { $t = 1; } - if (!get_magic_quotes_gpc()) { - $_POST['owner_range'] = isset($_POST['owner_range']) ? stripslashes($_POST['owner_range']) : null; - $_POST['web'] = isset($_POST['web']) ? stripslashes($_POST['web']) : null; - $_POST['image'] = isset($_POST['image']) ? stripslashes($_POST['image']) : null; - $_POST['text'] = isset($_POST['text']) ? stripslashes($_POST['text']) : null; - } - if ($_POST['options']) { - $ally['ally_owner_range'] = htmlspecialchars(strip_tags($_POST['owner_range'])); + if ($options) { + $ally['ally_owner_range'] = htmlspecialchars(strip_tags($request->getPost('owner_range'))); - $ally['ally_web'] = htmlspecialchars(strip_tags($_POST['web'])); + $ally['ally_web'] = htmlspecialchars(strip_tags($request->getPost('web'))); - $ally['ally_image'] = htmlspecialchars(strip_tags($_POST['image'])); + $ally['ally_image'] = htmlspecialchars(strip_tags($request->getPost('image'))); - $ally['ally_request_notallow'] = intval($_POST['request_notallow']); + $ally['ally_request_notallow'] = intval($request->getPost('request_notallow')); if ($ally['ally_request_notallow'] != 0 && $ally['ally_request_notallow'] != 1) { - message("Aller � \"Candidature\" et sur une option dans le formulaire!", "Erreur"); + message("Aller � \"Candidature\" et sur une option dans le formulaire!", "Erreur"); exit; } @@ -746,20 +741,20 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { `ally_web`={$db->quote($ally['ally_web'])}, `ally_request_notallow`='{$ally['ally_request_notallow']}' WHERE `id`='{$ally['id']}'", "alliance"); - } elseif ($_POST['t']) { + } elseif ($actionType) { if ($t == 3) { - $ally['ally_request'] = strip_tags($_POST['text']); + $ally['ally_request'] = strip_tags($request->getPost('text')); doquery("UPDATE {{table}} SET `ally_request`={$db->quote($ally['ally_request'])} WHERE `id`='{$ally['id']}'", "alliance"); } elseif ($t == 2) { - $ally['ally_text'] = strip_tags($_POST['text']); + $ally['ally_text'] = strip_tags($request->getPost('text')); doquery("UPDATE {{table}} SET `ally_text`={$db->quote($ally['ally_text'])} WHERE `id`='{$ally['id']}'", "alliance"); } else { - $ally['ally_description'] = strip_tags($_POST['text']); + $ally['ally_description'] = strip_tags($request->getPost('text')); doquery("UPDATE {{table}} SET `ally_description`=" . $db->quote($ally['ally_description']) . " @@ -806,8 +801,8 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { } if ($mode == 'admin' && $edit == 'give') { - if ($_POST["id"]) { - doquery("update {{table}} set `ally_owner`=".$db->quote($_POST["id"])." where `id`='".$user['ally_id']."'",'alliance'); + if ($request->getPost('id')) { + doquery("update {{table}} set `ally_owner`=".$db->quote($request->getPost('id'))." where `id`='".$user['ally_id']."'",'alliance'); } else { $selection=doquery("SELECT * FROM {{table}} where ally_id='".$user['ally_id']."'",'users'); $select=''; @@ -846,12 +841,12 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { if ($u['ally_id'] == $ally['id'] && $u['id'] != $ally['ally_owner']) { doquery("UPDATE {{table}} SET `ally_id`='0', `ally_name`='', `ally_rank_id` = '0' WHERE `id`='{$u['id']}'", 'users'); } - } elseif (isset($_POST['newrang'])) { - $newrank = isset($_POST['newrang']) ? intval($_POST['newrang']) : null; - $q = doquery("SELECT * FROM {{table}} WHERE id='{intval($id}' LIMIT 1", 'users', true); + } else if ($request->getPost('newrang') !== null) { + $newrank = $request->getPost('newrang'); + $selectedUser = Wootook_Empire_Model_User::factory($id); - if (isset($ally_ranks[$newrank]) && $q['id'] != $ally['ally_owner']) { - doquery("UPDATE {{table}} SET `ally_rank_id`=" . $newrank . " WHERE `id`='" . intval($id) . "'", 'users'); + if ($newrank !== null && isset($ally_ranks[$newrank]) && $selectedUser->getId() != $ally['ally_owner']) { + $selectedUser->setData('ally_rank_id', $newrank)->save(); } } @@ -859,9 +854,9 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { $f_template = gettemplate('alliance_admin_members_function'); // Order of displaying the different users - $sort2 = isset($_GET['sort2']) ? intval($_GET['sort2']) : null; + $sort2 = intval($request->getQuery('sort2')); if ($sort2) { - $sort1 = isset($_GET['sort1']) ? intval($_GET['sort1']) : null; + $sort1 = intval($request->getQuery('sort1')); switch($sort1){ case 1: $sort = " ORDER BY `username`"; @@ -997,9 +992,7 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { message($lang['Denied_access'], $lang['Check_the_requests']); } - if ($_POST['action'] == "Accepter") { - $_POST['text'] = strip_tags($_POST['text']); - + if ($action == "Accepter") { $u = doquery("SELECT * FROM {{table}} WHERE id=$show", 'users', true); // add points from the user who join the alliance doquery("UPDATE {{table}} SET @@ -1015,7 +1008,7 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { mnl_alliance=mnl_alliance+1 WHERE id='{$show}'", 'users'); - $message = "Bonjour,
L'Alliance {$ally['ally_name']} a accepté votre candidature.
Charte:
{$_POST['text']}"; + $message = "Bonjour,
L'Alliance {$ally['ally_name']} a accepté votre candidature.
Charte:
{$request->getPost('text')}"; // Send a message to the new member of the alliance doquery("INSERT INTO {{table}} SET `message_owner`=" .$db->quote($show).", @@ -1029,12 +1022,10 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { header('Location: alliance.php?mode=admin&edit=requests'); die(); - } elseif ($_POST['action'] == "Refuser" && $_POST['action'] != '') { - $_POST['text'] = strip_tags($_POST['text']); - + } elseif ($action == "Refuser" && $action != '') { doquery("UPDATE {{table}} SET ally_request_text='',ally_request='0',ally_id='0',new_message=new_message+1, mnl_alliance=mnl_alliance+1 WHERE id={$db->quote($show)}", 'users'); - $message = "Bonjour,
L'Alliance {$ally['ally_name']} a refusé votre candidature.
Raison:
{$_POST['text']}"; + $message = "Bonjour,
L'Alliance {$ally['ally_name']} a refusé votre candidature.
Raison:
{$request->getPost('text')}"; // Send a polite message to the player that he is too noobish for that alliance. doquery("INSERT INTO {{table}} SET `message_owner`=" .$db->quote($show).", @@ -1102,10 +1093,10 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { message($lang['Denied_access'], $lang['Members_list']); } - if (isset($_POST['newname'])) { + if ($request->getPost('newname') !== null) { // Y a le nouveau Nom // New name so lets update all - $ally['ally_name'] = strip_tags($_POST['newname']); + $ally['ally_name'] = strip_tags($request->getPost('newname')); doquery("UPDATE {{table}} SET `ally_name` = ". $db->quote($ally['ally_name']) ." WHERE `id` = '". $user->getData('ally_id') ."';", 'alliance'); doquery("UPDATE {{table}} SET `ally_name` = ". $db->quote($ally['ally_name']) ." WHERE `ally_id` = '". $ally['id'] ."';", 'users'); } @@ -1130,10 +1121,10 @@ elseif ($user->getData('ally_id') != 0 && $user->getData('ally_request') == 0) { message($lang['Denied_access'], $lang['Members_list']); } - if (isset($_POST['newtag'])) { + if ($request->getPost('newtag') !== null) { // Y a le nouveau TAG // new TAG, lets update the table - $ally['ally_tag'] = strip_tags($_POST['newtag']); + $ally['ally_tag'] = strip_tags($request->getPost('newtag')); doquery("UPDATE {{table}} SET `ally_tag` = ". $db->quote($ally['ally_tag']) ." WHERE `id` = '". $user->getData('ally_id') ."';", 'alliance'); } diff --git a/application/code/core/Generations/Empire.php b/application/code/core/Generations/Empire.php new file mode 100644 index 0000000..9b70a49 --- /dev/null +++ b/application/code/core/Generations/Empire.php @@ -0,0 +1,159 @@ + + * All rights reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + * --> NOTICE <-- + * This file is part of the core development branch, changing its contents will + * make you unable to use the automatic updates manager. Please refer to the + * documentation for further information about customizing Wootook. + * + */ + +/** + * + * Enter description here ... + * @author Greg + * + */ + +class Generations_Empire +{ + const TYPE_BUILDING = 'building'; + const TYPE_RESEARCH = 'technology'; + const TYPE_SHIP = 'fleet'; + const TYPE_DEFENSE = 'defense'; + const TYPE_SPECIAL = 'special'; + const TYPE_PRODUCTION = 'prodution'; + const TYPE_FLEET_MISSION = 'mission'; + + const RESOURCE_GOLD = 'gold'; + const RESOURCE_TITANIUM = 'titanium'; + const RESOURCE_ZIRCONIUM = 'zirconium'; + const RESOURCE_TRITIUM = 'tritium'; + const RESOURCE_POPULATION = 'population'; + const RESOURCE_ENERGY = 'energy'; + + const RESOURCE_MULTIPLIER = 'multiplier'; + const RESOURCE_CLASS = 'class'; + const BASE_BUILDING_TIME = 'base_time'; + + const SHIPS_CONSUMPTION_PRIMARY = 'primary_consumption'; + const SHIPS_CELERITY_PRIMARY = 'primary_speed'; + const SHIPS_CONSUMPTION_SECONDARY = 'secondary_consumption'; + const SHIPS_CELERITY_SECONDARY = 'secondary_speed'; + const SHIPS_CAPACITY_PRIMARY = 'primary_capacity'; + const SHIPS_CAPACITY_SECONDARY = 'secondary_capacity'; + + const ID_BUILDING_GOLD_MINE = 1; + const ID_BUILDING_GERMANUIM_MINE = 2; + const ID_BUILDING_DEUTERIUM_SYNTHETISER = 3; + const ID_BUILDING_SOLAR_PLANT = 4; + const ID_BUILDING_FUSION_REACTOR = 12; + const ID_BUILDING_ROBOTIC_FACTORY = 14; + const ID_BUILDING_NANITE_FACTORY = 15; + const ID_BUILDING_SHIPYARD = 21; + const ID_BUILDING_METAL_STORAGE = 22; + const ID_BUILDING_CRISTAL_STORAGE = 23; + const ID_BUILDING_DEUTERIUM_TANK = 24; + const ID_BUILDING_RESEARCH_LAB = 31; + const ID_BUILDING_TERRAFORMER = 33; + const ID_BUILDING_ALLIANCE_DEPOT = 34; + const ID_BUILDING_LUNAR_BASE = 41; + const ID_BUILDING_SENSOR_PHALANX = 42; + const ID_BUILDING_JUMP_GATE = 43; + const ID_BUILDING_MISSILE_SILO = 44; + + const ID_RESEARCH_ESPIONAGE_TECHNOLOGY = 106; + const ID_RESEARCH_COMPUTER_TECHNOLOGY = 108; + const ID_RESEARCH_WEAPON_TECHNOLOGY = 109; + const ID_RESEARCH_SHIELDING_TECHNOLOGY = 110; + const ID_RESEARCH_ARMOUR_TECHNOLOGY = 111; + const ID_RESEARCH_ENERGY_TECHNOLOGY = 113; + const ID_RESEARCH_HYPERSPACE_TECHNOLOGY = 114; + const ID_RESEARCH_COMBUSTION_DRIVE = 115; + const ID_RESEARCH_IMPULSE_DRIVE = 117; + const ID_RESEARCH_HYPERSPACE_DRIVE = 118; + const ID_RESEARCH_LASER_TECHNOLOGY = 120; + const ID_RESEARCH_ION_TECHNOLOGY = 121; + const ID_RESEARCH_PLASMA_TECHNOLOGY = 122; + const ID_RESEARCH_INTERGALACTIC_RESEARCH_NETWORK = 123; + const ID_RESEARCH_EXPEDITION_TECHNOLOGY = 124; + const ID_RESEARCH_ASTROPHYSICS = 124; + const ID_RESEARCH_GRAVITON_TECHNOLOGY = 199; + + const ID_SHIP_LIGHT_TRANSPORT = 202; + const ID_SHIP_LARGE_TRANSPORT = 203; + const ID_SHIP_LIGHT_FIGHTER = 204; + const ID_SHIP_HEAVY_FIGHTER = 205; + const ID_SHIP_CRUISER = 206; + const ID_SHIP_BATTLESHIP = 207; + const ID_SHIP_COLONY_SHIP = 208; + const ID_SHIP_RECYCLER = 209; + const ID_SHIP_SPY_DRONE = 210; + const ID_SHIP_BOMBER = 211; + const ID_SHIP_SOLAR_SATELLITE = 212; + const ID_SHIP_DESTRUCTOR = 213; + const ID_SHIP_DEATH_STAR = 214; + const ID_SHIP_BATTLECRUISER = 215; + const ID_SHIP_SUPERNOVA = 216; + + const ID_DEFENSE_ROCKET_LAUNCHER = 401; + const ID_DEFENSE_LIGHT_LASER = 402; + const ID_DEFENSE_HEAVY_LASER = 403; + const ID_DEFENSE_ION_CANNON = 404; + const ID_DEFENSE_GAUSS_CANNON = 405; + const ID_DEFENSE_PLASMA_TURRET = 406; + const ID_DEFENSE_SMALL_SHIELD_DOME = 407; + const ID_DEFENSE_LARGE_SHIELD_DOME = 408; + + const ID_SPECIAL_ANTIBALLISTIC_MISSILE = 502; + const ID_SPECIAL_INTERPLANETARY_MISSILE = 503; + + const ID_COMBAT_SHIELDS = 'shield'; + const ID_COMBAT_FIREPOWER = 'attack'; + const ID_COMBAT_RAPID_FIRE = 'rapidfire'; + + const ID_MISSION_ATTACK = 1; + const ID_MISSION_GROUP_ATTACK = 2; + const ID_MISSION_TRANSPORT = 3; + const ID_MISSION_STATION = 4; + const ID_MISSION_STATION_ALLY = 5; + const ID_MISSION_SPY = 6; + const ID_MISSION_SETTLE_COLONY = 7; + const ID_MISSION_RECYCLE = 8; + const ID_MISSION_DESTROY = 9; + const ID_MISSION_MISSILES = 10; + const ID_MISSION_BLOCUS = 11; + const ID_MISSION_BLOCUS = 11; + const ID_MISSION_EXPEDITION = 15; + + public static function getFieldName($id) + { + $fieldsAlias = Wootook_Empire_Model_Game_FieldsAlias::getSingleton(); + + if (!isset($fieldsAlias[$id])) { + return null; + } + + return $fieldsAlias[$id]; + } +} \ No newline at end of file diff --git a/application/code/core/Wootook/Core/install/mysql5/install-1.5.0.php b/application/code/core/Legacies/Empire/install/mysql5/install-1.5.0.php similarity index 94% rename from application/code/core/Wootook/Core/install/mysql5/install-1.5.0.php rename to application/code/core/Legacies/Empire/install/mysql5/install-1.5.0.php index ba9fc80..f64ed52 100644 --- a/application/code/core/Wootook/Core/install/mysql5/install-1.5.0.php +++ b/application/code/core/Legacies/Empire/install/mysql5/install-1.5.0.php @@ -31,7 +31,7 @@ $this->setSetupConnection('core_setup'); $sql = <<getTableName('legacies/aks')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('aks')} ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NULL, `teilnehmer` TEXT NULL, @@ -48,7 +48,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/alliance')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('alliance')} ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `ally_name` VARCHAR(32) NOT NULL, `ally_tag` VARCHAR(8) NOT NULL, @@ -71,7 +71,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/annonce')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('annonce')} ( `id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, `user` TEXT NOT NULL, `galaxie` TINYINT UNSIGNED NOT NULL, @@ -89,7 +89,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/banned')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('banned')} ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `who` BIGINT UNSIGNED NOT NULL, `theme` TEXT NOT NULL, @@ -105,7 +105,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/buddy')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('buddy')} ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `sender` BIGINT UNSIGNED NOT NULL, `owner` BIGINT UNSIGNED NOT NULL, @@ -118,7 +118,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/chat')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('chat')} ( `messageid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `user` VARCHAR(255) NOT NULL, `message` TEXT NOT NULL, @@ -130,7 +130,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/config')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('config')} ( `config_name` VARCHAR(64) NOT NULL, `config_value` TEXT NOT NULL, UNIQUE KEY (`config_name`) @@ -140,32 +140,40 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/config')} (`config_name`, `config_value`) VALUES +INSERT IGNORE INTO {$this->getTableName('config')} (`config_name`, `config_value`) VALUES + -- ('game/1/resource/income/base/metal', '20'), + -- ('game/1/resource/income/base/cristal', '10'), + -- ('game/1/resource/income/base/deuterium', '0'), + -- ('game/1/resource/income/base/energy', '0'), + -- ('game/1/resource/multiplier', '1000'), + + -- ('game/1/speed/general', '2500'), + -- ('game/1/speed/fleet', '2500'), + ('game_speed', '2500'), ('fleet_speed', '2500'), ('resource_multiplier', '1000'), - ('Fleet_Cdr', '30'), - ('Defs_Cdr', '30'), - ('initial_fields', '5000'), - ('COOKIE_NAME', 'xnova-legacies'), - ('game_name', 'Wootook:Legacies'), - ('game_disable', '1'), - ('close_reason', 'Le jeu est clos pour le moment!'), + ('metal_basic_income', '20'), ('cristal_basic_income', '10'), ('deuterium_basic_income', '0'), ('energy_basic_income', '0'), + + ('Fleet_Cdr', '30'), + ('Defs_Cdr', '30'), + ('initial_fields', '5000'), + ('COOKIE_NAME', 'wootook'), + ('game_name', 'Wootook'), + ('game_disable', '1'), + ('close_reason', 'Le jeu est clos pour le moment!'), ('BuildLabWhileRun', '0'), - ('LastSettedGalaxyPos', '1'), - ('LastSettedSystemPos', '1'), - ('LastSettedPlanetPos', '1'), ('urlaubs_modus_erz', '1'), ('noobprotection', '1'), ('noobprotectiontime', '5000'), ('noobprotectionmulti', '5'), ('forum_url', 'http://board.xnova-ng.org/'), ('OverviewNewsFrame', '1'), - ('OverviewNewsTEXT', 'Bienvenue sur le nouveau serveur Wootook Legacies'), + ('OverviewNewsTEXT', 'Bienvenue sur le nouveau serveur Wootook'), ('OverviewExternChat', '0'), ('OverviewExternChatCmd', ''), ('OverviewBanner', '0'), @@ -182,18 +190,17 @@ INSERT INTO {$this->getTableName('legacies/config')} (`config_name`, `config_val ('enable_marchand', '1'), ('enable_notes', '1'), ('bot_name', 'XNoviana Reali'), - ('bot_adress', 'xnova@xnova.fr'), + ('bot_adress', 'contact@wootook.org'), ('banner_source_post', '../images/bann.png'), ('ban_duration', '30'), ('enable_bot', '0'), - ('enable_bbcode', '1'), - ('debug', '0'); + ('enable_bbcode', '1'); SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/declared')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('declared')} ( `declarator` TEXT NOT NULL, `declared_1` TEXT NOT NULL, `declared_2` TEXT NOT NULL, @@ -206,7 +213,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/errors')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('errors')} ( `error_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `error_sender` VARCHAR(32) NOT NULL, `error_time` TIMESTAMP NOT NULL, @@ -219,7 +226,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/fleets')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('fleets')} ( `fleet_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `fleet_owner` BIGINT UNSIGNED NOT NULL, `fleet_mission` TINYINT UNSIGNED NOT NULL, @@ -251,7 +258,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/galaxy')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('galaxy')} ( `galaxy` TINYINT UNSIGNED NOT NULL, `system` SMALLINT UNSIGNED NOT NULL, `planet` TINYINT UNSIGNED NOT NULL, @@ -270,7 +277,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/iraks')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('iraks')} ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `zeit` TIMESTAMP NOT NULL, `galaxy` TINYINT UNSIGNED NOT NULL, @@ -290,7 +297,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/lunas')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('lunas')} ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `id_luna` BIGINT UNSIGNED NOT NULL, `name` VARCHAR(100) NOT NULL DEFAULT 'Lune', @@ -310,7 +317,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/messages')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('messages')} ( `message_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `message_owner` BIGINT UNSIGNED NOT NULL, `message_sender` BIGINT UNSIGNED NOT NULL, @@ -326,7 +333,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/multi')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('multi')} ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `player` BIGINT UNSIGNED NOT NULL, `sharer` BIGINT UNSIGNED NOT NULL, @@ -338,7 +345,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/notes')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('notes')} ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `owner` BIGINT UNSIGNED NOT NULL, `time` TIMESTAMP NOT NULL, @@ -352,7 +359,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/planets')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('planets')} ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(100) NOT NULL, `id_owner` BIGINT UNSIGNED NOT NULL, @@ -445,7 +452,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/rw')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('rw')} ( `id_owner1` BIGINT UNSIGNED NOT NULL, `id_owner2` BIGINT UNSIGNED NOT NULL, `rid` VARCHAR(72) NOT NULL, @@ -461,7 +468,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/statpoints')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('statpoints')} ( `id_owner` BIGINT UNSIGNED NOT NULL, `id_ally` BIGINT UNSIGNED NOT NULL, `stat_type` TINYINT UNSIGNED NOT NULL, @@ -498,7 +505,7 @@ SQL_EOF; $this->query($sql); $sql = <<getTableName('legacies/users')} ( +CREATE TABLE IF NOT EXISTS {$this->getTableName('users')} ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `username` VARCHAR(100) NOT NULL, -- FIXME `password` VARCHAR(64) NOT NULL, -- FIXME diff --git a/application/code/core/Wootook/Core/install/mysql5/uninstall-1.5.0.php b/application/code/core/Legacies/Empire/install/mysql5/uninstall-1.5.0.php similarity index 100% rename from application/code/core/Wootook/Core/install/mysql5/uninstall-1.5.0.php rename to application/code/core/Legacies/Empire/install/mysql5/uninstall-1.5.0.php diff --git a/application/code/core/Legacies/Officers/install/mysql5/.placeholder b/application/code/core/Legacies/Officers/install/mysql5/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/application/code/core/Wootook.php b/application/code/core/Wootook.php index 1cee8bd..1cb8439 100644 --- a/application/code/core/Wootook.php +++ b/application/code/core/Wootook.php @@ -287,20 +287,22 @@ class Wootook self::$_response = $response; } - private static function _loadConfig() + public static function loadConfig() { - if (self::$_config === null) { - self::$_config = include ROOT_PATH . DIRECTORY_SEPARATOR . 'config.php'; + self::$_config = include ROOT_PATH . DIRECTORY_SEPARATOR . 'config.php'; - if (!is_array(self::$_config)) { - self::$_config = array(); - } + if (!is_array(self::$_config)) { + self::$_config = array(); } + + return self::$_config; } public static function getConfig($path = null) { - self::_loadConfig(); + if (self::$_config === null) { + self::loadConfig(); + } if ($path === null || !is_string($path)) { return self::$_config; @@ -317,7 +319,9 @@ class Wootook public static function setConfig($path, $value) { - self::_loadConfig(); + if (self::$_config === null) { + self::loadConfig(); + } if ($path === null || !is_string($path)) { return self::$_config = $value; @@ -338,6 +342,8 @@ class Wootook { file_put_contents(ROOT_PATH . DIRECTORY_SEPARATOR . 'config.php', '<' . '?p' . 'hp ' . var_export($config, true) . ';'); + + self::$_config = $config; } public static function getBaseUrl() diff --git a/application/code/core/Wootook/Core/Setup/Exception/RuntimeException.php b/application/code/core/Wootook/Core/Setup/Exception/RuntimeException.php new file mode 100644 index 0000000..29a8002 --- /dev/null +++ b/application/code/core/Wootook/Core/Setup/Exception/RuntimeException.php @@ -0,0 +1,7 @@ +_setupConnection === null) { - return Wootook_Database::getSingleton(); + $this->setSetupConnection('default'); } return $this->_setupConnection; } - public function getTable($tableName) + public function getTableName($tableName) { - $this->getSetupConnection()->getTable($tableName); + return $this->getSetupConnection()->getTable($tableName); + } + + public function query($statement) + { + try { + if (!$this->getSetupConnection()->query($statement)) { + $info = $this->getSetupConnection()->errorInfo(); + throw new Wootook_Core_Setup_Exception_RuntimeException( + Wootook::__('Query failed: SQLSTATE %s: %s.', $info[1], $info[2])); + } + } catch (PDOException $e) { + Wootook_Core_ErrorProfiler::getSingleton()->exceptionManager($e); + throw new Wootook_Core_Setup_Exception_RuntimeException($e->getMessage(), null, $e); + } } public function grant($tableName, $connectionName, $perms = null) diff --git a/application/code/core/Wootook/Core/Setup/Updater/ScriptQueue.php b/application/code/core/Wootook/Core/Setup/Updater/ScriptQueue.php index ff6e309..e0ce1d5 100644 --- a/application/code/core/Wootook/Core/Setup/Updater/ScriptQueue.php +++ b/application/code/core/Wootook/Core/Setup/Updater/ScriptQueue.php @@ -1,6 +1,6 @@ install|upgrade|uninstall|downgrade)-(?[0-9]+\.[0-9]+\.[0-9]+)(?:\.(?[a-z]+)(?[0-9]+))?(?:-(?[0-9]+\.[0-9]+\.[0-9]+)(?:\.(?[a-z]+)(?[0-9]+))?)?$%'; @@ -36,27 +36,35 @@ class Wootook_Core_Setup_Model_Updater_ScriptQueue } if ($fromVersion === null) { - $fromVersion = '0.0.0'; + $fromVersion = array( + 'version' => self::VERSION_NULL, + 'stage' => self::STAGE_STABLE, + 'level' => 0, + ); + } else { + preg_match(self::PCRE_VERSION_PATTERN, $fromVersion, $matches); + $fromVersion = array( + 'version' => isset($matches['version']) ? $matches['version'] : self::VERSION_NULL, + 'stage' => isset($matches['stage']) && !empty($matches['stage']) ? $matches['stage'] : self::STAGE_STABLE, + 'level' => isset($matches['level']) && !empty($matches['level']) ? (int) $matches['level'] : 0, + ); } if ($toVersion === null) { - $toVersion = '0.0.0'; + $toVersion = array( + 'version' => self::VERSION_NULL, + 'stage' => self::STAGE_STABLE, + 'level' => 0, + ); + } else { + preg_match(self::PCRE_VERSION_PATTERN, $toVersion, $matches); + $toVersion = array( + 'version' => isset($matches['version']) ? $matches['version'] : self::VERSION_NULL, + 'stage' => isset($matches['stage']) && !empty($matches['stage']) ? $matches['stage'] : self::STAGE_STABLE, + 'level' => isset($matches['level']) && !empty($matches['level']) ? (int) $matches['level'] : 0, + ); } - preg_match(self::PCRE_VERSION_PATTERN, $fromVersion, $matches); - $fromVersion = array( - 'version' => isset($matches['version']) ? $matches['version'] : self::VERSION_NULL, - 'stage' => isset($matches['stage']) && !empty($matches['stage']) ? $matches['stage'] : self::STAGE_STABLE, - 'level' => isset($matches['level']) && !empty($matches['level']) ? (int) $matches['level'] : 0, - ); - - preg_match(self::PCRE_VERSION_PATTERN, $toVersion, $matches); - $toVersion = array( - 'version' => isset($matches['version']) ? $matches['version'] : self::VERSION_NULL, - 'stage' => isset($matches['stage']) && !empty($matches['stage']) ? $matches['stage'] : self::STAGE_STABLE, - 'level' => isset($matches['level']) && !empty($matches['level']) ? (int) $matches['level'] : 0, - ); - switch (version_compare($toVersion['version'], $fromVersion['version'])) { case 1: $this->_upgradeToVersion($fromVersion, $toVersion); @@ -110,7 +118,7 @@ class Wootook_Core_Setup_Model_Updater_ScriptQueue $this->_upgradeToVersion($fromVersion, $toVersion); } } else { - throw new Wootook_Core_Exception_RuntimeException("Invalid version stage."); + throw new Wootook_Core_Setup_Exception_VersionStageError("Invalid version stage."); } break; } @@ -123,6 +131,13 @@ class Wootook_Core_Setup_Model_Updater_ScriptQueue return $this->_finalVersion; } + public function getCurrentVersion() + { + $current = $this->current(); + + return $current['version']; + } + protected function _installHighestInstaller($currentVersion, $toVersion) { $highestVersion = self::VERSION_NULL; @@ -143,14 +158,16 @@ class Wootook_Core_Setup_Model_Updater_ScriptQueue return $version; } - if (isset($this->_installVersions[$highestVersion][self::STAGE_RC])) { + if (isset($this->_installVersions[$highestVersion][self::STAGE_STABLE])) { + $stage = self::STAGE_STABLE; + } else if (isset($this->_installVersions[$highestVersion][self::STAGE_RC])) { $stage = self::STAGE_RC; } else if (isset($this->_installVersions[$highestVersion][self::STAGE_BETA])) { $stage = self::STAGE_BETA; } else if (isset($this->_installVersions[$highestVersion][self::STAGE_ALPHA])) { $stage = self::STAGE_ALPHA; } else { - throw new Wootook_Core_Exception_RuntimeException("Invalid version stage."); + throw new Wootook_Core_Setup_Exception_VersionStageError("Invalid version stage."); } $levelList = array_keys($this->_installVersions[$highestVersion][$stage]); @@ -232,7 +249,7 @@ class Wootook_Core_Setup_Model_Updater_ScriptQueue $level = max(array_keys($versionPointer[$highestVersion][$stage])); } else { - throw new Wootook_Core_Exception_RuntimeException("Invalid version value."); + throw new Wootook_Core_Setup_Exception_VersionValueError("Invalid version value."); } $currentVersion = array( diff --git a/application/code/core/Wootook/Core/install/mysql5/.placeholder b/application/code/core/Wootook/Core/install/mysql5/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/application/code/core/Wootook/Database.php b/application/code/core/Wootook/Database.php index 2293bb0..ce6fba8 100644 --- a/application/code/core/Wootook/Database.php +++ b/application/code/core/Wootook/Database.php @@ -9,6 +9,9 @@ class Wootook_Database protected static $_connectionAliases = array(); protected $_tablePrefix = null; + protected $_dsn = null; + protected $_username = null; + protected $_password = null; public static $options = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION @@ -51,8 +54,9 @@ class Wootook_Database return null; } - if (!($port = Wootook::getConfig("global/database/{$connectionName}/params/port")) || !is_numeric($port)) { - $port = 3306; + $dsn = "mysql:dbname={$database};host={$hostname}"; + if (($port = Wootook::getConfig("global/database/{$connectionName}/params/port")) && is_numeric($port)) { + $dsn .= ";port={$port}"; } $event = Wootook::dispatchEvent('database.prepare-options', array( @@ -62,7 +66,10 @@ class Wootook_Database $options = $event->getData('options'); - $connection = new self("mysql:dbname={$database};host={$hostname};port={$port}", $username, $password, $options); + $connection = new self($dsn, $username, $password, $options); + $connection->_dsn = $dsn; + $connection->_username = $username; + $connection->_password = $password; if (($prefix = Wootook::getConfig("global/database/{$connectionName}/table_prefix")) !== null) { $connection->setTablePrefix($prefix); diff --git a/application/code/core/Wootook/Empire/install/mysql5/.placeholder b/application/code/core/Wootook/Empire/install/mysql5/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/application/design/install/default/scripts/step/database.phtml b/application/design/install/default/scripts/step/database.phtml new file mode 100644 index 0000000..d54ece7 --- /dev/null +++ b/application/design/install/default/scripts/step/database.phtml @@ -0,0 +1,65 @@ + +
+

__('Welcome to the Wootook! installer')?>

+

__('Database Config')?>

+ getLayout()->getMessagesblock()->renderGroupedHtml()?> +
+ +

+ + +

+

+ + +

+

+ + +

+

+ + +

+

+ + +

+

+ + +

+

+ + +

+
+ +
+ \ No newline at end of file diff --git a/application/design/install/default/scripts/step/profile.phtml b/application/design/install/default/scripts/step/profile.phtml new file mode 100644 index 0000000..011796e --- /dev/null +++ b/application/design/install/default/scripts/step/profile.phtml @@ -0,0 +1,30 @@ + +
+

__('Welcome to the Wootook! installer')?>

+

__('Admin Profile Config')?>

+ getLayout()->getMessagesblock()->renderGroupedHtml()?> +
+ +

+ + +

+

+ + +

+

+ + +

+

+ + +

+

+ + +

+

+ +
\ No newline at end of file diff --git a/application/design/install/default/scripts/step/system.phtml b/application/design/install/default/scripts/step/system.phtml index eb1371a..7978c32 100644 --- a/application/design/install/default/scripts/step/system.phtml +++ b/application/design/install/default/scripts/step/system.phtml @@ -7,7 +7,7 @@

- +

diff --git a/application/design/install/default/scripts/step/universe.phtml b/application/design/install/default/scripts/step/universe.phtml new file mode 100644 index 0000000..9bcc975 --- /dev/null +++ b/application/design/install/default/scripts/step/universe.phtml @@ -0,0 +1,37 @@ + +

+

__('Welcome to the Wootook! installer')?>

+

__('Universe Config')?>

+ getLayout()->getMessagesblock()->renderGroupedHtml()?> +
+ +

+ + +

+

+ + +

+

+ + +

+

+ + getFormData('allow_spy_drone_attacks', true)):?>checked="checked" name="allow_spy_drone_attacks" value="1" /> +

+

+ + + getFormData('use_large_numbers', true)):?>checked="checked" name="use_large_numbers" value="1" /> + + getFormData('use_large_numbers', false)):?>checked="checked" name="use_large_numbers" value="1" /> + __("'BC Math' extension is unavailable. This option will have no effect until the extension isn't active.")?> + +

+

+ +

+ +
\ No newline at end of file diff --git a/config.php b/config.php index e69de29..05cf3cd 100644 --- a/config.php +++ b/config.php @@ -0,0 +1,82 @@ + + array ( + 'storyline' => + array ( + 'universe' => 'legacies', + 'episode' => 'default', + ), + 'web' => + array ( + 'base_url' => 'http://localhost/projects/wootook-1.5/', + ), + 'date' => + array ( + 'timezone' => 'Europe/Paris', + ), + 'layout' => + array ( + 'page' => 'page.php', + 'admin' => 'admin.php', + 'empire' => 'empire.php', + ), + 'locales' => + array ( + 'fr' => 'fr_FR', + 'fr_FR' => 'fr_FR', + 'en' => 'en_US', + 'en_US' => 'en_US', + ), + 'database' => + array ( + 'default' => + array ( + 'engine' => 'mysql', + 'options' => + array ( + ), + 'params' => + array ( + 'hostname' => 'localhost', + 'username' => 'root', + 'password' => '%J4mzdo69$', + 'database' => 'db_xnova', + 'port' => '3306', + ), + 'table_prefix' => 'wtk_', + ), + 'core_setup' => + array ( + 'use' => 'default', + ), + 'core_read' => + array ( + 'use' => 'default', + ), + 'core_write' => + array ( + 'use' => 'default', + ), + ), + ), + 'default' => + array ( + 'engine' => + array ( + 'core' => + array ( + 'use_large_numbers' => false, + ), + 'universe' => + array ( + 'galaxies' => NULL, + 'systems' => NULL, + 'positions' => NULL, + ), + 'combat' => + array ( + 'allow_spy_drone_attacks' => false, + ), + ), + ), +); \ No newline at end of file diff --git a/install/gameplays.php b/install/gameplays.php new file mode 100644 index 0000000..ab036c5 --- /dev/null +++ b/install/gameplays.php @@ -0,0 +1,26 @@ + array( + 'label' => 'Legacies', + 'description' => "Conquer planets and grow your outer space empire, fight against other space emperors and master the outer space.", + 'modules' => array( + 'Wootook_Core' => array( + 'code_pool' => 'core', + 'version' => '1.5.0' + ), + 'Wootook_Empire' => array( + 'code_pool' => 'core', + 'version' => '1.5.0' + ), + 'Legacies_Empire' => array( + 'code_pool' => 'core', + 'version' => '1.5.0' + ), +/* + 'Legacies_Officers' => array( + 'code_pool' => 'core', + 'version' => '1.5.0' + ), +*/ + ) + ) + ); diff --git a/install/index.php b/install/index.php index 28c74d5..f1e4f09 100644 --- a/install/index.php +++ b/install/index.php @@ -38,16 +38,20 @@ define('STEP_UNIVERSE', 3); define('STEP_PROFILE', 4); define('STEP_CONFIG', 5); -require_once dirname(dirname(__FILE__)) .'/application/bootstrap.php'; - -//include(ROOT_PATH . 'includes/databaseinfos.php'); -//include(ROOT_PATH . 'includes/migrateinfo.php'); +require_once dirname(dirname(__FILE__)) . '/application/bootstrap.php'; $mode = isset($_GET['mode']) ? strval($_GET['mode']) : 'intro'; $step = isset($_GET['step']) ? intval($_GET['step']) : 1; $prevStep = $step - 1; $nextStep = $step + 1; +$modules = array( + 'Wootook_Core', + 'Wootook_Empire', + 'Legacies_Empire', + 'Legacies_Officers' + ); + includeLang('install/install'); $baseUrl = (isset($_SERVER["HTTPS"]) && strtolower($_SERVER["HTTPS"]) == "on" ? 'https://' : 'http://') @@ -59,14 +63,17 @@ if (isset($_SERVER['REQUEST_URI'])) { $baseUrl .= dirname(dirname($_SERVER['REQUEST_URI'])) . '/'; } } -Wootook::setConfig('global/web/base_url', $baseUrl); -Wootook::setConfig('global/package', 'install'); -Wootook::setConfig('global/theme', 'default'); -Wootook::setconfig('global/layout', array( - 'page' => 'page.php', - 'install' => 'install.php' - )); +if (count(Wootook::getConfig()) == 0) { + Wootook::setConfig('global/web/base_url', $baseUrl); + + Wootook::setConfig('global/package', 'install'); + Wootook::setConfig('global/theme', 'default'); + Wootook::setconfig('global/layout', array( + 'page' => 'page.php', + 'install' => 'install.php' + )); +} $session = Wootook::getSession('install'); $layout = new Wootook_Core_Layout(); @@ -75,6 +82,7 @@ $response = new Wootook_Core_Controller_Response_Http(); switch ($mode) { case 'intro': + $layout->getMessagesBlock()->prepareMessages('install'); $layout->load('install.intro'); $session->setData('step', 1); break; @@ -132,6 +140,7 @@ case 'install': ) ), ); + $session->setData('config', serialize($config)); Wootook::writeConfig($config); @@ -141,10 +150,21 @@ case 'install': exit(0); } + $layout->getMessagesBlock()->prepareMessages('install'); $layout->load('install.step.system'); break; case STEP_DATABASE: + $config = unserialize($session->getData('config')); + $session->setFormData(array( + 'host' => $config['global']['database']['default']['params']['hostname'], + 'port' => $config['global']['database']['default']['params']['port'], + 'user' => $config['global']['database']['default']['params']['username'], + 'password' => $config['global']['database']['default']['params']['password'], + 'dbname' => $config['global']['database']['default']['params']['database'], + 'prefix' => $config['global']['database']['default']['table_prefix'], + )); + if ($request->isPost()) { $form = new Wootook_Core_Form($session, array( 'host' => 'text', @@ -196,9 +216,9 @@ case 'install': $layout->getMessagesblock()->prepareMessages('install'); - $config = Wootook::getConfig(); - $config['database'] = array( - 'core_setup' => array( + $config = unserialize($session->getData('config')); + $config['global']['database'] = array( + 'default' => array( 'engine' => 'mysql', 'options' => array( ), @@ -211,35 +231,17 @@ case 'install': ), 'table_prefix' => $request->getPost('prefix'), ), + 'core_setup' => array( + 'use' => 'default' + ), 'core_read' => array( - 'engine' => 'mysql', - 'options' => array( - ), - 'params' => array( - 'hostname' => $request->getPost('host'), - 'username' => $request->getPost('user'), - 'password' => $request->getPost('password'), - 'database' => $request->getPost('dbname'), - 'port' => $request->getPost('port') - ), - 'table_prefix' => $request->getPost('prefix'), + 'use' => 'default' ), 'core_write' => array( - 'engine' => 'mysql', - 'options' => array( - ), - 'params' => array( - 'hostname' => $request->getPost('host'), - 'username' => $request->getPost('user'), - 'password' => $request->getPost('password'), - 'database' => $request->getPost('dbname'), - 'port' => $request->getPost('port') - ), - 'table_prefix' => $request->getPost('prefix'), + 'use' => 'default' ), ); - - Wootook::writeConfig($config); + $session->setData('config', serialize($config)); $session->setData('step', STEP_UNIVERSE); $response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_UNIVERSE))); @@ -247,6 +249,7 @@ case 'install': exit(0); } + $layout->getMessagesBlock()->prepareMessages('install'); $layout->load('install.step.database'); break; @@ -271,7 +274,7 @@ case 'install': exit(0); } - $config = Wootook::getConfig(); + $config = unserialize($session->getData('config')); $config['default'] = array( 'engine' => array( 'core' => array( @@ -287,30 +290,56 @@ case 'install': ) ), ); - Wootook::writeConfig($config); - $scriptPath = APPLICATION_PATH . 'code' . DIRECTORY_SEPARATOR . 'core' - . 'Wootook' . DIRECTORY_SEPARATOR . 'Core' . DIRECTORY_SEPARATOR - . 'install' . DIRECTORY_SEPARATOR . 'mysql5'; - $queue = new Wootook_Core_Setup_Model_Updater_ScriptQueue($scriptPath); - - try { - $updater = new Wootook_Core_Setup_Model_Updater(); - foreach ($queue as $installScript) { - $updater->run($installScript); - } - } catch (Exception $e) { - $session->addSuccess(Wootook::__('An error occured durong game data initialization.')); - $session->setData('step', STEP_SYSTEM); - $response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_SYSTEM))); - $response->sendHeaders(); - exit(0); + $gameplays = include dirname(__FILE__) . DIRECTORY_SEPARATOR . 'gameplays.php'; + $gameplayKey = $config['global']['storyline']['universe']; + if (!isset($gameplays[$gameplayKey])) { + $gameplayKey = key($gameplays); } + $moduleList = $gameplays[$gameplayKey]['modules']; + + $installedModules = array(); + $updater = new Wootook_Core_Setup_Updater(); + foreach ($moduleList as $module => $moduleData) { + $version = $moduleData['version']; + $codePool = $moduleData['code_pool']; + $modulePath = str_replace('_', DIRECTORY_SEPARATOR, $module); + + $scriptPath = APPLICATION_PATH . 'code' . DIRECTORY_SEPARATOR . $codePool + . DIRECTORY_SEPARATOR . $modulePath . DIRECTORY_SEPARATOR . 'install' + . DIRECTORY_SEPARATOR . 'mysql5'; + + try { + $queue = new Wootook_Core_Setup_Updater_ScriptQueue($scriptPath, null, $version); + + foreach ($queue as $installScript) { + $updater->run($installScript['script']); + $installedModules[$module] = $installScript['version']['version']; + } + } catch (Wootook_Core_Setup_Exception_VersionStageError $e) { + Wootook_Core_ErrorProfiler::getSingleton()->exceptionManager($e); + continue; + } catch (Wootook_Core_Setup_Exception_VersionValueError $e) { + Wootook_Core_ErrorProfiler::getSingleton()->exceptionManager($e); + continue; + } catch (Wootook_Core_Setup_Exception_RuntimeException $e) { + Wootook_Core_ErrorProfiler::getSingleton()->exceptionManager($e); + continue; + } + } + $path = APPLICATION_PATH . DIRECTORY_SEPARATOR . 'gamedata' . DIRECTORY_SEPARATOR + . $gameplayKey . DIRECTORY_SEPARATOR . 'version.php'; + file_put_contents($path, '<' . '?p' . 'hp ' . var_export($installedModules, true) . ';'); $session->addSuccess(Wootook::__('Game data successfully initialized.')); + $session->setData('step', STEP_PROFILE); + $response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_PROFILE))); + $response->sendHeaders(); + exit(0); } + $layout->getMessagesBlock()->prepareMessages('install'); $layout->load('install.step.universe'); break; @@ -354,12 +383,13 @@ case 'install': Wootook_Empire_Model_User::register($request->getPost('username'), $request->getPost('email'), $request->getPost('password')); - $session->setData('step', STEP_UNIVERSE); - $response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_UNIVERSE))); + $session->setData('step', STEP_CONFIG); + $response->setRedirect(Wootook::getUrl('install/index.php', array('mode' => 'install', 'step' => STEP_CONFIG))); $response->sendHeaders(); exit(0); } + $layout->getMessagesBlock()->prepareMessages('install'); $layout->load('install.step.profile'); break; @@ -371,6 +401,7 @@ case 'install': exit(0); } + $layout->getMessagesBlock()->prepareMessages('install'); $layout->load('install.config'); break; } diff --git a/install/injection-galaxy.txt b/install/injection-galaxy.txt new file mode 100644 index 0000000..00cee53 --- /dev/null +++ b/install/injection-galaxy.txt @@ -0,0 +1,90 @@ +INSERT INTO `game_galaxy` (`galaxy`, `system`, `planet`, `id_planet`, `metal`, `crystal`, `id_luna`, `luna`) + SELECT _increment.galaxy, _increment.system, 0, 0, 0, 0, 0, 0 + FROM ( + SELECT _galaxy.galaxy, (1 + _10e0.system + _10e1.system + _10e2.system) system + FROM ( + SELECT 0 AS system + UNION ALL + SELECT 1 AS system + UNION ALL + SELECT 2 AS system + UNION ALL + SELECT 3 AS system + UNION ALL + SELECT 4 AS system + UNION ALL + SELECT 5 AS system + UNION ALL + SELECT 6 AS system + UNION ALL + SELECT 7 AS system + UNION ALL + SELECT 8 AS system + UNION ALL + SELECT 9 AS system + ) _10e0 + CROSS JOIN ( + SELECT 0 AS system + UNION ALL + SELECT 10 AS system + UNION ALL + SELECT 20 AS system + UNION ALL + SELECT 30 AS system + UNION ALL + SELECT 40 AS system + UNION ALL + SELECT 50 AS system + UNION ALL + SELECT 60 AS system + UNION ALL + SELECT 70 AS system + UNION ALL + SELECT 80 AS system + UNION ALL + SELECT 90 AS system + ) _10e1 + CROSS JOIN ( + SELECT 0 AS system + UNION ALL + SELECT 100 AS system + UNION ALL + SELECT 200 AS system + UNION ALL + SELECT 300 AS system + UNION ALL + SELECT 400 AS system + UNION ALL + SELECT 500 AS system + UNION ALL + SELECT 600 AS system + UNION ALL + SELECT 700 AS system + UNION ALL + SELECT 800 AS system + UNION ALL + SELECT 900 AS system + ) _10e2 + CROSS JOIN ( + SELECT 1 AS galaxy + UNION ALL + SELECT 2 AS galaxy + UNION ALL + SELECT 3 AS galaxy + UNION ALL + SELECT 4 AS galaxy + UNION ALL + SELECT 5 AS galaxy + UNION ALL + SELECT 6 AS galaxy + UNION ALL + SELECT 7 AS galaxy + UNION ALL + SELECT 8 AS galaxy + UNION ALL + SELECT 9 AS galaxy + ) _galaxy + ) _increment + + WHERE _increment.galaxy<=3 + AND _increment.system<=100 \ No newline at end of file
Informations sur l'alliance