* Refactor install::step2.

This commit is contained in:
xieqiyu
2023-12-21 13:35:02 +08:00
parent e4431809e5
commit 33758543f7
4 changed files with 86 additions and 42 deletions
+17
View File
@@ -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);
+3 -3
View File
@@ -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 -25
View File
@@ -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
View File
@@ -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;
}