mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-14 12:30:49 +08:00
67 lines
1.7 KiB
PHP
67 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Nexus\Install;
|
|
|
|
use Nexus\Database\DB;
|
|
|
|
class Update extends Install
|
|
{
|
|
|
|
protected $steps = ['环境检测', '添加 .env 文件', '修改&创建数据表', '导入数据'];
|
|
|
|
|
|
public function getLogFile()
|
|
{
|
|
return sprintf('%s/nexus_update_%s.log', sys_get_temp_dir(), date('Ymd'));
|
|
}
|
|
|
|
public function getUpdateDirectory()
|
|
{
|
|
return ROOT_PATH . 'public/update';
|
|
}
|
|
|
|
public function listTableFieldsFromCreateTable($createTableSql)
|
|
{
|
|
$arr = preg_split("/[\r\n]+/", $createTableSql);
|
|
$result = [];
|
|
foreach ($arr as $value) {
|
|
$value = trim($value);
|
|
if (substr($value, 0, 1) != '`') {
|
|
continue;
|
|
}
|
|
$pos = strpos($value, '`', 1);
|
|
$field = substr($value, 1, $pos - 1);
|
|
$result[$field] = rtrim($value, ',');
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
public function listTableFieldsFromDb($table)
|
|
{
|
|
$sql = "desc $table";
|
|
$res = sql_query($sql);
|
|
$data = [];
|
|
while ($row = mysql_fetch_assoc($res)) {
|
|
$data[$row['Field']] = $row;
|
|
}
|
|
return $data;
|
|
}
|
|
|
|
public function runExtraQueries()
|
|
{
|
|
//custom field menu
|
|
$url = 'fields.php';
|
|
$table = 'adminpanel';
|
|
$count = get_row_count($table, "where url = " . sqlesc($url));
|
|
if ($count == 0) {
|
|
$insert = [
|
|
'name' => 'Custom Field Manage',
|
|
'url' => $url,
|
|
'info' => 'Manage custom fields',
|
|
];
|
|
$id = DB::insert($table, $insert);
|
|
$this->doLog("[ADD CUSTOM FIELD MENU] insert: " . json_encode($insert) . " to table: $table, id: $id");
|
|
}
|
|
}
|
|
|
|
} |