Skip to content

Commit 0490328

Browse files
committed
新增:v8.0.0发布
1 parent 15f6cc8 commit 0490328

107 files changed

Lines changed: 2928 additions & 1041 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/Constant/AppConstant.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ class AppConstant
66
{
77
const APP = 'cms9';
88
const APP_NAME = 'ModStartCMS9';
9-
const VERSION = '7.9.0';
9+
const VERSION = '8.0.0';
1010
}

module/Cms/Admin/Controller/ContentController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ function (Form $form) use ($catOptions) {
399399
}
400400
CmsRecommendBiz::itemUpdate(
401401
$record['id'],
402-
$recordValue['modelId'],
402+
$record['modelId'],
403403
$recommendTags
404404
);
405405
} else {

module/Cms/Docs/release.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
- 新增:CMS备份增加内容区块模块处理逻辑
99
- 新增:内容管理增加一键复制功能
1010
- 新增:数据库模型 CmsCat 和 CmsContent
11+
- 新增:列表增加自定义字段筛选过滤字段,支持自定义字段筛选
1112
- 优化:系统响应默认处理函数优化处理方式
1213
- 优化:CMS自定义字段编辑标识每次刷新问题
1314
- 优化:前端表单提交字段类型数组自动转换检测

module/Cms/View/admin/model/fieldEdit.blade.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,9 @@
7272
</div>
7373
<div class="line">
7474
<div class="label">
75-
后台列表搜索
75+
列表搜索
76+
<i class="iconfont icon-warning"
77+
data-tip-popover="开启后后台列表页面可搜索该字段,前台可通过链接参数搜索该字段(前台需设置访客列表页面可见)。"></i>
7678
</div>
7779
<div class="field">
7880
<el-switch v-model="data.isSearch"></el-switch>

module/Cms/Web/Controller/ListController.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
namespace Module\Cms\Web\Controller;
55

66
use ModStart\Core\Input\InputPackage;
7+
use ModStart\Core\Input\Request;
78
use ModStart\Core\Util\PageHtmlUtil;
89
use Module\Cms\Api\Controller\BaseCatController;
910
use Module\Cms\Util\CmsContentUtil;
@@ -38,7 +39,7 @@ public function index($id = 0)
3839
$viewData['pageSize'] = $pageSize;
3940
$viewData['records'] = $paginateData['records'];
4041
$viewData['total'] = $paginateData['total'];
41-
$pageTemplate = '?page={page}';
42+
$pageTemplate = '?' . Request::mergeQueries(['page' => ['{page}']]);
4243
if (!empty($cat['pageFullUrl'])) {
4344
$pageTemplate = modstart_web_url($cat['pageFullUrl']);
4445
}

module/Cms/config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"tags": [
1919
"通用CMS"
2020
],
21-
"version": "3.6.0",
21+
"version": "3.7.0",
2222
"modstartVersion": ">=2.9.0",
2323
"author": "ModStart",
2424
"description": "提供通用的动态模型内容管理系统",

module/Member/Admin/Controller/ConfigController.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,9 @@ public function setting(AdminConfigBuilder $builder)
105105
->defaultValue(false);
106106
}
107107
$builder->number('Member_UsernameMinLength', '用户名最小长度')->defaultValue(3);
108+
$builder->text('Member_RegisterUsernameSuggest', '自动注册用户名前缀')
109+
->defaultValue('用户')
110+
->help('部分场景注册时可能无法获取到用户名,开启自动注册后将自动设置用户名前缀,用户名如遇冲突将会自动追加随机字符串');
108111

109112
});
110113
$builder->layoutPanel('找回密码', function ($builder) {
@@ -168,6 +171,12 @@ public function agreement(AdminConfigBuilder $builder)
168171
$builder->text('Member_PrivacyTitle', '用户隐私协议标题')->help('默认为 用户隐私协议');
169172
$builder->richHtml('Member_PrivacyContent', '用户隐私协议内容');
170173
});
174+
175+
$builder->switch('Member_AppealEnable', '账号申诉开启')
176+
->when('=', true, function ($builder) {
177+
$builder->text('Member_AppealTitle', '账号申诉标题')->help('默认为 账号申诉');
178+
$builder->richHtml('Member_AppealContent', '账号申诉内容');
179+
});
171180
$builder->formClass('wide');
172181
return $builder->perform();
173182
}

module/Member/Admin/Controller/MemberController.php

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
use ModStart\Core\Util\EventUtil;
2323
use ModStart\Core\Util\RandomUtil;
2424
use ModStart\Core\Util\TimeUtil;
25+
use ModStart\Detail\Detail;
2526
use ModStart\Field\AbstractField;
2627
use ModStart\Field\AutoRenderedFieldValue;
2728
use ModStart\Field\Select;
@@ -32,6 +33,7 @@
3233
use ModStart\Module\ModuleManager;
3334
use ModStart\Repository\Filter\RepositoryFilter;
3435
use ModStart\Support\Concern\HasFields;
36+
use ModStart\Widget\Box;
3537
use ModStart\Widget\TextDialogRequest;
3638
use Module\Member\Config\MemberAdminList;
3739
use Module\Member\Config\MemberOauth;
@@ -82,23 +84,47 @@ protected function crud(AdminCRUDBuilder $builder)
8284
});
8385
$builder->text('email', '邮箱');
8486
$builder->text('phone', '手机');
85-
$builder->text('nickname', '昵称');
87+
$builder->text('nickname', '昵称')->required()->ruleUnique('member_user')
88+
->hookRendering(function (AbstractField $field, $item, $index) {
89+
switch ($field->renderMode()) {
90+
case FieldRenderMode::GRID:
91+
case FieldRenderMode::DETAIL:
92+
return AutoRenderedFieldValue::make(
93+
TextDialogRequest::make(
94+
'primary',
95+
htmlspecialchars($item->username),
96+
modstart_admin_url('member/show', ['_id' => $item->id])
97+
)->width('90%')->height('90%')->render()
98+
);
99+
break;
100+
}
101+
});
86102
if (MemberOauth::hasEnableItems()) {
87103
$builder->display('_oauth', '授权')->hookRendering(function (AbstractField $field, $item, $index) {
88104
$oauthList = [];
89105
$oauthRecords = MemberUtil::listOauths($item->id);
90106
foreach ($oauthRecords as $oauthRecord) {
91107
$color = null;
108+
$icon = 'iconfont icon-dot';
92109
$title = $oauthRecord['type'];
93110
$oauth = MemberOauth::getByOauthKey($oauthRecord['type']);
94111
if ($oauth) {
95112
$color = $oauth->color();
96113
$title = $oauth->title();
114+
if (method_exists($oauth, 'icon')) {
115+
$icon = $oauth->icon();
116+
}
97117
}
98118
if (empty($color)) {
99119
$color = ColorUtil::pick($oauthRecord['type']);
100120
}
101-
$oauthList[] = '<a style="color:' . $color . ';" href="javascript:;" data-tip-popover="' . $title . '"><i class="iconfont icon-dot"></i></a>';
121+
$oauthList[] = join('', [
122+
"<a style='color:{$color};'",
123+
"href='javascript:;'",
124+
"data-tip-popover='{$title}'",
125+
"data-dialog-request='" . modstart_admin_url('member/oauth', ['_id' => $item->id]) . "'",
126+
"><i class='{$icon}'></i></a>",
127+
]);
102128
}
103129
return join('', $oauthList);
104130
});
@@ -161,6 +187,33 @@ public function selectRemote()
161187
return Select::optionRemoteHandleModel('member_user', 'id', 'username');
162188
}
163189

190+
public function oauth(AdminDialogPage $page)
191+
{
192+
$memberUser = MemberUtil::get(CRUDUtil::id());
193+
BizException::throwsIfEmpty('用户不存在', $memberUser);
194+
$detail = Detail::make('');
195+
$oauthRecords = MemberUtil::listOauths($memberUser['id']);
196+
foreach ($oauthRecords as $oauthRecord) {
197+
$color = null;
198+
$icon = 'iconfont icon-dot';
199+
$title = $oauthRecord['type'];
200+
$oauth = MemberOauth::getByOauthKey($oauthRecord['type']);
201+
if ($oauth) {
202+
$color = $oauth->color();
203+
$title = $oauth->title();
204+
if (method_exists($oauth, 'icon')) {
205+
$icon = $oauth->icon();
206+
}
207+
}
208+
if (empty($color)) {
209+
$color = ColorUtil::pick($oauthRecord['type']);
210+
}
211+
$detail->html('_', $title)->html($oauthRecord['openId']);
212+
}
213+
return $page->pageTitle('授权登录信息')
214+
->body(Box::make($detail, '授权登录信息'));
215+
}
216+
164217
public function add(AdminDialogPage $page)
165218
{
166219
$form = Form::make('');

module/Member/Admin/Controller/MemberVipSetController.php

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use ModStart\Admin\Layout\AdminConfigBuilder;
1010
use ModStart\Admin\Layout\AdminCRUDBuilder;
1111
use ModStart\Core\Dao\ModelUtil;
12+
use ModStart\Core\Util\RandomUtil;
1213
use ModStart\Form\Form;
1314
use ModStart\Grid\GridFilter;
1415
use ModStart\Module\ModuleManager;
@@ -36,6 +37,7 @@ protected function crud(AdminCRUDBuilder $builder)
3637
$builder->switch('isDefault', '默认')->optionsYesNo()->help('会员是否默认为该等级')->required();
3738
$builder->image('icon', '图标');
3839
$builder->currency('price', '价格')->required();
40+
$builder->currency('priceMarket', '划线价格')->required();
3941
$builder->number('vipDays', '时间')->required()->help('单位为天,365表示1年');
4042
$builder->text('desc', '简要说明')->required();
4143
$builder->richHtml('content', '详细说明')->required();
@@ -74,7 +76,7 @@ protected function crud(AdminCRUDBuilder $builder)
7476
->defaultOrder(['sort', 'asc'])
7577
->canSort(true)
7678
->canShow(false)
77-
->title('用户VIP等级')
79+
->title('用户VIP')
7880
->addDialogSize(['600px', '95%'])
7981
->editDialogSize(['600px', '95%'])
8082
->hookSaved(function (Form $form) {
@@ -86,8 +88,23 @@ public function config(AdminConfigBuilder $builder)
8688
{
8789
$builder->useDialog();
8890
$builder->pageTitle('功能设置');
89-
// $builder->text('Member_VipTitle', 'VIP开通标题')->help('默认为 开通尊贵VIP 享受更多权益');
90-
// $builder->text('Member_VipSubTitle', 'VIP开通副标题')->help('默认为 会员权益1 丨 会员权益2 丨 会员权益3 丨 会员权益4');
91+
$builder->number('Member_VipCountDown', '倒计时长度')->unit('')->defaultValue(1800);
92+
$openUserDefaults = [];
93+
for ($i = 0; $i < 10; $i++) {
94+
$openUserDefaults[] = [
95+
'name' => RandomUtil::string(10),
96+
'time' => '刚刚',
97+
'title' => 'VIP黄金会员'
98+
];
99+
}
100+
$builder->complexFieldsList('Member_VipOpenUsers', '虚拟开通用户')
101+
->fields([
102+
['name' => 'name', 'title' => '用户', 'type' => 'text', 'defaultValue' => '', 'placeholder' => '', 'tip' => '',],
103+
['name' => 'time', 'title' => '时间', 'type' => 'text', 'defaultValue' => '', 'placeholder' => '', 'tip' => '',],
104+
['name' => 'title', 'title' => 'VIP标题', 'type' => 'text', 'defaultValue' => '', 'placeholder' => '', 'tip' => '',],
105+
])
106+
->help('当最近开通用户为空时,将显示虚拟开通用户')
107+
->defaultValue($openUserDefaults);
91108
$builder->richHtml('Member_VipContent', 'VIP开通说明')->help('默认为 VIP开通说明');
92109
$builder->formClass('wide');
93110
return $builder->perform();

module/Member/Admin/routes.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
$router->match(['get', 'post'], 'member/send_message', 'MemberController@sendMessage');
2727
$router->match(['get', 'post'], 'member/status_forbidden', 'MemberController@statusForbidden');
2828
$router->match(['get', 'post'], 'member/export', 'MemberController@export');
29+
$router->match(['get', 'post'], 'member/oauth', 'MemberController@oauth');
2930

3031
$router->match(['get', 'post'], 'member_vip_set', 'MemberVipSetController@index');
3132
$router->match(['get', 'post'], 'member_vip_set/add', 'MemberVipSetController@add');

0 commit comments

Comments
 (0)