切换导航条
此项目
正在载入...
登录
何书鹏
/
recruit
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
Karson
7 years ago
提交
4260ee14e37bcecd58de9f478c4b2b9ee27b4c39
1 个父辈
dc99d262
新增命令行插件升级和打包
修复后台保持登录不起作用的BUG 优化安装程序的文字提示
隐藏空白字符变更
内嵌
并排对比
正在显示
7 个修改的文件
包含
85 行增加
和
19 行删除
.gitignore
application/admin/command/Addon.php
application/admin/command/Install/install.lock
application/admin/library/Auth.php
public/install.php
public/uploads/.gitkeep
runtime/.gitkeep
.gitignore
查看文件 @
4260ee1
/nbproject/
/thinkphp/
/vendor/
/runtime/
/runtime/
*
/addons/*
/application/admin/command/Install/*.lock
/public/assets/libs/
/public/assets/addons/*
/public/uploads/
/public/uploads/
*
.idea
composer.lock
*.log
...
...
application/admin/command/Addon.php
查看文件 @
4260ee1
...
...
@@ -19,8 +19,9 @@ class Addon extends Command
$this
->
setName
(
'addon'
)
->
addOption
(
'name'
,
'a'
,
Option
::
VALUE_REQUIRED
,
'addon name'
,
null
)
->
addOption
(
'action'
,
'c'
,
Option
::
VALUE_REQUIRED
,
'action(create/enable/disable/install/uninstall/refresh)'
,
'create'
)
->
addOption
(
'action'
,
'c'
,
Option
::
VALUE_REQUIRED
,
'action(create/enable/disable/install/uninstall/refresh
/upgrade/package
)'
,
'create'
)
->
addOption
(
'force'
,
'f'
,
Option
::
VALUE_OPTIONAL
,
'force override'
,
null
)
->
addOption
(
'release'
,
'r'
,
Option
::
VALUE_OPTIONAL
,
'addon release version'
,
null
)
->
setDescription
(
'Addon manager'
);
}
...
...
@@ -30,6 +31,8 @@ class Addon extends Command
$action
=
$input
->
getOption
(
'action'
)
?:
''
;
//强制覆盖
$force
=
$input
->
getOption
(
'force'
);
//版本
$release
=
$input
->
getOption
(
'release'
)
?:
''
;
include
dirname
(
__DIR__
)
.
DS
.
'common.php'
;
...
...
@@ -37,15 +40,15 @@ class Addon extends Command
{
throw
new
Exception
(
'Addon name could not be empty'
);
}
if
(
!
$action
||
!
in_array
(
$action
,
[
'create'
,
'disable'
,
'enable'
,
'install'
,
'uninstall'
,
'refresh'
]))
if
(
!
$action
||
!
in_array
(
$action
,
[
'create'
,
'disable'
,
'enable'
,
'install'
,
'uninstall'
,
'refresh'
,
'upgrade'
,
'package'
]))
{
throw
new
Exception
(
'Please input correct action name'
);
}
// 查询一次SQL,判断连接是否正常
Db
::
execute
(
"SELECT 1"
);
$addonDir
=
ADDON_PATH
.
$name
;
$addonDir
=
ADDON_PATH
.
$name
.
DS
;
switch
(
$action
)
{
case
'create'
:
...
...
@@ -65,9 +68,9 @@ class Addon extends Command
'addon'
=>
$name
,
'addonClassName'
=>
ucfirst
(
$name
)
];
$this
->
writeToFile
(
"addon"
,
$data
,
$addonDir
.
DS
.
ucfirst
(
$name
)
.
'.php'
);
$this
->
writeToFile
(
"config"
,
$data
,
$addonDir
.
DS
.
'config.php'
);
$this
->
writeToFile
(
"info"
,
$data
,
$addonDir
.
DS
.
'info.ini'
);
$this
->
writeToFile
(
"addon"
,
$data
,
$addonDir
.
ucfirst
(
$name
)
.
'.php'
);
$this
->
writeToFile
(
"config"
,
$data
,
$addonDir
.
'config.php'
);
$this
->
writeToFile
(
"info"
,
$data
,
$addonDir
.
'info.ini'
);
$output
->
info
(
"Create Successed!"
);
break
;
case
'disable'
:
...
...
@@ -117,7 +120,7 @@ class Addon extends Command
}
try
{
Service
::
install
(
$name
,
0
);
Service
::
install
(
$name
,
0
,
[
'version'
=>
$release
]
);
}
catch
(
AddonException
$e
)
{
...
...
@@ -137,7 +140,7 @@ class Addon extends Command
{
throw
new
Exception
(
"Operation is aborted!"
);
}
Service
::
install
(
$name
,
1
);
Service
::
install
(
$name
,
1
,
[
'version'
=>
$release
]
);
}
catch
(
Exception
$e
)
{
...
...
@@ -187,6 +190,67 @@ class Addon extends Command
Service
::
refresh
();
$output
->
info
(
"Refresh Successed!"
);
break
;
case
'upgrade'
:
Service
::
upgrade
(
$name
,
[
'version'
=>
$release
]);
$output
->
info
(
"Upgrade Successed!"
);
break
;
case
'package'
:
$infoFile
=
$addonDir
.
'info.ini'
;
if
(
!
is_file
(
$infoFile
))
{
throw
new
Exception
(
__
(
'Addon info file was not found'
));
}
$info
=
get_addon_info
(
$name
);
if
(
!
$info
)
{
throw
new
Exception
(
__
(
'Addon info file data incorrect'
));
}
$infoname
=
isset
(
$info
[
'name'
])
?
$info
[
'name'
]
:
''
;
if
(
!
$infoname
||
!
preg_match
(
"/^[a-z]+$/i"
,
$infoname
)
||
$infoname
!=
$name
)
{
throw
new
Exception
(
__
(
'Addon info name incorrect'
));
}
$infoversion
=
isset
(
$info
[
'version'
])
?
$info
[
'version'
]
:
''
;
if
(
!
$infoversion
||
!
preg_match
(
"/^\d+\.\d+\.\d+$/i"
,
$infoversion
))
{
throw
new
Exception
(
__
(
'Addon info version incorrect'
));
}
$addonTmpDir
=
RUNTIME_PATH
.
'addons'
.
DS
;
if
(
!
is_dir
(
$addonTmpDir
))
{
@
mkdir
(
$addonTmpDir
,
0755
,
true
);
}
$addonFile
=
$addonTmpDir
.
$infoname
.
'-'
.
$infoversion
.
'.zip'
;
if
(
!
class_exists
(
'ZipArchive'
))
{
throw
new
Exception
(
__
(
'ZinArchive not install'
));
}
$zip
=
new
\ZipArchive
;
$zip
->
open
(
$addonFile
,
\ZipArchive
::
CREATE
|
\ZipArchive
::
OVERWRITE
);
$files
=
new
\RecursiveIteratorIterator
(
new
\RecursiveDirectoryIterator
(
$addonDir
),
\RecursiveIteratorIterator
::
LEAVES_ONLY
);
foreach
(
$files
as
$name
=>
$file
)
{
if
(
!
$file
->
isDir
())
{
$filePath
=
$file
->
getRealPath
();
$relativePath
=
substr
(
$filePath
,
strlen
(
$addonDir
));
if
(
!
in_array
(
$file
->
getFilename
(),
[
'.git'
,
'.DS_Store'
,
'Thumbs.db'
]))
{
$zip
->
addFile
(
$filePath
,
$relativePath
);
}
}
}
$zip
->
close
();
$output
->
info
(
"Package Successed!"
);
break
;
default
:
break
;
}
...
...
application/admin/command/Install/install.lock
0 → 100644
查看文件 @
4260ee1
1
\ No newline at end of file
...
...
application/admin/library/Auth.php
查看文件 @
4260ee1
...
...
@@ -126,7 +126,7 @@ class Auth extends \fast\Auth
$expiretime
=
time
()
+
$keeptime
;
$key
=
md5
(
md5
(
$this
->
id
)
.
md5
(
$keeptime
)
.
md5
(
$expiretime
)
.
$this
->
token
);
$data
=
[
$this
->
id
,
$keeptime
,
$expiretime
,
$key
];
Cookie
::
set
(
'keeplogin'
,
implode
(
'|'
,
$data
));
Cookie
::
set
(
'keeplogin'
,
implode
(
'|'
,
$data
)
,
86400
*
30
);
return
true
;
}
return
false
;
...
...
public/install.php
查看文件 @
4260ee1
...
...
@@ -77,7 +77,7 @@ else if (!extension_loaded("PDO"))
}
else
if
(
!
is_really_writable
(
$dbConfigFile
))
{
$errInfo
=
"当前权限不足,无法写入配置文件application/database.php"
;
$errInfo
=
'当前权限不足,无法写入配置文件application/database.php<br><a href="http://forum.fastadmin.net/?q=%E6%9D%83%E9%99%90%E4%B8%8D%E8%B6%B3" target="_blank">点击查看解决办法</a>'
;
}
else
{
...
...
@@ -86,7 +86,7 @@ else
{
if
(
!
is_dir
(
ROOT_PATH
.
$v
))
{
$errInfo
=
'当前代码
不完整,请加入QQ群(<a href="'
.
$link
[
'qqun'
]
.
'" target="_blank">636393962</a>),在群共享免费下载FastAdmin完整包后再尝试安装
'
;
$errInfo
=
'当前代码
仅包含核心代码,请前往官网下载完整包或资源包覆盖后再尝试安装,<a href="http://www.fastadmin.net/download.html?ref=install" target="_blank">立即前往下载</a>
'
;
break
;
}
}
...
...
@@ -95,7 +95,7 @@ else
if
(
!
$errInfo
&&
isset
(
$_SERVER
[
'REQUEST_METHOD'
])
&&
$_SERVER
[
'REQUEST_METHOD'
]
==
'POST'
)
{
$err
=
''
;
$mysqlHostname
=
isset
(
$_POST
[
'mysqlHost'
])
?
$_POST
[
'mysqlHost'
]
:
'
localhost
'
;
$mysqlHostname
=
isset
(
$_POST
[
'mysqlHost'
])
?
$_POST
[
'mysqlHost'
]
:
'
127.0.0.1
'
;
$mysqlHostport
=
3306
;
$hostArr
=
explode
(
':'
,
$mysqlHostname
);
if
(
count
(
$hostArr
)
>
1
)
...
...
@@ -330,7 +330,7 @@ if (!$errInfo && isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD']
<h2>
安装
<?php
echo
$sitename
;
?>
</h2>
<div>
<p>
若你在安装中遇到麻烦可点击
<a
href=
"
<?php
echo
$link
[
'doc'
];
?>
"
target=
"_blank"
>
安装文档
</a>
<a
href=
"
<?php
echo
$link
[
'forum'
];
?>
"
target=
"_blank"
>
交流
论坛
</a>
<a
href=
"
<?php
echo
$link
[
'qqun'
];
?>
"
>
QQ交流群
</a></p>
<p>
若你在安装中遇到麻烦可点击
<a
href=
"
<?php
echo
$link
[
'doc'
];
?>
"
target=
"_blank"
>
安装文档
</a>
<a
href=
"
<?php
echo
$link
[
'forum'
];
?>
"
target=
"_blank"
>
交流
社区
</a>
<a
href=
"
<?php
echo
$link
[
'qqun'
];
?>
"
>
QQ交流群
</a></p>
<!--<p>
<?php
echo
$sitename
;
?>
还支持在命令行php think install一键安装</p>-->
<form
method=
"post"
>
...
...
@@ -345,7 +345,7 @@ if (!$errInfo && isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD']
<div
class=
"form-group"
>
<div
class=
"form-field"
>
<label>
MySQL 数据库地址
</label>
<input
type=
"text"
name=
"mysqlHost"
value=
"
localhost
"
required=
""
>
<input
type=
"text"
name=
"mysqlHost"
value=
"
127.0.0.1
"
required=
""
>
</div>
<div
class=
"form-field"
>
...
...
public/uploads/.gitkeep
0 → 100644
查看文件 @
4260ee1
...
...
runtime/.gitkeep
0 → 100644
查看文件 @
4260ee1
...
...
请
注册
或
登录
后发表评论