提交 3a92768a 编写于 作者: ModStart's avatar ModStart

develop

上级 21903ca4
......@@ -49,5 +49,8 @@ return [
'SiteCounter' => [
'enable' => true,
],
'LinkExternalJumper' => [
'enable' => true,
],
],
];
提供多位置、单页文章基础管理功能
## 模块介绍
单页面独立显示,增加显示单页显示样式
「通用文章」提供多位置、单页文章基础管理功能
## 功能特性
- 文章管理
- 多位置配置
通用文章管理
页面SEO优化,Bug修复
---
- 位置字段为 page 或 空 时,启用单页显示功能
- 新增:位置字段为 page 或 空 时,启用单页显示功能
- 优化:页面SEO优化
@extends($_viewFrame)
@section('pageTitleMain',htmlspecialchars($article['title']))
@section('pageTitleMain'){{$article['title']}}@endsection
@section('pageKeywords'){{$article['title']}}@endsection
@section('pageDescription'){{$article['title']}}@endsection
@section('bodyContent')
......
@extends($_viewFrame)
@section('pageTitleMain',htmlspecialchars($article['title']))
@section('pageTitleMain'){{$article['title']}}@endsection
@section('pageKeywords'){{$article['title']}}@endsection
@section('pageDescription'){{$article['title']}}@endsection
@section('body')
......
......@@ -4,7 +4,7 @@
"Vendor"
],
"title": "通用文章",
"version": "1.0.0",
"version": "1.1.0",
"author": "官方",
"description": "提供多位置、单页文章基础管理功能",
"config": {
......
......@@ -36,7 +36,6 @@ class XxxBannerPositionProvider extends AbstractBannerPositionProvider
{
return '问答首页';
}
}
```
......
......@@ -66,8 +66,8 @@ if(empty($bannerRatio)){
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
loop: true
,autoplay: {
loop: true,
autoplay: {
delay: 3000
}
});
......
<?php
namespace Module\LinkExternalJumper\Core;
use Illuminate\Events\Dispatcher;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
use ModStart\Admin\Config\AdminMenu;
use ModStart\Core\Hook\ModStartHook;
class ModuleServiceProvider extends ServiceProvider
{
public function boot(Dispatcher $events)
{
ModStartHook::subscribe('PageBodyAppend', function () {
return View::make('module::LinkExternalJumper.View.widget.script')->render();
});
}
public function register()
{
}
}
当跳转到外部链接时,网站先跳转到提示页面告知用户
外链跳转提示插件
---
- 当跳转到外部链接时,网站先跳转到提示页面告知用户
修复跳转异常
---
- 修复:修复链接为相对路径时的跳转异常
@extends('modstart::layout.frame')
@section('headAppend')
@parent
<style type="text/css">
.pb-link-external-jumper{display:flex;position:fixed;top:0;left:0;right:0;bottom:20%;align-items:center;}
</style>
@endsection
@section('body')
<div class="pb-link-external-jumper">
<div style="margin:0 auto;display:block;max-width:800px;" class="lg:tw-w-1/2 tw-w-full tw-px-4">
<div>
<a href="{{modstart_web_url('')}}">
<img style="height:60px;" src="{{\ModStart\Core\Assets\AssetsUtil::fix(modstart_config('siteLogo'))}}"/>
</a>
</div>
<div class="tw-bg-white tw-rounded-2xl tw-shadow-lg tw-p-8">
<h2>您即将离开{{modstart_config('siteName')}}请注意您的帐号和财产安全</h2>
<div class="tw-py-4">
<a class="tw-text-gray-400" href="{{$target}}">{{$target}}</a>
</div>
<div class="tw-text-right tw-pt-4 tw-border-0 tw-border-t tw-border-gray-200 tw-border-solid">
<a class="btn btn-primary btn-lg" href="{{$target}}">继续访问</a>
</div>
</div>
</div>
</div>
@endsection
<script>
$(function () {
$(document).on('click', 'a', function () {
var href = this.href;
if(!href) return;
var l = window.location;
var currentUrl = l.protocol + '//' + l.host;
if (href.indexOf('http://') === 0 || href.indexOf('https://') === 0 || href.indexOf('//') === 0) {
if (href.indexOf(currentUrl) !== 0) {
$(this).attr('href', "{{modstart_web_url('link_external_jumper')}}?target=" + MS.util.urlencode(href));
}
}
});
});
</script>
<?php
namespace Module\LinkExternalJumper\Web\Controller;
use ModStart\Core\Input\InputPackage;
use ModStart\Core\Input\Response;
use ModStart\Module\ModuleBaseController;
class IndexController extends ModuleBaseController
{
public function index()
{
$input = InputPackage::buildFromInput();
$target = $input->getTrimString('target');
if (empty($target)) {
return Response::redirect(modstart_web_url(''));
}
return $this->view('linkExternalJumper.index', [
'target' => $target,
]);
}
}
<?php
$router->match(['get', 'post'], 'link_external_jumper', 'IndexController@index');
{
"name": "LinkExternalJumper",
"title": "外链跳转提示插件",
"require": [
"Vendor:>=1.2.0"
],
"version": "1.1.0",
"modstartVersion": ">=1.3.0",
"author": "ModStart",
"description": "当跳转到外部链接时,网站先跳转到提示页面告知用户",
"providers": [
],
"config": {
}
}
......@@ -4,6 +4,7 @@
namespace Module\Member\Admin\Controller;
use Illuminate\Routing\Controller;
use ModStart\Admin\Auth\AdminPermission;
use ModStart\Admin\Concern\HasAdminQuickCRUD;
use ModStart\Admin\Layout\AdminConfigBuilder;
use ModStart\Admin\Layout\AdminCRUDBuilder;
......@@ -122,6 +123,7 @@ class MemberController extends Controller
$builder->text('passwordNew', '新密码')->required()->defaultValue(RandomUtil::upperString(6));
if (Request::isPost()) {
return $builder->formRequest(function (Form $form) use ($memberUser) {
AdminPermission::demoCheck();
$data = $form->dataForming();
$ret = MemberUtil::changePassword($memberUser['id'], $data['passwordNew'], null, true);
BizException::throwsIfResponseError($ret);
......@@ -141,6 +143,7 @@ class MemberController extends Controller
$builder->richHtml('content', '消息内容')->required();
if (Request::isPost()) {
return $builder->formRequest(function (Form $form) use ($memberUser) {
AdminPermission::demoCheck();
$data = $form->dataForming();
$ret = MemberMessageUtil::send($memberUser['id'], $data['content']);
BizException::throwsIfResponseError($ret);
......
- 优化:全部页面SEO显示优化
- 优化:演示账号显示功能优化
- 优化:统一结算服务确实页面提醒
- 优化:用户列表展示字段自适应优化
......@@ -14,7 +14,7 @@ class MemberCmsUtil
public static function showFromId($memberUserId)
{
if (!$memberUserId) {
return '<span class="ub-text-muted">-</span>';
return AutoRenderedFieldValue::make('<span class="ub-text-muted">-</span>');
}
$memberUser = ModelUtil::getWithCache('member_user', ['id' => $memberUserId]);
return self::show($memberUser);
......
......@@ -95,6 +95,7 @@ class MemberUtil
return [
'id' => $memberUser['id'],
'username' => $memberUser['username'],
'nickname' => empty($memberUser['nickname']) ? $memberUser['username'] : $memberUser['nickname'],
'created_at' => $memberUser['created_at'],
'signature' => isset($memberUser['signature']) ? $memberUser['signature'] : null,
'avatar' => AssetsUtil::fixFullOrDefault($memberUser['avatar'], 'asset/image/avatar.png'),
......@@ -107,6 +108,7 @@ class MemberUtil
return [
'id' => $item['id'],
'username' => $item['username'],
'nickname' => empty($item['nickname']) ? $item['username'] : $item['nickname'],
'created_at' => $item['created_at'],
'signature' => isset($item['signature']) ? $item['signature'] : null,
'avatar' => AssetsUtil::fixFullOrDefault($item['avatar'], 'asset/image/avatar.png'),
......
@extends($_viewFrame)
@section('pageTitleMain')登录@endsection
@section('pageKeywords')登录@endsection
@section('pageDescription')登录@endsection
@section('headAppend')
@parent
......
@extends($_viewFrame)
@section('pageTitleMain'){{modstart_config('Member_AgreementTitle','用户使用协议')}}@endsection
@section('pageKeywords')用户使用协议@endsection
@section('pageDescription')用户使用协议@endsection
@section('body')
......
@extends($_viewMemberFrame)
@section('pageTitleMain','我的地址')
@section('pageTitleMain')我的地址@endsection
@section('pageKeywords')我的地址@endsection
@section('pageDescription')我的地址@endsection
@section('memberBodyContent')
<div class="ub-panel">
......
@extends($_viewMemberFrame)
@section('pageTitleMain','我的积分')
@section('pageTitleMain')我的积分@endsection
@section('pageKeywords')我的地址@endsection
@section('pageDescription')我的地址@endsection
@section('memberBodyContent')
<div class="ub-panel transparent">
......
@extends($_viewMemberFrame)
@section('pageTitleMain','我的钱包')
@section('pageTitleMain')我的钱包@endsection
@section('pageKeywords')我的钱包@endsection
@section('pageDescription')我的钱包@endsection
@section('memberBodyContent')
......
@extends($_viewMemberFrame)
@section('pageTitleMain')钱包提现@endsection
@section('pageKeywords')钱包提现@endsection
@section('pageDescription')钱包提现@endsection
@section('bodyAppend')
......
@extends($_viewMemberFrame)
@section('pageTitleMain','我的钱包')
@section('pageTitleMain')提现记录@endsection
@section('pageKeywords')提现记录@endsection
@section('pageDescription')提现记录@endsection
@section('memberBodyContent')
......
@extends($_viewMemberFrame)
@section('pageTitleMain')修改头像@endsection
@section('pageKeywords')修改头像@endsection
@section('pageDescription')修改头像@endsection
@section('bodyAppend')
@parent
{{\ModStart\ModStart::js('asset/vendor/cropper/cropper.js')}}
......
@extends($_viewMemberFrame)
@section('pageTitleMain')绑定邮箱@endsection
@section('pageKeywords')绑定邮箱@endsection
@section('pageDescription')绑定邮箱@endsection
@section('bodyAppend')
@parent
{{\ModStart\ModStart::js('asset/common/commonVerify.js')}}
......
@extends($_viewMemberFrame)
@section('pageTitleMain')绑定的账号@endsection
@section('pageKeywords')绑定的账号@endsection
@section('pageDescription')绑定的账号@endsection
@section('memberBodyContent')
@include('module::Member.View.pc.memberProfile.bindNav')
......
@extends($_viewMemberFrame)
@section('pageTitleMain')绑定手机@endsection
@section('pageKeywords')绑定手机@endsection
@section('pageDescription')绑定手机@endsection
@section('bodyAppend')
@parent
{{\ModStart\ModStart::js('asset/common/commonVerify.js')}}
......
@extends($_viewFrame)
@section('pageTitleMain','会员VIP')
@section('pageTitleMain')开通VIP会员@endsection
@section('pageKeywords')开通VIP会员@endsection
@section('pageDescription')开通VIP会员@endsection
{!! \ModStart\ModStart::css('vendor/Member/style/member.css') !!}
@section('bodyAppend')
......
@extends($_viewFrame)
@section('pageTitle','用户授权绑定 - '.modstart_config('siteName'))
@section('pageTitleMain')用户授权绑定@endsection
@section('pageKeywords')用户授权绑定@endsection
@section('pageDescription')用户授权绑定@endsection
@section('bodyContent')
......@@ -36,4 +38,4 @@
</div>
@endsection
\ No newline at end of file
@endsection
......@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>授权登录中</title>
<title>授权登录中...</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta content="always" name="referrer"/>
......
@extends($_viewFrame)
@section('pageTitleMain')注册@endsection
@section('pageKeywords')注册@endsection
@section('pageDescription')注册@endsection
@section('headAppend')
@parent
......
@extends($_viewFrame)
@section('pageTitle','找回密码 - '.modstart_config('siteName'))
@section('pageTitleMain')找回密码@endsection
@section('pageKeywords')找回密码@endsection
@section('pageDescription')找回密码@endsection
@section('bodyContent')
......
@extends($_viewFrame)
@section('pageTitle','找回密码 - '.modstart_config('siteName'))
@section('pageTitleMain')通过邮箱找回密码@endsection
@section('pageKeywords')通过邮箱找回密码@endsection
@section('pageDescription')通过邮箱找回密码@endsection
@section('bodyAppend')
@parent
......
@extends($_viewFrame)
@section('pageTitle','找回密码 - '.modstart_config('siteName'))
@section('pageTitleMain')通过手机找回密码@endsection
@section('pageKeywords')通过手机找回密码@endsection
@section('pageDescription')通过手机找回密码@endsection
@section('bodyAppend')
@parent
......
@extends($_viewFrame)
@section('pageTitle','设置新密码 - '.modstart_config('siteName'))
@section('pageTitleMain')设置新密码@endsection
@section('pageKeywords')设置新密码@endsection
@section('pageDescription')设置新密码@endsection
@section('bodyContent')
......
......@@ -3,7 +3,9 @@
namespace Module\Member\Web\Controller;
use ModStart\Core\Exception\BizException;
use ModStart\Module\ModuleBaseController;
use ModStart\Module\ModuleManager;
use Module\Member\Support\MemberLoginCheck;
use Module\Member\Util\MemberVipUtil;
......@@ -14,6 +16,7 @@ class MemberVipController extends ModuleBaseController implements MemberLoginChe
public function __construct()
{
BizException::throwsIf('缺少统一结算服务模块', !ModuleManager::isModuleEnabled('PayCenter'));
$this->api = app(\Module\Member\Api\Controller\MemberVipController::class);
}
......@@ -24,4 +27,4 @@ class MemberVipController extends ModuleBaseController implements MemberLoginChe
]);
}
}
\ No newline at end of file
}
......@@ -4,7 +4,7 @@
"require": [
"Vendor:>=1.9.0"
],
"version": "1.9.0",
"version": "2.0.0",
"modstartVersion": ">=1.4.0",
"author": "官方",
"description": "提供基础的用户管理服务",
......
提供多位置的导航配置工具
## 模块介绍
「通用导航配置」提供多位置的导航配置工具
## 功能特性
- 多位置管理
- 窗口打开方式设置
- 文字、链接灵活配置
## 调用方式
```php
@foreach(\Module\Nav\Util\NavUtil::listByPositionWithCache('footer') as $nav)
<a href="{{$nav['link']}}" {{\Module\Nav\Type\NavOpenType::getBlankAttributeFromValue($nav)}}>{{$nav['name']}}</a>
@endforeach
```
## 模块介绍
### 使用说明
「友情链接管理」提供了一个基于位置的友情链接管理模块
## 功能特性
- 多位置配置
- 支持文字和图片
- 一行代码在系统中引入
## 使用说明
需要使用的 `blade` 模板中直接引入
......
增加Provider特性
---
- 新增:友情链接位置增加Provider特性
......@@ -4,7 +4,7 @@
"require": [
"Vendor:>=1.4.0"
],
"version": "1.0.0",
"version": "1.1.0",
"modstartVersion": ">=1.4.0",
"author": "官方",
"description": "提供友情链接基础管理功能",
......
......@@ -163,8 +163,8 @@
@media (max-width: 38.35rem) {
.ub-form {
.line {
padding-left: 0;
padding-right: 0;
padding-left: 0.5rem;
padding-right: 0.5rem;
margin: 0;
.label {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册