Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ModStart
ModStartCMS
提交
40aac0af
ModStartCMS
项目概览
ModStart
/
ModStartCMS
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ModStartCMS
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
40aac0af
编写于
12月 29, 2021
作者:
ModStart
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
develop
上级
95c0dd3b
变更
20
展开全部
隐藏空白更改
内联
并排
Showing
20 changed file
with
88 addition
and
24 deletion
+88
-24
module/Member/Admin/Controller/ConfigController.php
module/Member/Admin/Controller/ConfigController.php
+11
-3
module/Member/Admin/Controller/MemberGroupController.php
module/Member/Admin/Controller/MemberGroupController.php
+1
-0
module/Member/Docs/release/2.2.0.md
module/Member/Docs/release/2.2.0.md
+3
-0
module/Member/Docs/release/2.3.0.md
module/Member/Docs/release/2.3.0.md
+4
-0
module/Member/View/pc/member/page.blade.php
module/Member/View/pc/member/page.blade.php
+5
-5
module/Member/View/pc/register.blade.php
module/Member/View/pc/register.blade.php
+7
-2
module/Member/Web/Controller/MemberAddressController.php
module/Member/Web/Controller/MemberAddressController.php
+8
-1
module/Member/Web/Controller/PageController.php
module/Member/Web/Controller/PageController.php
+12
-1
module/Member/Web/routes.php
module/Member/Web/routes.php
+1
-0
module/Member/config.json
module/Member/config.json
+1
-1
module/ModuleStore/Asset/entry/moduleStore.js
module/ModuleStore/Asset/entry/moduleStore.js
+1
-1
module/ModuleStore/Docs/release/1.4.0.md
module/ModuleStore/Docs/release/1.4.0.md
+3
-0
module/ModuleStore/Util/ModuleStoreUtil.php
module/ModuleStore/Util/ModuleStoreUtil.php
+9
-3
module/ModuleStore/resources/asset/src/pages/ModuleStore.vue
module/ModuleStore/resources/asset/src/pages/ModuleStore.vue
+12
-1
module/Vendor/Docs/release/2.3.0.md
module/Vendor/Docs/release/2.3.0.md
+1
-1
public/vendor/ModuleDeveloper/entry/moduleDeveloper.js
public/vendor/ModuleDeveloper/entry/moduleDeveloper.js
+1
-1
public/vendor/ModuleStore/entry/moduleStore.js
public/vendor/ModuleStore/entry/moduleStore.js
+1
-1
vendor/modstart/modstart/src/Data/DataManager.php
vendor/modstart/modstart/src/Data/DataManager.php
+1
-1
vendor/modstart/modstart/src/Data/UeditorManager.php
vendor/modstart/modstart/src/Data/UeditorManager.php
+2
-1
vendor/modstart/modstart/src/Field/Html.php
vendor/modstart/modstart/src/Field/Html.php
+4
-1
未找到文件。
module/Member/Admin/Controller/ConfigController.php
浏览文件 @
40aac0af
...
@@ -33,9 +33,17 @@ class ConfigController extends Controller
...
@@ -33,9 +33,17 @@ class ConfigController extends Controller
public
function
agreement
(
AdminConfigBuilder
$builder
)
public
function
agreement
(
AdminConfigBuilder
$builder
)
{
{
$builder
->
pageTitle
(
'用户协议'
);
$builder
->
pageTitle
(
'用户协议'
);
$builder
->
switch
(
'Member_AgreementEnable'
,
'用户使用协议开启'
);
$builder
->
switch
(
'Member_AgreementEnable'
,
'用户使用协议开启'
)
$builder
->
text
(
'Member_AgreementTitle'
,
'用户使用协议标题'
)
->
help
(
'默认为 用户使用协议'
);
->
when
(
'='
,
true
,
function
(
$builder
)
{
$builder
->
richHtml
(
'Member_AgreementContent'
,
'用户使用协议内容'
);
$builder
->
text
(
'Member_AgreementTitle'
,
'用户使用协议标题'
)
->
help
(
'默认为 用户使用协议'
);
$builder
->
richHtml
(
'Member_AgreementContent'
,
'用户使用协议内容'
);
});
$builder
->
switch
(
'Member_PrivacyEnable'
,
'用户隐私协议开启'
)
->
when
(
'='
,
true
,
function
(
$builder
)
{
$builder
->
text
(
'Member_PrivacyTitle'
,
'用户隐私协议标题'
)
->
help
(
'默认为 用户隐私协议'
);
$builder
->
richHtml
(
'Member_PrivacyContent'
,
'用户隐私协议内容'
);
});
$builder
->
formClass
(
'wide'
);
$builder
->
formClass
(
'wide'
);
return
$builder
->
perform
();
return
$builder
->
perform
();
}
}
...
...
module/Member/Admin/Controller/MemberGroupController.php
浏览文件 @
40aac0af
...
@@ -41,5 +41,6 @@ class MemberGroupController extends Controller
...
@@ -41,5 +41,6 @@ class MemberGroupController extends Controller
->
hookSaved
(
function
(
Form
$form
)
{
->
hookSaved
(
function
(
Form
$form
)
{
MemberGroupUtil
::
clearCache
();
MemberGroupUtil
::
clearCache
();
});
});
$builder
->
repository
()
->
setSortColumn
(
'id'
);
}
}
}
}
module/Member/Docs/release/2.2.0.md
浏览文件 @
40aac0af
用户隐私协议配置,用户系统上周增长报表
---
-
新增:用户系统上周增长报表
-
新增:用户系统上周增长报表
-
新增:用户隐私协议配置
module/Member/Docs/release/2.3.0.md
0 → 100644
浏览文件 @
40aac0af
-
优化:地址选择模块依赖提示
-
修复:用户分组编辑排序字段问题
module/Member/View/pc/member/
agreement
.blade.php
→
module/Member/View/pc/member/
page
.blade.php
浏览文件 @
40aac0af
@
extends
(
$_viewFrame
)
@
extends
(
$_viewFrame
)
@
section
(
'pageTitleMain'
){{
modstart_config
(
'Member_AgreementTitle'
,
'用户使用协议'
)
}}
@
endsection
@
section
(
'pageTitleMain'
){{
$pageTitle
}}
@
endsection
@
section
(
'pageKeywords'
)
用户使用协议
@
endsection
@
section
(
'pageKeywords'
)
{{
$pageTitle
}}
@
endsection
@
section
(
'pageDescription'
)
用户使用协议
@
endsection
@
section
(
'pageDescription'
)
{{
$pageTitle
}}
@
endsection
@
section
(
'body'
)
@
section
(
'body'
)
...
@@ -11,10 +11,10 @@
...
@@ -11,10 +11,10 @@
<
div
class
=
"head"
></
div
>
<
div
class
=
"head"
></
div
>
<
div
class
=
"body"
>
<
div
class
=
"body"
>
<
div
class
=
"ub-article"
>
<
div
class
=
"ub-article"
>
<
h1
class
=
"ub-text-center"
>
{{
modstart_config
(
'Member_AgreementTitle'
,
'用户使用协议'
)
}}
</
h1
>
<
h1
class
=
"ub-text-center"
>
{{
$pageTitle
}}
</
h1
>
<
div
class
=
"attr"
></
div
>
<
div
class
=
"attr"
></
div
>
<
div
class
=
"content ub-html"
>
<
div
class
=
"content ub-html"
>
{
!!
modstart_config
(
'Member_AgreementContent'
)
!!
}
{
!!
$pageContent
!!
}
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
...
...
module/Member/View/pc/register.blade.php
浏览文件 @
40aac0af
...
@@ -159,11 +159,16 @@
...
@@ -159,11 +159,16 @@
<
button
type
=
"submit"
class
=
"btn btn-primary btn-lg btn-block"
>
提交注册
</
button
>
<
button
type
=
"submit"
class
=
"btn btn-primary btn-lg btn-block"
>
提交注册
</
button
>
</
div
>
</
div
>
</
div
>
</
div
>
@
if
(
modstart_config
(
'Member_AgreementEnable'
,
false
))
@
if
(
modstart_config
(
'Member_AgreementEnable'
,
false
)
||
modstart_config
(
'Member_PrivacyEnable'
,
false
)
)
<
div
class
=
"line"
>
<
div
class
=
"line"
>
<
div
class
=
"field"
>
<
div
class
=
"field"
>
<
input
type
=
"checkbox"
name
=
"agreement"
value
=
"1"
checked
class
=
"tw-align-middle"
/>
<
input
type
=
"checkbox"
name
=
"agreement"
value
=
"1"
checked
class
=
"tw-align-middle"
/>
<
a
href
=
"
{
{modstart_web_url('member/agreement')}
}
"
target
=
"_blank"
>
{{
modstart_config
(
'Member_AgreementTitle'
,
'用户使用协议'
)}}
</
a
>
@
if
(
modstart_config
(
'Member_AgreementEnable'
,
false
))
<
a
href
=
"
{
{modstart_web_url('member/agreement')}
}
"
target
=
"_blank"
>
{{
modstart_config
(
'Member_AgreementTitle'
,
'用户使用协议'
)}}
</
a
>
@
endif
@
if
(
modstart_config
(
'Member_PrivacyEnable'
,
false
))
<
a
href
=
"
{
{modstart_web_url('member/privacy')}
}
"
target
=
"_blank"
>
{{
modstart_config
(
'Member_PrivacyTitle'
,
'用户隐私协议'
)}}
</
a
>
@
endif
</
div
>
</
div
>
</
div
>
</
div
>
@
endif
@
endif
...
...
module/Member/Web/Controller/MemberAddressController.php
浏览文件 @
40aac0af
...
@@ -18,6 +18,7 @@ use ModStart\Field\AutoRenderedFieldValue;
...
@@ -18,6 +18,7 @@ use ModStart\Field\AutoRenderedFieldValue;
use
ModStart\Form\Form
;
use
ModStart\Form\Form
;
use
ModStart\Grid\Grid
;
use
ModStart\Grid\Grid
;
use
ModStart\Grid\GridFilter
;
use
ModStart\Grid\GridFilter
;
use
ModStart\Module\ModuleManager
;
use
ModStart\Repository\Filter\RepositoryFilter
;
use
ModStart\Repository\Filter\RepositoryFilter
;
use
Module\Member\Auth\MemberUser
;
use
Module\Member\Auth\MemberUser
;
use
Module\Member\Support\MemberLoginCheck
;
use
Module\Member\Support\MemberLoginCheck
;
...
@@ -68,7 +69,13 @@ class MemberAddressController extends MemberFrameController implements MemberLog
...
@@ -68,7 +69,13 @@ class MemberAddressController extends MemberFrameController implements MemberLog
$builder
->
pageTitle
((
$id
?
'修改'
:
'增加'
)
.
'地址'
);
$builder
->
pageTitle
((
$id
?
'修改'
:
'增加'
)
.
'地址'
);
$builder
->
text
(
'name'
,
'姓名'
)
->
required
();
$builder
->
text
(
'name'
,
'姓名'
)
->
required
();
$builder
->
text
(
'phone'
,
'手机号'
)
->
required
();
$builder
->
text
(
'phone'
,
'手机号'
)
->
required
();
$builder
->
areaChina
(
'area'
,
'省市地区'
)
->
required
();
if
(
ModuleManager
::
isModuleEnabled
(
'Area'
))
{
$builder
->
areaChina
(
'area'
,
'省市地区'
)
->
required
();
}
else
{
$html
=
"<div class='tw-bg-gray-200 tw-rounded tw-px-2'>省市地区需要依赖 <a href='https://modstart.com/m/Area' target='_blank'>Area</a> 模块</div>"
;
$builder
->
html
(
'area'
,
'省市地区'
)
->
html
(
$html
)
->
addable
(
true
)
->
required
();
}
$builder
->
textarea
(
'detail'
,
'详细地址'
)
->
required
();
$builder
->
textarea
(
'detail'
,
'详细地址'
)
->
required
();
$builder
->
text
(
'post'
,
'邮政编码'
);
$builder
->
text
(
'post'
,
'邮政编码'
);
return
$builder
->
perform
(
ArrayUtil
::
keepKeys
(
$record
,
[
'name'
,
'phone'
,
'area'
,
'detail'
,
'post'
]),
return
$builder
->
perform
(
ArrayUtil
::
keepKeys
(
$record
,
[
'name'
,
'phone'
,
'area'
,
'detail'
,
'post'
]),
...
...
module/Member/Web/Controller/PageController.php
浏览文件 @
40aac0af
...
@@ -10,6 +10,17 @@ class PageController extends ModuleBaseController
...
@@ -10,6 +10,17 @@ class PageController extends ModuleBaseController
{
{
public
function
agreement
()
public
function
agreement
()
{
{
return
$this
->
view
(
'member.agreement'
);
return
$this
->
view
(
'member.page'
,
[
'pageTitle'
=>
modstart_config
(
'Member_AgreementTitle'
),
'pageContent'
=>
modstart_config
(
'Member_AgreementContent'
),
]);
}
public
function
privacy
()
{
return
$this
->
view
(
'member.page'
,
[
'pageTitle'
=>
modstart_config
(
'Member_PrivacyTitle'
),
'pageContent'
=>
modstart_config
(
'Member_PrivacyContent'
),
]);
}
}
}
}
module/Member/Web/routes.php
浏览文件 @
40aac0af
...
@@ -7,6 +7,7 @@ $router->group([
...
@@ -7,6 +7,7 @@ $router->group([
],
function
()
use
(
$router
)
{
],
function
()
use
(
$router
)
{
$router
->
match
([
'get'
,
'post'
],
'member/agreement'
,
'PageController@agreement'
);
$router
->
match
([
'get'
,
'post'
],
'member/agreement'
,
'PageController@agreement'
);
$router
->
match
([
'get'
,
'post'
],
'member/privacy'
,
'PageController@privacy'
);
$router
->
match
([
'get'
,
'post'
],
'login'
,
'AuthController@login'
);
$router
->
match
([
'get'
,
'post'
],
'login'
,
'AuthController@login'
);
$router
->
match
([
'get'
,
'post'
],
'login/captcha'
,
'AuthController@loginCaptcha'
);
$router
->
match
([
'get'
,
'post'
],
'login/captcha'
,
'AuthController@loginCaptcha'
);
...
...
module/Member/config.json
浏览文件 @
40aac0af
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
"require"
:
[
"require"
:
[
"Vendor:>=1.9.0"
"Vendor:>=1.9.0"
],
],
"version"
:
"2.
1
.0"
,
"version"
:
"2.
2
.0"
,
"modstartVersion"
:
">=1.4.0"
,
"modstartVersion"
:
">=1.4.0"
,
"author"
:
"官方"
,
"author"
:
"官方"
,
"description"
:
"提供基础的用户管理服务"
,
"description"
:
"提供基础的用户管理服务"
,
...
...
module/ModuleStore/Asset/entry/moduleStore.js
浏览文件 @
40aac0af
此差异已折叠。
点击以展开。
module/ModuleStore/Docs/release/1.4.0.md
浏览文件 @
40aac0af
模块预检失败增加查看链接
---
-
新增:模块白名单安装控制
-
新增:模块白名单安装控制
-
优化:模块预检失败增加查看链接
module/ModuleStore/Util/ModuleStoreUtil.php
浏览文件 @
40aac0af
...
@@ -7,6 +7,7 @@ namespace Module\ModuleStore\Util;
...
@@ -7,6 +7,7 @@ namespace Module\ModuleStore\Util;
use
Chumper\Zipper\Zipper
;
use
Chumper\Zipper\Zipper
;
use
Illuminate\Support\Facades\Cache
;
use
Illuminate\Support\Facades\Cache
;
use
ModStart\Core\Exception\BizException
;
use
ModStart\Core\Exception\BizException
;
use
ModStart\Core\Input\InputPackage
;
use
ModStart\Core\Input\Response
;
use
ModStart\Core\Input\Response
;
use
ModStart\Core\Util\CurlUtil
;
use
ModStart\Core\Util\CurlUtil
;
use
ModStart\Core\Util\FileUtil
;
use
ModStart\Core\Util\FileUtil
;
...
@@ -20,8 +21,13 @@ class ModuleStoreUtil
...
@@ -20,8 +21,13 @@ class ModuleStoreUtil
public
static
function
remoteModuleData
()
public
static
function
remoteModuleData
()
{
{
return
Cache
::
remember
(
'ModuleStore_Modules'
,
60
,
function
()
{
$input
=
InputPackage
::
buildFromInput
();
return
CurlUtil
::
getJSONData
(
self
::
REMOTE_BASE
.
'/api/store/module'
);
$memberUserId
=
$input
->
getInteger
(
'memberUserId'
);
$apiToken
=
$input
->
getTrimString
(
'apiToken'
);
return
Cache
::
remember
(
'ModuleStore_Modules:'
.
$memberUserId
,
60
,
function
()
use
(
$apiToken
)
{
return
CurlUtil
::
getJSONData
(
self
::
REMOTE_BASE
.
'/api/store/module'
,
[
'api_token'
=>
$apiToken
,
]);
});
});
}
}
...
@@ -140,7 +146,7 @@ class ModuleStoreUtil
...
@@ -140,7 +146,7 @@ class ModuleStoreUtil
}
}
}
else
{
}
else
{
$require
[
'success'
]
=
false
;
$require
[
'success'
]
=
false
;
$require
[
'resolve'
]
=
"请先安装
$require[name]
"
;
$require
[
'resolve'
]
=
"请先安装
$require[name]
<a href='https://modstart.com/m/
$m
' class='ub-text-white tw-underline' target='_blank'>[点击查看]</a>
"
;
}
}
$requires
[]
=
$require
;
$requires
[]
=
$require
;
}
}
...
...
module/ModuleStore/resources/asset/src/pages/ModuleStore.vue
浏览文件 @
40aac0af
...
@@ -431,6 +431,14 @@ export default {
...
@@ -431,6 +431,14 @@ export default {
installVersionModule
:
null
,
installVersionModule
:
null
,
}
}
},
},
watch
:
{
memberUser
:
{
handler
(
n
,
o
)
{
this
.
doLoad
()
},
deep
:
true
}
},
computed
:
{
computed
:
{
filterModules
()
{
filterModules
()
{
const
results
=
this
.
modules
.
filter
(
module
=>
{
const
results
=
this
.
modules
.
filter
(
module
=>
{
...
@@ -609,7 +617,10 @@ export default {
...
@@ -609,7 +617,10 @@ export default {
}
}
},
},
doLoad
()
{
doLoad
()
{
this
.
$api
.
post
(
this
.
$url
.
admin
(
'
module_store/all
'
),
{},
res
=>
{
this
.
$api
.
post
(
this
.
$url
.
admin
(
'
module_store/all
'
),
{
memberUserId
:
this
.
memberUser
.
id
,
apiToken
:
this
.
storeApiToken
,
},
res
=>
{
this
.
loading
=
false
this
.
loading
=
false
this
.
categories
=
res
.
data
.
categories
this
.
categories
=
res
.
data
.
categories
this
.
types
=
res
.
data
.
types
this
.
types
=
res
.
data
.
types
...
...
module/Vendor/Docs/release/2.3.0.md
浏览文件 @
40aac0af
IDManager新增清除随机Key功能
---
---
...
...
public/vendor/ModuleDeveloper/entry/moduleDeveloper.js
浏览文件 @
40aac0af
此差异已折叠。
点击以展开。
public/vendor/ModuleStore/entry/moduleStore.js
浏览文件 @
40aac0af
此差异已折叠。
点击以展开。
vendor/modstart/modstart/src/Data/DataManager.php
浏览文件 @
40aac0af
...
@@ -395,7 +395,7 @@ class DataManager
...
@@ -395,7 +395,7 @@ class DataManager
/**
/**
* 准备文件到本地可用
* 准备文件到本地可用
* @param $path string 文件路径 /data/xxxxxxx.xxx /data_temp/xxxxxxx.xxx http://www.example.com/data/xxxxx.xxx
* @param $path string 文件路径 /data/xxxxxxx.xxx
data_temp/xxxxxx.xxx
/data_temp/xxxxxxx.xxx http://www.example.com/data/xxxxx.xxx
* @param $option
* @param $option
* @return array
* @return array
*/
*/
...
...
vendor/modstart/modstart/src/Data/UeditorManager.php
浏览文件 @
40aac0af
...
@@ -130,7 +130,8 @@ class UeditorManager
...
@@ -130,7 +130,8 @@ class UeditorManager
if
(
!
$ignoreCatch
&&
preg_match
(
'/^(http|ftp|https):\\/\\//i'
,
$f
))
{
if
(
!
$ignoreCatch
&&
preg_match
(
'/^(http|ftp|https):\\/\\//i'
,
$f
))
{
$ext
=
FileUtil
::
extension
(
$f
);
$ext
=
FileUtil
::
extension
(
$f
);
if
(
in_array
(
'.'
.
$ext
,
$config
[
'catcherAllowFiles'
]))
{
if
(
in_array
(
'.'
.
$ext
,
$config
[
'catcherAllowFiles'
]))
{
if
(
$imageContent
=
CurlUtil
::
getRaw
(
$f
))
{
$imageContent
=
CurlUtil
::
getRaw
(
$f
);
if
(
$imageContent
)
{
$ret
=
DataManager
::
upload
(
'image'
,
L
(
'Image'
)
.
'.'
.
$ext
,
$imageContent
,
$option
);
$ret
=
DataManager
::
upload
(
'image'
,
L
(
'Image'
)
.
'.'
.
$ext
,
$imageContent
,
$option
);
if
(
$ret
[
'code'
])
{
if
(
$ret
[
'code'
])
{
$ret
[
'state'
]
=
$ret
[
'msg'
];
$ret
[
'state'
]
=
$ret
[
'msg'
];
...
...
vendor/modstart/modstart/src/Field/Html.php
浏览文件 @
40aac0af
...
@@ -10,7 +10,7 @@ class Html extends AbstractField
...
@@ -10,7 +10,7 @@ class Html extends AbstractField
{
{
protected
$html
=
''
;
protected
$html
=
''
;
protected
$plain
=
false
;
protected
$plain
=
false
;
protected
$isLayoutField
=
true
;
protected
$isLayoutField
=
true
;
public
function
html
(
$html
)
public
function
html
(
$html
)
{
{
...
@@ -34,9 +34,12 @@ class Html extends AbstractField
...
@@ -34,9 +34,12 @@ class Html extends AbstractField
if
(
$this
->
plain
)
{
if
(
$this
->
plain
)
{
return
$this
->
html
;
return
$this
->
html
;
}
}
$rules
=
$this
->
rules
();
$requiredRuleHtml
=
str_contains
(
$rules
,
'required'
)
?
'<span class="ub-text-danger ub-text-bold">*</span>'
:
''
;
return
<<<EOT
return
<<<EOT
<div class="line">
<div class="line">
<div class="label">
<div class="label">
{$requiredRuleHtml}
{$this->label}:
{$this->label}:
</div>
</div>
<div class="field">
<div class="field">
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录