* Refactor install::step2.
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
$config->install->form = new stdclass();
|
||||
|
||||
$config->install->form->step2 = array();
|
||||
$config->install->form->step2['dbDriver'] = array('type' => 'string', 'required' => true, 'default' => 'mysql');
|
||||
$config->install->form->step2['timezone'] = array('type' => 'string', 'required' => true);
|
||||
$config->install->form->step2['defaultLang'] = array('type' => 'string', 'required' => true);
|
||||
$config->install->form->step2['dbHost'] = array('type' => 'string', 'required' => true);
|
||||
$config->install->form->step2['dbPort'] = array('type' => 'string', 'required' => true);
|
||||
$config->install->form->step2['dbEncoding'] = array('type' => 'string', 'required' => true);
|
||||
$config->install->form->step2['dbUser'] = array('type' => 'string', 'required' => true);
|
||||
$config->install->form->step2['dbPassword'] = array('type' => 'string', 'required' => true);
|
||||
$config->install->form->step2['dbName'] = array('type' => 'string', 'required' => true);
|
||||
$config->install->form->step2['dbPrefix'] = array('type' => 'string', 'required' => true);
|
||||
$config->install->form->step2['clearDB'] = array('type' => 'int', 'required' => false, 'default' => 0);
|
||||
@@ -139,11 +139,12 @@ class install extends control
|
||||
{
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$return = $this->installZen->checkConfig();
|
||||
$data = form::data()->get();
|
||||
$return = $this->installZen->checkConfig($data);
|
||||
if($return->result != 'ok') return $this->send(array('result' => 'fail', 'callback' => "zui.Modal.alert({icon: 'icon-exclamation-sign', size: '480', iconClass: 'text-4xl text-warning', message: '" . str_replace("'", '"', $return->error) . "'})"));
|
||||
|
||||
$myConfig = array();
|
||||
foreach($_POST as $key => $value) $myConfig[$key] = $value;
|
||||
foreach($data as $key => $value) $myConfig[$key] = $value;
|
||||
$this->session->set('myConfig', $myConfig);
|
||||
return $this->send(array('result' => 'success', 'load' => inlink('showTableProgress')));
|
||||
}
|
||||
@@ -205,7 +206,6 @@ class install extends control
|
||||
|
||||
$config = json_decode(file_get_contents($this->install->buildDBLogFile('config')));
|
||||
$this->config->db = $config->db;
|
||||
$_POST = (array)$config->post;
|
||||
$version = $this->install->getDatabaseVersion();
|
||||
if($this->install->createTable($version, true)) file_put_contents($this->install->buildDBLogFile('success'), 'success');
|
||||
}
|
||||
|
||||
@@ -50,7 +50,8 @@ div
|
||||
(
|
||||
set::name('timezone'),
|
||||
set::items($timezoneList),
|
||||
set::value($config->timezone)
|
||||
set::value($config->timezone),
|
||||
set::required(true)
|
||||
)
|
||||
),
|
||||
h::td()
|
||||
@@ -64,7 +65,8 @@ div
|
||||
(
|
||||
set::name('defaultLang'),
|
||||
set::items($config->langs),
|
||||
set::value($app->getClientLang())
|
||||
set::value($app->getClientLang()),
|
||||
set::required(true)
|
||||
)
|
||||
),
|
||||
h::td()
|
||||
@@ -79,7 +81,8 @@ div
|
||||
(
|
||||
set::name('dbDriver'),
|
||||
set::items($lang->install->dbDriverList),
|
||||
set::value('mysql')
|
||||
set::value('mysql'),
|
||||
set::required(true)
|
||||
)
|
||||
),
|
||||
h::td()
|
||||
@@ -95,10 +98,13 @@ div
|
||||
h::th($lang->install->dbHost),
|
||||
h::td
|
||||
(
|
||||
input
|
||||
formGroup
|
||||
(
|
||||
set::name('dbHost'),
|
||||
set::value($dbHost)
|
||||
input
|
||||
(
|
||||
set::name('dbHost'),
|
||||
set::value($dbHost)
|
||||
)
|
||||
)
|
||||
),
|
||||
h::td($lang->install->dbHostNote)
|
||||
@@ -109,10 +115,13 @@ div
|
||||
h::th($lang->install->dbPort),
|
||||
h::td
|
||||
(
|
||||
input
|
||||
formGroup
|
||||
(
|
||||
set::name('dbPort'),
|
||||
set::value($dbPort)
|
||||
input
|
||||
(
|
||||
set::name('dbPort'),
|
||||
set::value($dbPort)
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
@@ -122,10 +131,13 @@ div
|
||||
h::th($lang->install->dbEncoding),
|
||||
h::td
|
||||
(
|
||||
input
|
||||
formGroup
|
||||
(
|
||||
set::name('dbEncoding'),
|
||||
set::value($this->config->db->encoding)
|
||||
input
|
||||
(
|
||||
set::name('dbEncoding'),
|
||||
set::value($this->config->db->encoding)
|
||||
)
|
||||
)
|
||||
),
|
||||
h::td()
|
||||
@@ -136,10 +148,13 @@ div
|
||||
h::th($lang->install->dbUser),
|
||||
h::td
|
||||
(
|
||||
input
|
||||
formGroup
|
||||
(
|
||||
set::name('dbUser'),
|
||||
set::value($dbUser)
|
||||
input
|
||||
(
|
||||
set::name('dbUser'),
|
||||
set::value($dbUser)
|
||||
)
|
||||
)
|
||||
),
|
||||
h::td()
|
||||
@@ -150,10 +165,13 @@ div
|
||||
h::th($lang->install->dbPassword),
|
||||
h::td
|
||||
(
|
||||
input
|
||||
formGroup
|
||||
(
|
||||
set::name('dbPassword'),
|
||||
set::value($dbPassword)
|
||||
input
|
||||
(
|
||||
set::name('dbPassword'),
|
||||
set::value($dbPassword)
|
||||
)
|
||||
)
|
||||
),
|
||||
h::td()
|
||||
@@ -163,10 +181,13 @@ div
|
||||
h::th($lang->install->dbName),
|
||||
h::td
|
||||
(
|
||||
input
|
||||
formGroup
|
||||
(
|
||||
set::name('dbName'),
|
||||
set::value($dbName)
|
||||
input
|
||||
(
|
||||
set::name('dbName'),
|
||||
set::value($dbName)
|
||||
)
|
||||
)
|
||||
),
|
||||
h::td()
|
||||
@@ -176,10 +197,13 @@ div
|
||||
h::th($lang->install->dbPrefix),
|
||||
h::td
|
||||
(
|
||||
input
|
||||
formGroup
|
||||
(
|
||||
set::name('dbPrefix'),
|
||||
set::value('zt_')
|
||||
input
|
||||
(
|
||||
set::name('dbPrefix'),
|
||||
set::value('zt_')
|
||||
)
|
||||
)
|
||||
),
|
||||
h::td
|
||||
@@ -187,7 +211,8 @@ div
|
||||
checkbox
|
||||
(
|
||||
set::text($lang->install->clearDB),
|
||||
set::name('clearDB')
|
||||
set::name('clearDB'),
|
||||
set::value(1)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+16
-14
@@ -241,18 +241,19 @@ class installZen extends install
|
||||
* 检查数据库配置信息的正确性。
|
||||
* Check config ok or not.
|
||||
*
|
||||
* @param object $data
|
||||
* @access protected
|
||||
* @return object
|
||||
*/
|
||||
protected function checkConfig(): object
|
||||
protected function checkConfig(object $data): object
|
||||
{
|
||||
$return = new stdclass();
|
||||
$return->result = 'ok';
|
||||
|
||||
/* Connect to database. */
|
||||
$this->setDBParam();
|
||||
$this->setDBParam($data);
|
||||
$this->install->dbh = $this->install->connectDB();
|
||||
if(strpos($this->post->dbName, '.') !== false)
|
||||
if(strpos($data->dbName, '.') !== false)
|
||||
{
|
||||
/* 如果数据库名字带有.字符的话,则提示错误信息。 */
|
||||
$return->result = 'fail';
|
||||
@@ -281,7 +282,7 @@ class installZen extends install
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
elseif($this->install->dbh->tableExits(TABLE_CONFIG) && $this->post->clearDB == false)
|
||||
elseif($this->install->dbh->tableExits(TABLE_CONFIG) && empty($data->clearDB))
|
||||
{
|
||||
/* 如果已经存在config表,并且用户没有勾选清空旧数据库选项的话,则提示错误信息。 */
|
||||
$return->result = 'fail';
|
||||
@@ -347,12 +348,13 @@ class installZen extends install
|
||||
* 写入数据库配置信息。
|
||||
* Set database params.
|
||||
*
|
||||
* @param object $data
|
||||
* @access private
|
||||
* @return bool
|
||||
*/
|
||||
private function setDBParam(): bool
|
||||
private function setDBParam(object $data): bool
|
||||
{
|
||||
$this->config->db->driver = $this->post->dbDriver;
|
||||
$this->config->db->driver = $data->dbDriver;
|
||||
if($this->config->inQuickon)
|
||||
{
|
||||
$this->config->db->host = getenv('ZT_MYSQL_HOST');
|
||||
@@ -363,16 +365,16 @@ class installZen extends install
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->config->db->host = $this->post->dbHost;
|
||||
$this->config->db->user = $this->post->dbUser;
|
||||
$this->config->db->encoding = $this->post->dbEncoding;
|
||||
$this->config->db->password = $this->post->dbPassword;
|
||||
$this->config->db->port = $this->post->dbPort;
|
||||
$this->config->db->host = $data->dbHost;
|
||||
$this->config->db->user = $data->dbUser;
|
||||
$this->config->db->encoding = $data->dbEncoding;
|
||||
$this->config->db->password = $data->dbPassword;
|
||||
$this->config->db->port = $data->dbPort;
|
||||
}
|
||||
$this->config->db->name = $this->post->dbName;
|
||||
$this->config->db->prefix = $this->post->dbPrefix;
|
||||
$this->config->db->name = $data->dbName;
|
||||
$this->config->db->prefix = $data->dbPrefix;
|
||||
|
||||
file_put_contents($this->install->buildDBLogFile('config'), json_encode(array('db' => $this->config->db, 'post' => $_POST)));
|
||||
file_put_contents($this->install->buildDBLogFile('config'), json_encode(array('db' => $this->config->db, 'post' => $data)));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user