Skip to content

Commit 12e62cf

Browse files
committed
新增:后台白色清爽主题,可通过设置 ADMIN_THEME=default 切换后台主题
1 parent 5ae1b48 commit 12e62cf

91 files changed

Lines changed: 1207 additions & 277 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 = '8.1.0';
9+
const VERSION = '8.2.0';
1010
}

module/AdminManager/View/widget/serverInfo.blade.php

Lines changed: 85 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -6,77 +6,94 @@
66
</div>
77
</div>
88
<div class="body">
9-
<table class="ub-table tw-font-mono">
10-
<tbody>
11-
<tr>
12-
<td class="tw-font-bold">
13-
安全公告
14-
</td>
15-
<td>
16-
<div data-system-notice></div>
17-
</td>
18-
</tr>
19-
<tr>
20-
<td width="100" class="tw-font-bold">
21-
MSCore
22-
</td>
23-
<td>
24-
V{{\ModStart\ModStart::$version}}
25-
( With <b>{{strtoupper(\ModStart\Module\ModuleManager::getEnv())}}</b> )
26-
</td>
27-
</tr>
28-
<tr>
29-
<td class="tw-font-bold">操作系统</td>
30-
<td>{{PHP_OS}}</td>
31-
32-
</tr>
33-
<tr>
34-
<td class="tw-font-bold">PHP版本</td>
35-
<td>V{{PHP_VERSION}}</td>
36-
</tr>
37-
<tr>
38-
<td class="tw-font-bold">HTTP服务</td>
39-
<td>
40-
@if(PHP_SAPI=='fpm-fcgi')
41-
Nginx(FPM)
42-
@elseif(PHP_SAPI=='cgi-fcgi')
43-
Nginx(FASTCGI)
44-
@elseif(PHP_SAPI=='apache2handler')
45-
Apache
46-
@else
47-
{{PHP_SAPI}}
48-
@endif
49-
</td>
50-
</tr>
51-
<tr>
52-
<td class="tw-font-bold">文件上传限制</td>
53-
<td>
54-
{{@ini_get('upload_max_filesize')}}
55-
</td>
56-
</tr>
57-
<tr>
58-
<td class="tw-font-bold">表单提交限制</td>
59-
<td>
60-
{{@ini_get('post_max_size')}}
61-
</td>
62-
</tr>
63-
<tr>
64-
<td class="tw-font-bold">最大提交数量</td>
65-
<td>
66-
{{@ini_get('max_file_uploads')}}
67-
</td>
68-
</tr>
69-
<tr>
70-
<td class="tw-font-bold">分配内存限制</td>
71-
<td>
72-
{{@ini_get('memory_limit')}}
73-
</td>
74-
</tr>
75-
</tbody>
76-
</table>
9+
<div class="row">
10+
<div class="col-md-12">
11+
<div class="tw-flex ub-border-bottom tw-p-2">
12+
<div class="tw-w-24 tw-flex-shrink-0 tw-font-bold">安全公告</div>
13+
<div class="tw-flex-grow" data-system-notice></div>
14+
</div>
15+
</div>
16+
<div class="col-lg-4 col-md-6">
17+
<div class="tw-flex ub-border-bottom tw-p-2">
18+
<div class="tw-w-24 tw-flex-shrink-0 tw-font-bold">MSCore</div>
19+
<div class="tw-flex-grow">V{{\ModStart\ModStart::$version}} ( With <b>{{strtoupper(\ModStart\Module\ModuleManager::getEnv())}}</b> )</div>
20+
</div>
21+
</div>
22+
<div class="col-lg-4 col-md-6">
23+
<div class="tw-flex ub-border-bottom tw-p-2">
24+
<div class="tw-w-24 tw-flex-shrink-0 tw-font-bold">操作系统</div>
25+
<div class="tw-flex-grow">{{PHP_OS}}</div>
26+
</div>
27+
</div>
28+
<div class="col-lg-4 col-md-6">
29+
<div class="tw-flex ub-border-bottom tw-p-2">
30+
<div class="tw-w-24 tw-flex-shrink-0 tw-font-bold">PHP版本</div>
31+
<div class="tw-flex-grow">V{{PHP_VERSION}}</div>
32+
</div>
33+
</div>
34+
<div class="col-lg-4 col-md-6">
35+
<div class="tw-flex ub-border-bottom tw-p-2">
36+
<div class="tw-w-24 tw-flex-shrink-0 tw-font-bold">HTTP服务</div>
37+
<div class="tw-flex-grow">
38+
@if(PHP_SAPI=='fpm-fcgi')
39+
Nginx(FPM)
40+
@elseif(PHP_SAPI=='cgi-fcgi')
41+
Nginx(FASTCGI)
42+
@elseif(PHP_SAPI=='apache2handler')
43+
Apache
44+
@else
45+
{{PHP_SAPI}}
46+
@endif
47+
</div>
48+
</div>
49+
</div>
50+
<div class="col-lg-4 col-md-6">
51+
<div class="tw-flex ub-border-bottom tw-p-2">
52+
<div class="tw-w-24 tw-flex-shrink-0 tw-font-bold">文件上传限制</div>
53+
<div class="tw-flex-grow">{{@ini_get('upload_max_filesize')}}</div>
54+
</div>
55+
</div>
56+
<div class="col-lg-4 col-md-6">
57+
<div class="tw-flex ub-border-bottom tw-p-2">
58+
<div class="tw-w-24 tw-flex-shrink-0 tw-font-bold">表单提交限制</div>
59+
<div class="tw-flex-grow">{{@ini_get('post_max_size')}}</div>
60+
</div>
61+
</div>
62+
<div class="col-lg-4 col-md-6">
63+
<div class="tw-flex ub-border-bottom tw-p-2">
64+
<div class="tw-w-24 tw-flex-shrink-0 tw-font-bold">最大提交数量</div>
65+
<div class="tw-flex-grow">{{@ini_get('max_file_uploads')}}</div>
66+
</div>
67+
</div>
68+
<div class="col-lg-4 col-md-6">
69+
<div class="tw-flex ub-border-bottom tw-p-2">
70+
<div class="tw-w-24 tw-flex-shrink-0 tw-font-bold">分配内存限制</div>
71+
<div class="tw-flex-grow">{{@ini_get('memory_limit')}}</div>
72+
</div>
73+
</div>
74+
<div class="col-lg-4 col-md-6">
75+
<div class="tw-flex ub-border-bottom tw-p-2">
76+
<div class="tw-w-24 tw-flex-shrink-0 tw-font-bold">时区</div>
77+
<div class="tw-flex-grow">{{date_default_timezone_get()}}</div>
78+
</div>
79+
</div>
80+
<div class="col-lg-4 col-md-6">
81+
<div class="tw-flex ub-border-bottom tw-p-2">
82+
<div class="tw-w-24 tw-flex-shrink-0 tw-font-bold">服务器时间</div>
83+
<div class="tw-flex-grow" data-server-time>-</div>
84+
</div>
85+
</div>
86+
</div>
7787
<script type="text/javascript">
7888
// 请勿删除,用于获取最新的安全通告(比如框架、模块有重大缺陷的应急通知等)
7989
$('body').append('<script src="https://modstart.com/api/modstart/notice?modules={{urlencode($modules)}}"><' + '/script>');
90+
$(function(){
91+
var $serverTime = $('[data-server-time]');
92+
var timeDiff = {{time()*1000}} - (new Date()).getTime()
93+
setInterval(function(){
94+
$serverTime.text(new Date((new Date()).getTime() + timeDiff).toLocaleString());
95+
}, 1000);
96+
});
8097
</script>
8198
</div>
8299
</div>

module/Member/Core/ModuleServiceProvider.php

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
use Illuminate\Support\Facades\Event;
77
use Illuminate\Support\ServiceProvider;
88
use ModStart\Admin\Config\AdminMenu;
9+
use ModStart\Admin\Widget\DashboardItem;
910
use ModStart\Admin\Widget\DashboardItemA;
10-
use ModStart\Core\Dao\ModelUtil;
1111
use ModStart\Core\Util\ColorUtil;
1212
use ModStart\Data\Event\DataDeletedEvent;
1313
use ModStart\Data\Event\DataUploadedEvent;
@@ -28,6 +28,7 @@
2828
use Module\Member\Util\MemberMoneyUtil;
2929
use Module\Member\Util\MemberParamUtil;
3030
use Module\Member\Util\MemberUtil;
31+
use Module\Member\Util\MemberVipUtil;
3132
use Module\PayCenter\Biz\PayCenterBiz;
3233
use Module\Vendor\Admin\Widget\AdminWidgetDashboard;
3334
use Module\Vendor\Admin\Widget\AdminWidgetLink;
@@ -152,12 +153,32 @@ public function boot(Dispatcher $events)
152153
});
153154

154155
AdminWidgetDashboard::registerIcon(function (Row $row) {
155-
$row->column(3, DashboardItemA::makeIconNumberTitle(
156-
'iconfont icon-user',
157-
ModelUtil::count('member_user', ['isDeleted' => false]),
158-
'用户管理',
159-
modstart_admin_url('member'), ColorUtil::randomColor()
160-
));
156+
if (class_exists(DashboardItem::class)) {
157+
$row->flexColumn(DashboardItem::makeTitleDataList(
158+
'iconfont icon-user',
159+
'用户',
160+
[
161+
[
162+
'title' => '今日新增',
163+
'value' => \Module\Member\Model\MemberUser::where(['isDeleted' => false])
164+
->where('created_at', '>=', date('Y-m-d 00:00:00'))->count(),
165+
'url' => modstart_admin_url('member'),
166+
],
167+
[
168+
'title' => '总用户',
169+
'value' => \Module\Member\Model\MemberUser::where(['isDeleted' => false])->count(),
170+
'url' => modstart_admin_url('member')
171+
],
172+
]
173+
));
174+
} else {
175+
$row->column(3, DashboardItemA::makeIconNumberTitle(
176+
'iconfont icon-user',
177+
\Module\Member\Model\MemberUser::where(['isDeleted' => false])->count(),
178+
'用户管理',
179+
modstart_admin_url('member'), ColorUtil::randomColor()
180+
));
181+
}
161182
});
162183

163184
AdminWidgetLink::register(function () {
@@ -200,6 +221,15 @@ public function boot(Dispatcher $events)
200221
}
201222

202223
Event::listen(MemberUserRegisteredEvent::class, function (MemberUserRegisteredEvent $e) {
224+
// VIP赠送积分
225+
if (ModuleManager::getModuleConfig('Member', 'creditEnable', false)) {
226+
$memberUser = MemberUtil::getCached($e->memberUserId);
227+
$vipSet = MemberVipUtil::get($memberUser['vipId']);
228+
if ($vipSet['creditPresentEnable']) {
229+
MemberCreditUtil::change($memberUser['id'], $vipSet['creditPresentValue'], '会员VIP赠送积分');
230+
}
231+
}
232+
// 注册发送邮件
203233
$message = modstart_config('Member_Registered_Message', '');
204234
if ($message) {
205235
$memberUser = MemberUtil::getCached($e->memberUserId);

module/Member/Docs/release.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
- 新增:用户积分后台操作支持记录管理员 ID
1010
- 新增:后台用户钱包流水增加其他信息,可记录后台管理员变更信息
1111
- 新增:用户前台积分冻结记录显示功能
12+
- 新增:后台首页概况页面重构完成
13+
- 修复:默认用户开通积分赠送不生效问题修复
14+
- 修复:用户名字符长度提示文案异常问题
1215
- 优化:授权登录默认注册为用户昵称(昵称不可作为登录用户名)
1316

1417
---

module/Member/Util/MemberUtil.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -446,8 +446,9 @@ public static function register($username = '', $phone = '', $email = '', $passw
446446
if ($ret['code']) {
447447
return $ret;
448448
}
449-
if (strlen($username) < modstart_config('Member_UsernameMinLength', 3)) {
450-
return Response::generate(-1, '用户名至少3个字符');
449+
$minLength = modstart_config('Member_UsernameMinLength', 3);
450+
if (strlen($username) < $minLength) {
451+
return Response::generate(-1, '用户名至少' . $minLength . '个字符');
451452
}
452453
// 为了统一登录时区分邮箱
453454
if (Str::contains($username, '@')) {

module/Vendor/Docs/release.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
## 4.4.0
22

33
- 新增:订单快捷操作工具类 OrderUtil
4+
- 新增:分类快捷操作工具类 CategoryUtil
45

56
---
67

module/Vendor/Log/Logger.php

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public static function rotateLog($filename, $logType = null, $maxKeeps = 7, $bas
4747
return $path;
4848
}
4949

50-
private static function write($file, $type, $label, $msg)
50+
public static function write($file, $type, $label, $msg)
5151
{
5252
if (!is_string($msg)) {
5353
$msg = SerializeUtil::jsonEncode($msg);
@@ -58,12 +58,26 @@ private static function write($file, $type, $label, $msg)
5858
return $string;
5959
}
6060

61-
public static function info($file, $label, $msg = '')
61+
/**
62+
* 记录消息日志
63+
* @param $file string 文件名
64+
* @param $label string 标签
65+
* @param $msg string|array|null 信息
66+
* @return string 写入的日志
67+
*/
68+
public static function info($file, $label, $msg = null)
6269
{
6370
return self::write($file, 'info', $label, $msg);
6471
}
6572

66-
public static function error($file, $label, $msg = '')
73+
/**
74+
* 记录错误日志
75+
* @param $file string 文件名
76+
* @param $label string 标签
77+
* @param $msg string|array|null 信息
78+
* @return string 写入的日志
79+
*/
80+
public static function error($file, $label, $msg = null)
6781
{
6882
return self::write($file, 'error', $label, $msg);
6983
}

module/Vendor/Log/LoggerTrait.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
namespace Module\Vendor\Log;
4+
5+
trait LoggerTrait
6+
{
7+
private static $loggerFileName = null;
8+
9+
public static function loggerName($name = null)
10+
{
11+
if (is_null($name)) {
12+
if (is_null(self::$loggerFileName)) {
13+
self::$loggerFileName = class_basename(__CLASS__);
14+
}
15+
return self::$loggerFileName;
16+
}
17+
self::$loggerFileName = $name;
18+
}
19+
20+
public static function loggerInfo($label, $msg = null)
21+
{
22+
return Logger::info(self::loggerName(), $label, $msg);
23+
}
24+
25+
public static function loggerError($label, $msg = null)
26+
{
27+
return Logger::error(self::loggerName(), $label, $msg);
28+
}
29+
}

module/Vendor/Util/ApiUtil.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ public static function config()
5050
'extensions' => $categoryInfo['extensions'],
5151
];
5252
if ('image' == $category) {
53-
$info['compress'] = $categoryInfo['compress'];
54-
$info['compressMaxWidthOrHeight'] = $categoryInfo['compressMaxWidthOrHeight'];
55-
$info['compressMaxSize'] = $categoryInfo['compressMaxSize'];
53+
$info['compress'] = isset($categoryInfo['compress']) ? $categoryInfo['compress'] : true;
54+
$info['compressMaxWidthOrHeight'] = isset($categoryInfo['compressMaxWidthOrHeight']) ? $categoryInfo['compressMaxWidthOrHeight'] : 4000;
55+
$info['compressMaxSize'] = isset($categoryInfo['compressMaxSize']) ? $categoryInfo['compressMaxSize'] : 10 * 1024 * 1024;
5656
}
5757
$data['dataUpload']['category'][$category] = $info;
5858
}

0 commit comments

Comments
 (0)