Merge branch 'development' of https://github.com/PrestaShop/PrestaShop into development

This commit is contained in:
gRoussac
2013-06-26 18:12:09 +02:00
27 changed files with 223 additions and 168 deletions
+7 -7
View File
@@ -56,7 +56,6 @@ class InstallControllerHttpDatabase extends InstallControllerHttp
$this->session->database_login = trim(Tools::getValue('dbLogin'));
$this->session->database_password = trim(Tools::getValue('dbPassword'));
$this->session->database_prefix = trim(Tools::getValue('db_prefix'));
$this->session->database_engine = Tools::getValue('dbEngine');
$this->session->database_clear = Tools::getValue('database_clear');
// Save email config
@@ -81,13 +80,15 @@ class InstallControllerHttpDatabase extends InstallControllerHttp
$this->session->database_login,
$this->session->database_password,
$this->session->database_prefix,
$this->session->database_engine,
// We do not want to validate table prefix if we are already in install process
($this->session->step == 'process') ? true : $this->session->database_clear
);
return count($this->errors) ? false : true;
if (count($this->errors))
return false;
if (!isset($this->session->database_engine))
$this->session->database_engine = $this->model_database->getBestEngine($this->session->database_server, $this->session->database_name, $this->session->database_login, $this->session->database_password);
return true;
}
public function process()
@@ -108,10 +109,9 @@ class InstallControllerHttpDatabase extends InstallControllerHttp
$login = Tools::getValue('dbLogin');
$password = Tools::getValue('dbPassword');
$prefix = Tools::getValue('db_prefix');
$engine = Tools::getValue('dbEngine');
$clear = Tools::getValue('clear');
$errors = $this->model_database->testDatabaseSettings($server, $database, $login, $password, $prefix, $engine, $clear);
$errors = $this->model_database->testDatabaseSettings($server, $database, $login, $password, $prefix, $clear);
$this->ajaxJsonAnswer(
(count($errors)) ? false : true,
+1 -1
View File
@@ -96,7 +96,7 @@
<access id="access_2_85" id_profile="Administrator" id_tab="Webservice" view="1" add="1" edit="1" delete="1"/>
<access id="access_2_86" id_profile="Administrator" id_tab="Preferences_1" view="1" add="1" edit="1" delete="1"/>
<access id="access_2_87" id_profile="Administrator" id_tab="Quick_Access" view="1" add="1" edit="1" delete="1"/>
<access id="access_2_88" id_profile="Administrator" id_tab="Employees" view="1" add="1" edit="1" delete="1"/>
<access id="access_2_88" id_profile="Administrator" id_tab="Employees" view="1" add="0" edit="0" delete="0"/>
<access id="access_2_89" id_profile="Administrator" id_tab="Profiles" view="1" add="1" edit="1" delete="1"/>
<access id="access_2_90" id_profile="Administrator" id_tab="Permissions" view="1" add="1" edit="1" delete="1"/>
<access id="access_2_91" id_profile="Administrator" id_tab="Tabs" view="1" add="1" edit="1" delete="1"/>
+15 -13
View File
@@ -38,7 +38,7 @@ class InstallModelDatabase extends InstallAbstractModel
* @param bool $clear
* @return array List of errors
*/
public function testDatabaseSettings($server, $database, $login, $password, $prefix, $engine, $clear = false)
public function testDatabaseSettings($server, $database, $login, $password, $prefix, $clear = false)
{
$errors = array();
@@ -55,14 +55,11 @@ class InstallModelDatabase extends InstallAbstractModel
if ($prefix && !Validate::isTablePrefix($prefix))
$errors[] = $this->language->l('Tables prefix is invalid');
if (!Validate::isMySQLEngine($engine))
$errors[] = $this->language->l('Wrong engine chosen for MySQL');
if (!$errors)
{
$dbtype = ' ('.Db::getClass().')';
// Try to connect to database
switch (Db::checkConnection($server, $login, $password, $database, true, $engine))
switch (Db::checkConnection($server, $login, $password, $database, true))
{
case 0:
if (!Db::checkEncoding($server, $login, $password))
@@ -71,28 +68,33 @@ class InstallModelDatabase extends InstallAbstractModel
// Check if a table with same prefix already exists
if (!$clear && Db::hasTableWithSamePrefix($server, $login, $password, $database, $prefix))
$errors[] = $this->language->l('At least one table with same prefix was already found, please change your prefix or drop your database');
if (($create_error = Db::checkCreatePrivilege($server, $login, $password, $database, $prefix, $engine)) !== true)
if (($create_error = Db::checkCreatePrivilege($server, $login, $password, $database, $prefix)) !== true)
{
$errors[] = $this->language->l(sprintf('Your database login don\'t have the privileges to create table on the database "%s". Ask your hosting provider:', $database));
if ($create_error != false)
$errors[] = $create_error;
}
break;
break;
case 1:
$errors[] = $this->language->l('Database Server is not found. Please verify the login, password and server fields').$dbtype;
break;
break;
case 2:
$errors[] = $this->language->l('Connection to MySQL server succeeded, but database "%s" not found', $database).$dbtype;
break;
case 4:
$errors[] = $this->language->l('Engine innoDB is not supported by your MySQL server, please use MyISAM').$dbtype;
break;
break;
}
}
return $errors;
}
public function getBestEngine($server, $database, $login, $password)
{
$class = Db::getClass();
$instance = new $class($server, $login, $password, $database, true);
$engine = $instance->getBestEngine();
unset($instance);
return $engine;
}
}
+2 -1
View File
@@ -27,13 +27,14 @@
<label for="dbPassword"><?php echo $this->l('Database password:') ?> </label>
<input class="text" size="10" type="password" id="dbPassword" name="dbPassword" value="<?php echo htmlspecialchars($this->database_password) ?>" />
</p>
<!--
<p>
<label for="dbEngine"><?php echo $this->l('Database Engine:') ?></label>
<select id="dbEngine" name="dbEngine">
<option value="InnoDB" <?php if ($this->database_engine == 'InnoDB'): ?>selected="selected"<?php endif; ?>>InnoDB</option>
<option value="MyISAM" <?php if ($this->database_engine == 'MyISAM'): ?>selected="selected"<?php endif; ?>>MyISAM</option>
</select>
</p>
</p>-->
<p>
<label for="db_prefix"><?php echo $this->l('Tables prefix:')?></label>
<input class="text" type="text" id="db_prefix" name="db_prefix" value="<?php echo htmlspecialchars($this->database_prefix) ?>" />