Updated install and fixed bugs

Added session messages display
Fixed field and validator loading.
Updated form validation
Updated root config management
Muted error reporting in file evaluation
Added menu updates
Fixed galaxy data access error
Fixed config bug
Added HTTP request method checks
Added Form manager
Fixed core bugs

Signed-off-by: Gregory PLANCHAT <g.planchat@gmail.com>
This commit is contained in:
Gregory PLANCHAT 2011-11-08 08:56:53 +01:00
commit 9636b4bb00
69 changed files with 2434 additions and 789 deletions

View file

@ -32,44 +32,158 @@ define('INSIDE' , true);
define('INSTALL', false);
define('IN_INSTALL', true);
define('ROOT_PATH', dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR);
define('PHPEXT', include ROOT_PATH . 'extension.inc');
define('STEP_SYSTEM', 1);
define('STEP_DATABASE', 2);
define('STEP_PROFILE', 3);
define('STEP_UNIVERSE', 4);
define('STEP_CONFIG', 5);
define('DEFAULT_SKINPATH', '../skins/xnova/');
define('TEMPLATE_DIR', realpath(ROOT_PATH . '/templates/'));
define('TEMPLATE_NAME', 'OpenGame');
define('DEFAULT_LANG', 'fr');
$dpath = DEFAULT_SKINPATH;
require_once dirname(dirname(__FILE__)) .'/application/bootstrap.php';
include(ROOT_PATH . 'includes/debug.class.'.PHPEXT);
$debug = new debug();
include(ROOT_PATH . 'includes/constants.' . PHPEXT);
include(ROOT_PATH . 'includes/functions.' . PHPEXT);
include(ROOT_PATH . 'includes/unlocalised.' . PHPEXT);
include(ROOT_PATH . 'includes/todofleetcontrol.' . PHPEXT);
include(ROOT_PATH . 'language/' . DEFAULT_LANG . '/lang_info.cfg');
include(ROOT_PATH . 'includes/vars.' . PHPEXT);
include(ROOT_PATH . 'includes/db.' . PHPEXT);
include(ROOT_PATH . 'includes/strings.' . PHPEXT);
include(ROOT_PATH . 'includes/databaseinfos.php');
include(ROOT_PATH . 'includes/migrateinfo.php');
//include(ROOT_PATH . 'includes/databaseinfos.php');
//include(ROOT_PATH . 'includes/migrateinfo.php');
$mode = isset($_GET['mode']) ? strval($_GET['mode']) : 'intro';
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$nextPage = $page + 1;
$step = isset($_GET['step']) ? intval($_GET['step']) : 1;
$prevStep = $step - 1;
$nextStep = $step + 1;
$mainTpl = gettemplate('install/ins_body');
includeLang('install/install');
$baseUrl = (isset($_SERVER["HTTPS"]) && strtolower($_SERVER["HTTPS"]) == "on" ? 'https://' : 'http://')
. $_SERVER["SERVER_NAME"] . ($_SERVER["SERVER_PORT"] != "80" ? ":{$_SERVER["SERVER_PORT"]}" : '');
if (isset($_SERVER['REQUEST_URI'])) {
if (strrpos($_SERVER['REQUEST_URI'], '/') == (strlen($_SERVER['REQUEST_URI']) - 1)) {
$baseUrl .= dirname($_SERVER['REQUEST_URI']) . '/';
} else {
$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'
));
$session = Wootook::getSession('install');
$layout = new Wootook_Core_Layout();
$request = new Wootook_Core_Controller_Request_Http();
$response = new Wootook_Core_Controller_Response_Http();
switch ($mode) {
case 'intro':
$subTpl = gettemplate('install/ins_intro');
$bloc = $lang;
$bloc['dpath'] = $dpath;
$frame = parsetemplate($subTpl, $bloc);
break;
case 'intro':
$layout->load('install.intro');
$session->setData('step', 1);
break;
case 'install':
$session->addError('Test %s', 'Hello world!');
if ($step != $session->getData('step')) {
$session->setData('step', 0);
$response->setRedirect("?mode=intro", Wootook_Core_Controller_Response_Http::REDIRECT_TEMPORARY);
$response->sendHeaders();
exit(0);
}
switch ($step) {
case STEP_SYSTEM:
if ($request->isPost()) {
$form = new Wootook_Core_Form($session, array(
'url_path' => 'text'
));
$form->addField('url_path');
$form->setRequest($request);
$form->populate();
if (!$form->validate()) {
$session->setData('step', $step);
$session->setFormData($form->getData());
var_dump($session);
$response->setRedirect("?mode=install&step={$step}");
$response->sendHeaders();
exit(0);
}
$layout->getMessagesblock()->prepareMessages('install');
$session->setBaseUrl($request->getPost('url_path'));
$session->setStep(STEP_DATABASE);
$response->setRedirect("?mode=install&step={$nextStep}");
$response->sendHeaders();
exit(0);
}
$layout->load('install.step.system');
break;
case STEP_DATABASE:
if ($request->isPost()) {
$form = new Wootook_Core_Form($session, array(
'host' => 'text',
'port' => 'text',
'user' => 'text',
'password' => 'text',
'dbname' => 'text',
'prefix' => 'text',
));
$form->setRequest($request);
$form->populate();
if (!$form->validate()) {
$session->setData('step', $step);
$session->setFormData($request->getPost());
$response->setRedirect("?mode=install&step={$step}");
$response->sendHeaders();
exit(0);
}
$layout->getMessagesblock()->prepareMessages('install');
$session->setStep(STEP_PROFILE);
$response->setRedirect("?mode=install&step={$nextStep}");
$response->sendHeaders();
exit(0);
}
$layout->load('install.database');
break;
case STEP_PROFILE:
if (empty($_POST)) {
$session->setData('step', $step);
$response->setRedirect("?mode=install&step={$nextStep}");
$response->sendHeaders();
exit(0);
}
$layout->load('install.profile');
break;
case STEP_UNIVERSE:
if (empty($_POST)) {
$session->setData('step', $step);
$response->setRedirect("?mode=install&step={$nextStep}");
$response->sendHeaders();
exit(0);
}
$layout->load('install.universe');
break;
case STEP_CONFIG:
if (empty($_POST)) {
$session->setData('step', $step);
$response->setRedirect("?mode=install&step={$nextStep}");
$response->sendHeaders();
exit(0);
}
$layout->load('install.config');
break;
}
break;
case 'ins':
if ($page == 1) {
@ -345,12 +459,4 @@ EOF;
die();
}
$parse = $lang;
$parse['ins_state'] = $page;
$parse['ins_page'] = $frame;
$parse['dis_ins_btn'] = "?mode=$mode&page=$nextPage";
$parse['dpath'] = $dpath;
$data = parsetemplate($mainTpl, $parse);
display($data, "Installeur", false, '', true);
echo $layout->render();