Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
yii2_fecshop
提交
61968d79
Y
yii2_fecshop
项目概览
OpenDocCN
/
yii2_fecshop
通知
17
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
yii2_fecshop
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
61968d79
编写于
8月 27, 2019
作者:
T
Terry
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
extension market manager
上级
4ccc2dc9
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
329 addition
and
19 deletion
+329
-19
app/appadmin/modules/System/block/extensionmarket/Manager.php
...appadmin/modules/System/block/extensionmarket/Manager.php
+26
-4
app/appadmin/modules/System/controllers/ExtensionmarketController.php
.../modules/System/controllers/ExtensionmarketController.php
+171
-6
app/appadmin/theme/base/default/system/extensionmarket/manager.php
...min/theme/base/default/system/extensionmarket/manager.php
+132
-9
未找到文件。
app/appadmin/modules/System/block/extensionmarket/Manager.php
浏览文件 @
61968d79
...
...
@@ -22,7 +22,9 @@ use Yii;
*/
class
Manager
{
public
$nameSpaceArr
;
public
$versionArr
;
/**
* init param function ,execute in construct.
*/
...
...
@@ -36,17 +38,37 @@ class Manager
$addons
=
$info
[
'addons'
];
$coll
=
isset
(
$addons
[
'coll'
])
?
$addons
[
'coll'
]
:
[];
$count
=
isset
(
$addons
[
'count'
])
?
$addons
[
'count'
]
:
0
;
$this
->
initInstalledExtensions
();
return
[
'addon_list'
=>
$coll
,
'addon_count'
=>
$count
,
'installed_extensions'
=>
$this
->
getInstalledExtensions
(),
'installed_extensions_namespace'
=>
$this
->
nameSpaceArr
,
'versionArr'
=>
$this
->
versionArr
,
];
}
// namespace
public
function
ge
tInstalledExtensions
()
public
function
ini
tInstalledExtensions
()
{
return
Yii
::
$service
->
extension
->
getAllNamespaces
();
$filter
=
[
'asArray'
=>
true
,
'fetchAll'
=>
true
,
];
$data
=
Yii
::
$service
->
extension
->
coll
(
$filter
);
$arr
=
[];
$versionArr
=
[];
if
(
is_array
(
$data
[
'coll'
]))
{
foreach
(
$data
[
'coll'
]
as
$one
)
{
$namespace
=
$one
[
'namespace'
];
if
(
$namespace
)
{
$arr
[]
=
$namespace
;
$versionArr
[
$namespace
]
=
$one
[
'version'
];
}
}
}
$this
->
versionArr
=
$versionArr
;
$this
->
nameSpaceArr
=
$arr
;
}
...
...
app/appadmin/modules/System/controllers/ExtensionmarketController.php
浏览文件 @
61968d79
...
...
@@ -62,10 +62,11 @@ class ExtensionmarketController extends SystemController
{
$namespace
=
Yii
::
$app
->
request
->
get
(
'namespace'
);
$packageName
=
Yii
::
$app
->
request
->
get
(
'packageName'
);
$folderName
=
Yii
::
$app
->
request
->
get
(
'folderName'
);
$addonName
=
Yii
::
$app
->
request
->
get
(
'addonName'
);
// 进行zip文件下载到指定的文件路径
$zipFilePath
=
Yii
::
$service
->
extension
->
remoteService
->
downloadAddons
(
$namespace
,
$packageName
,
$addonName
);
$zipFilePath
=
Yii
::
$service
->
extension
->
remoteService
->
downloadAddons
(
$namespace
,
$packageName
,
$
folderName
,
$
addonName
);
if
(
!
$zipFilePath
)
{
echo
json_encode
([
'statusCode'
=>
'300'
,
...
...
@@ -82,7 +83,8 @@ class ExtensionmarketController extends SystemController
]);
exit
;
}
// 删除zip压缩包
unlink
(
$zipFilePath
);
// 将addons信息写入数据库
/*
...
...
@@ -95,8 +97,8 @@ class ExtensionmarketController extends SystemController
string(7) "fecmall"
["name"]=>
string(15) "furnilife_theme"
["
config_file_path
"]=>
string(26) "furnilife_theme
/config.php
"
["
folder
"]=>
string(26) "furnilife_theme"
["version"]=>
string(5) "1.0.0"
}
...
...
@@ -126,17 +128,180 @@ class ExtensionmarketController extends SystemController
]);
exit
;
}
// 进行插件的升级
if
(
!
Yii
::
$service
->
extension
->
administer
->
upgrade
(
$namespace
))
{
$errors
=
Yii
::
$service
->
helper
->
errors
->
get
();
echo
json_encode
([
'statusCode'
=>
'300'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
$errors
),
]);
exit
;
}
// 输入安装成功信息。
echo
json_encode
([
'statusCode'
=>
'200'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
'addons install success'
),
]);
exit
;
}
// 升级
public
function
actionUpgrade
()
{
$namespace
=
Yii
::
$app
->
request
->
get
(
'namespace'
);
$packageName
=
Yii
::
$app
->
request
->
get
(
'packageName'
);
$addonName
=
Yii
::
$app
->
request
->
get
(
'addonName'
);
$folderName
=
Yii
::
$app
->
request
->
get
(
'folderName'
);
// 进行zip文件下载到指定的文件路径
$zipFilePath
=
Yii
::
$service
->
extension
->
remoteService
->
downloadAddons
(
$namespace
,
$packageName
,
$folderName
,
$addonName
);
if
(
!
$zipFilePath
)
{
echo
json_encode
([
'statusCode'
=>
'300'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
'download remote addons fail'
),
]);
exit
;
}
// 进行zip文件的解压
$dest_dir
=
dirname
(
$zipFilePath
);
if
(
!
Yii
::
$service
->
helper
->
zipFile
->
unzip
(
$zipFilePath
,
$dest_dir
,
true
,
true
))
{
echo
json_encode
([
'statusCode'
=>
'300'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
'unzip addons fail'
),
]);
exit
;
}
// 删除zip压缩包
unlink
(
$zipFilePath
);
// 将addons信息写入数据库
/*
array(6) {
["id"]=>
string(2) "50"
["namespace"]=>
string(13) "fectfurnilife"
["package"]=>
string(7) "fecmall"
["name"]=>
string(15) "furnilife_theme"
["config_file_path"]=>
string(26) "furnilife_theme/config.php"
["version"]=>
string(5) "1.0.0"
}
*/
$data
=
Yii
::
$service
->
extension
->
remoteService
->
getAddonsInfoByNamespace
(
$namespace
);
if
(
!
is_array
(
$data
))
{
echo
json_encode
([
'statusCode'
=>
'300'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
'get remote addons info by namespace fail'
),
]);
exit
;
}
// 将远程获取的数据,保存到数据库中。
if
(
!
Yii
::
$service
->
extension
->
upgradeInit
(
$data
)){
echo
json_encode
([
'statusCode'
=>
'300'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
'init new install addon to db fail'
),
]);
exit
;
}
// 进行插件的升级
if
(
!
Yii
::
$service
->
extension
->
administer
->
upgrade
(
$namespace
))
{
$errors
=
Yii
::
$service
->
helper
->
errors
->
get
();
echo
json_encode
([
'statusCode'
=>
'300'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
$errors
),
]);
exit
;
}
// 输入安装成功信息。
echo
json_encode
([
'statusCode'
=>
'200'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
'addons install success'
),
]);
exit
;
}
// 卸载
public
function
actionUninstall
()
{
$namespace
=
Yii
::
$app
->
request
->
get
(
'namespace'
);
$packageName
=
Yii
::
$app
->
request
->
get
(
'packageName'
);
$addonName
=
Yii
::
$app
->
request
->
get
(
'addonName'
);
// 进行zip文件下载到指定的文件路径
$zipFilePath
=
Yii
::
$service
->
extension
->
remoteService
->
downloadAddons
(
$namespace
,
$packageName
,
$addonName
);
if
(
!
$zipFilePath
)
{
echo
json_encode
([
'statusCode'
=>
'300'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
'download remote addons fail'
),
]);
exit
;
}
// 进行zip文件的解压
$dest_dir
=
dirname
(
$zipFilePath
);
if
(
!
Yii
::
$service
->
helper
->
zipFile
->
unzip
(
$zipFilePath
,
$dest_dir
,
true
,
true
))
{
echo
json_encode
([
'statusCode'
=>
'300'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
'unzip addons fail'
),
]);
exit
;
}
// 删除zip压缩包
unlink
(
$zipFilePath
);
// 将addons信息写入数据库
/*
array(6) {
["id"]=>
string(2) "50"
["namespace"]=>
string(13) "fectfurnilife"
["package"]=>
string(7) "fecmall"
["name"]=>
string(15) "furnilife_theme"
["config_file_path"]=>
string(26) "furnilife_theme/config.php"
["version"]=>
string(5) "1.0.0"
}
*/
$data
=
Yii
::
$service
->
extension
->
remoteService
->
getAddonsInfoByNamespace
(
$namespace
);
if
(
!
is_array
(
$data
))
{
echo
json_encode
([
'statusCode'
=>
'300'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
'get remote addons info by namespace fail'
),
]);
exit
;
}
// 将远程获取的数据,保存到数据库中。
if
(
!
Yii
::
$service
->
extension
->
upgradeInit
(
$data
)){
echo
json_encode
([
'statusCode'
=>
'300'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
'init new install addon to db fail'
),
]);
exit
;
}
// 进行插件的升级
if
(
!
Yii
::
$service
->
extension
->
administer
->
upgrade
(
$namespace
))
{
$errors
=
Yii
::
$service
->
helper
->
errors
->
get
();
echo
json_encode
([
'statusCode'
=>
'300'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
$errors
),
]);
exit
;
}
// 输入安装成功信息。
echo
json_encode
([
'statusCode'
=>
'200'
,
'message'
=>
Yii
::
$service
->
page
->
translate
->
__
(
'addons install success'
),
]);
exit
;
}
/*
public function actionManagereditsave()
{
...
...
app/appadmin/theme/base/default/system/extensionmarket/manager.php
浏览文件 @
61968d79
...
...
@@ -27,31 +27,56 @@ use fec\helpers\CRequest;
<img
style=
""
src=
"
<?=
$addon_one
[
'addon_info'
][
'image'
]
?>
"
/>
<h2
style=
"margin10px auto"
>
<?=
$addon_one
[
'addon_info'
][
'name'
]
?>
</h2>
</div>
<div>
<div
class=
"clear"
></div>
<div
style=
"margin-top:60px;"
>
<?php
$namespace
=
$addon_one
[
'addon_info'
][
'namespace'
];
if
(
in_array
(
$namespace
,
$installed_extensions
))
:
if
(
in_array
(
$namespace
,
$installed_extensions_namespace
))
:
if
(
version_compare
(
$versionArr
[
$namespace
],
$addon_one
[
'addon_info'
][
'version'
]
,
'<'
)
)
:
?>
<a
class=
"abutton-update"
href=
"javascript:void(0)"
>
升级
</a>
<a
class=
"abutton-update"
href=
"javascript:void(0)"
addonName=
"
<?=
$addon_one
[
'addon_info'
][
'name'
]
?>
"
rel=
"
<?=
$namespace
?>
"
folderName=
"
<?=
$addon_one
[
'addon_info'
][
'folder'
]
?>
"
packageName=
"
<?=
$addon_one
[
'addon_info'
][
'package'
]
?>
"
>
需要升级
</a>
<?php
else
:
?>
<a
class=
"abutton-normal"
href=
"javascript:void(0)"
>
最新版本
</a>
<?php
endif
;
?>
<?php
else
:
?>
<a
class=
"abutton"
href=
"javascript:void(0)"
addonName=
"
<?=
$addon_one
[
'addon_info'
][
'name'
]
?>
"
rel=
"
<?=
$namespace
?>
"
packageName=
"
<?=
$addon_one
[
'addon_info'
][
'package'
]
?>
"
>
安装
</a>
<a
class=
"abutton"
href=
"javascript:void(0)"
addonName=
"
<?=
$addon_one
[
'addon_info'
][
'name'
]
?>
"
rel=
"
<?=
$namespace
?>
"
folderName=
"
<?=
$addon_one
[
'addon_info'
][
'folder'
]
?>
"
packageName=
"
<?=
$addon_one
[
'addon_info'
][
'package'
]
?>
"
>
点击
安装
</a>
<?php
endif
;
?>
<div
class=
"version_info"
>
<div
class=
""
>
最高版本:
<?=
$addon_one
[
'addon_info'
][
'version'
]
?>
</div>
<?php
if
(
$versionArr
[
$namespace
])
:
?>
<div
style=
"margin-top:5px;"
>
当前版本:
<?=
$versionArr
[
$namespace
]
?>
</div>
<?php
endif
;
?>
</div>
<span
class=
"version_info"
>
最高版本:
<?=
$addon_one
[
'addon_info'
][
'version'
]
?>
</span>
</div>
<a
href=
"javascript:void(0)"
class=
"removeAddon"
title=
"卸载应用"
addonName=
"
<?=
$addon_one
[
'addon_info'
][
'name'
]
?>
"
rel=
"
<?=
$namespace
?>
"
folderName=
"
<?=
$addon_one
[
'addon_info'
][
'folder'
]
?>
"
packageName=
"
<?=
$addon_one
[
'addon_info'
][
'package'
]
?>
"
>
<i
class=
"fa fa-trash-o"
></i>
</a>
</li>
<?php
endforeach
;
?>
</ul>
<?php
endif
;
?>
</div>
<a
class=
"reflushaaa"
href=
"javascript:void(0)"
>
刷新页面
</a>
</div>
<style>
.removeAddon
{
display
:
block
;
bottom
:
10px
;
position
:
absolute
;
right
:
10px
;
font-size
:
18px
;
color
:
#999
;
}
.removeAddon
:hover
{
color
:
#333
;
}
.version_info
{
float
:
right
;
...
...
@@ -59,10 +84,11 @@ use fec\helpers\CRequest;
}
.addon_li
{
width
:
280px
;
height
:
3
2
0px
;
height
:
3
9
0px
;
display
:
inline-block
;
margin
:
10px
;
border
:
1px
solid
#ccc
;
position
:
relative
;
}
.addon_d
{
width
:
230px
;
...
...
@@ -91,6 +117,11 @@ use fec\helpers\CRequest;
padding
:
5px
10px
;
}
.abutton-normal
{
background
:
#337ab7
!important
;
color
:
#fff
;
padding
:
5px
10px
;
}
.abutton
:hover
{
...
...
@@ -115,10 +146,12 @@ use fec\helpers\CRequest;
namespace
=
$
(
this
).
attr
(
'
rel
'
);
var
packageName
=
$
(
this
).
attr
(
'
packageName
'
);
var
addonName
=
$
(
this
).
attr
(
'
addonName
'
);
var
folderName
=
$
(
this
).
attr
(
'
folderName
'
);
var
url
=
"
<?=
Yii
::
$service
->
url
->
getUrl
(
"system/extensionmarket/install"
);
?>
"
;
url
+=
'
?namespace=
'
+
namespace
;
url
+=
'
&packageName=
'
+
packageName
;
url
+=
'
&folderName=
'
+
folderName
;
url
+=
'
&addonName=
'
+
encodeURIComponent
(
addonName
);
$
.
ajax
({
...
...
@@ -149,8 +182,98 @@ use fec\helpers\CRequest;
});
$
(
document
).
on
(
"
click
"
,
"
.removeAddon
"
,
function
(){
var
self
=
this
;
alertMsg
.
confirm
(
"
您确定删除该应用吗?
"
,
{
okCall
:
function
(){
namespace
=
$
(
self
).
attr
(
'
rel
'
);
var
packageName
=
$
(
self
).
attr
(
'
packageName
'
);
var
addonName
=
$
(
self
).
attr
(
'
addonName
'
);
var
folderName
=
$
(
this
).
attr
(
'
folderName
'
);
var
url
=
"
<?=
Yii
::
$service
->
url
->
getUrl
(
"system/extensionmarket/uninstall"
);
?>
"
;
url
+=
'
?namespace=
'
+
namespace
;
url
+=
'
&packageName=
'
+
packageName
;
url
+=
'
&folderName=
'
+
folderName
;
url
+=
'
&addonName=
'
+
encodeURIComponent
(
addonName
);
$
.
ajax
({
url
:
url
,
async
:
true
,
timeout
:
800000
,
dataType
:
'
json
'
,
type
:
'
get
'
,
success
:
function
(
data
,
textStatus
){
if
(
data
.
statusCode
==
200
){
//alert(data.statusCode);
message
=
data
.
message
;
alertMsg
.
correct
(
message
);
navTab
.
reloadFlag
(
'
page1
'
);
}
else
if
(
data
.
statusCode
==
300
){
message
=
data
.
message
;
alertMsg
.
error
(
message
)
}
else
{
alertMsg
.
error
(
"
错误
"
);
}
//
},
error
:
function
(){
}
});
},
cancelCall
:
function
()
{
}
});
});
$
(
document
).
on
(
"
click
"
,
"
.abutton-update
"
,
function
(){
namespace
=
$
(
this
).
attr
(
'
rel
'
);
var
packageName
=
$
(
this
).
attr
(
'
packageName
'
);
var
addonName
=
$
(
this
).
attr
(
'
addonName
'
);
var
folderName
=
$
(
this
).
attr
(
'
folderName
'
);
var
url
=
"
<?=
Yii
::
$service
->
url
->
getUrl
(
"system/extensionmarket/upgrade"
);
?>
"
;
url
+=
'
?namespace=
'
+
namespace
;
url
+=
'
&packageName=
'
+
packageName
;
url
+=
'
&folderName=
'
+
folderName
;
url
+=
'
&addonName=
'
+
encodeURIComponent
(
addonName
);
$
.
ajax
({
url
:
url
,
async
:
true
,
timeout
:
800000
,
dataType
:
'
json
'
,
type
:
'
get
'
,
success
:
function
(
data
,
textStatus
){
if
(
data
.
statusCode
==
200
){
//alert(data.statusCode);
message
=
data
.
message
;
alertMsg
.
correct
(
message
);
navTab
.
reloadFlag
(
'
page1
'
);
}
else
if
(
data
.
statusCode
==
300
){
message
=
data
.
message
;
alertMsg
.
error
(
message
)
}
else
{
alertMsg
.
error
(
"
错误
"
);
}
//
},
error
:
function
(){
}
});
});
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录