users/wechat schema 页写入 aksrt_settings 的 wechat_notify_* / wechat_app_* / wechat_template_* 等 15 个键全仓无任何消费方,与活配置面 aksrt_wechat_settings(WeChatNotify 读取、/users/wechat-template 页管理)构成双路;PHP 与 JS 两份 schema 的字段集早已不一致(15 vs 10),是死面腐烂的直接证据。 移除 SchemaUsers 的 wechat 分组、JS schema 文件及其注册、菜单 schema 页条目,微信配置收敛为单一自定义页入口;契约测试锁定死键零残留与活配置面唯一。
618 lines
52 KiB
PHP
618 lines
52 KiB
PHP
<?php
|
||
/**
|
||
* @package AKSRT
|
||
*/
|
||
|
||
namespace AKSRT\Admin\Schema;
|
||
|
||
defined('ABSPATH') || exit;
|
||
|
||
class SchemaUsers {
|
||
|
||
private static function default_level_options(): array {
|
||
$options = [];
|
||
for ($level = 1; $level <= 10; $level++) {
|
||
$options['name_' . $level] = 'LV' . $level;
|
||
$options['icon_img_' . $level] = '';
|
||
$options['upgrade_integral_' . $level] = $level === 1 ? 0 : ($level - 1) * 500 * $level;
|
||
}
|
||
return $options;
|
||
}
|
||
|
||
private static function default_integral_options(): array {
|
||
return [
|
||
'day_max' => 100, 'sign_up' => 20, 'sign_in' => 5, 'followed' => 5,
|
||
'post_new' => 5, 'post_like' => 1, 'post_favorite' => 2,
|
||
'comment_new' => 2, 'comment_like' => 1,
|
||
];
|
||
}
|
||
|
||
/**
|
||
* Default medal catalog with preset icons from assets/img/medal.
|
||
*
|
||
* @return array<int,array{cat_name:string,items:array<int,array{slug:string,name:string,desc:string,icon:string,get_type:string,get_val:int}>}>
|
||
*/
|
||
private static function default_medal_args(): array {
|
||
$medal = static function (int $n): string {
|
||
$path = sprintf('/assets/img/medal/medal-%d.svg', $n);
|
||
if (file_exists(get_theme_file_path($path))) {
|
||
return get_theme_file_uri($path);
|
||
}
|
||
return '';
|
||
};
|
||
return [
|
||
[
|
||
'cat_name' => '成长',
|
||
'items' => [
|
||
[
|
||
'slug' => 'rookie',
|
||
'name' => '初出茅庐',
|
||
'desc' => '注册时间超过30天',
|
||
'icon' => $medal(1),
|
||
'get_type' => 'registration_time',
|
||
'get_val' => 30,
|
||
],
|
||
[
|
||
'slug' => 'checkin-30',
|
||
'name' => '签到达人',
|
||
'desc' => '累计签到30天',
|
||
'icon' => $medal(2),
|
||
'get_type' => 'checkin_all_day',
|
||
'get_val' => 30,
|
||
],
|
||
[
|
||
'slug' => 'writer',
|
||
'name' => '创作先锋',
|
||
'desc' => '发布10篇文章',
|
||
'icon' => $medal(5),
|
||
'get_type' => 'new_post',
|
||
'get_val' => 10,
|
||
],
|
||
[
|
||
'slug' => 'popular',
|
||
'name' => '人气之星',
|
||
'desc' => '累计获得100次点赞',
|
||
'icon' => $medal(9),
|
||
'get_type' => 'like',
|
||
'get_val' => 100,
|
||
],
|
||
],
|
||
],
|
||
[
|
||
'cat_name' => '限定',
|
||
'items' => [
|
||
[
|
||
'slug' => 'annual-star',
|
||
'name' => '年度人气达人',
|
||
'desc' => '活动限定徽章',
|
||
'icon' => $medal(12),
|
||
'get_type' => 'manually_add',
|
||
'get_val' => 0,
|
||
],
|
||
[
|
||
'slug' => 'vip-member',
|
||
'name' => '尊贵会员',
|
||
'desc' => '给予 VIP 用户的特殊徽章',
|
||
'icon' => $medal(15),
|
||
'get_type' => 'manually_add',
|
||
'get_val' => 0,
|
||
],
|
||
],
|
||
],
|
||
];
|
||
}
|
||
|
||
public static function build(): array {
|
||
return [
|
||
'domain' => 'users',
|
||
'title' => '用户&互动',
|
||
'sections' => [
|
||
'auth' => [
|
||
'key' => 'auth',
|
||
'title' => '注册登录',
|
||
'version' => '1.0.0',
|
||
'option_key' => 'aksrt_settings',
|
||
'groups' => [
|
||
['key' => 'register', 'title' => '注册设置', 'fields' => [
|
||
['key' => 'close_sign', 'label' => '一键禁用登录注册', 'type' => 'switch', 'default' => false, 'desc' => '开启后前台禁用全部注册/登录入口(含社交登录),不影响后台登录'],
|
||
['key' => 'close_signup', 'label' => '关闭注册', 'type' => 'switch', 'default' => false],
|
||
['key' => 'close_signin', 'label' => '禁用账号登录/注册', 'type' => 'switch', 'default' => false, 'desc' => '关闭账号密码和验证码登录注册,仅允许社交账号登录'],
|
||
['key' => 'user_agreement_s', 'label' => '用户协议', 'type' => 'switch', 'default' => false],
|
||
['key' => 'user_agreement_page', 'label' => '协议页面', 'type' => 'input', 'default' => ''],
|
||
['key' => 'user_privacy_s', 'label' => '隐私政策', 'type' => 'switch', 'default' => false],
|
||
['key' => 'user_privacy_page', 'label' => '隐私页面', 'type' => 'input', 'default' => ''],
|
||
['key' => 'user_agreement_check', 'label' => '强制勾选协议', 'type' => 'switch', 'default' => false],
|
||
['key' => 'no_repetition_name', 'label' => '禁止重复昵称', 'type' => 'switch', 'default' => true],
|
||
['key' => 'user_nickname_out', 'label' => '昵称黑名单关键词', 'type' => 'textarea', 'default' => '赌博,博彩,彩票,性爱,色情,做爱,爱爱,淫秽,傻b,妈的,妈b,admin,test'],
|
||
['key' => 'user_email_limit_type', 'label' => '邮箱限制类型', 'type' => 'radio', 'default' => 'not', 'options' => [
|
||
['label' => '黑名单', 'value' => 'not'],
|
||
['label' => '白名单', 'value' => 'allow'],
|
||
]],
|
||
['key' => 'user_email_out', 'label' => '邮箱限制关键词', 'type' => 'textarea', 'default' => ''],
|
||
]],
|
||
['key' => 'login', 'title' => '登录设置', 'fields' => [
|
||
['key' => 'user_sign_type', 'label' => '登录注册样式', 'type' => 'radio', 'default' => 'modal', 'options' => [
|
||
['label' => '弹窗', 'value' => 'modal'],
|
||
['label' => '跳转页面', 'value' => 'page'],
|
||
]],
|
||
['key' => 'sign_modal_auto_s', 'label' => '自动弹出登录窗', 'type' => 'switch', 'default' => false, 'desc' => '仅在 user_sign_type=modal 时生效'],
|
||
['key' => 'sign_modal_auto_waiting_time', 'label' => '弹窗等待秒数', 'type' => 'number', 'default' => 5, 'min' => 1, 'max' => 100, 'desc' => '页面加载多少秒后弹出登录窗'],
|
||
['key' => 'sign_modal_auto_expires', 'label' => '弹窗周期(小时)', 'type' => 'number', 'default' => 1, 'min' => 0, 'max' => 2000, 'desc' => '关闭弹窗后多少小时内不再自动弹出,0=每次刷新都弹'],
|
||
['key' => 'replace_wp_login', 'label' => '替换WP登录页', 'type' => 'switch', 'default' => true],
|
||
['key' => 'admin_sign_key', 'label' => '应急登录 Key', 'type' => 'input', 'default' => '', 'desc' => '留空为禁用。管理员可通过 /wp-login.php?aksrt_bypass=<key> 绕过前台替换'],
|
||
['key' => 'user_signin_phone_s', 'label' => '手机号登录', 'type' => 'switch', 'default' => false, 'desc' => '允许用手机号作为用户名登录'],
|
||
['key' => 'user_signin_nopas_s', 'label' => '免密登录', 'type' => 'switch', 'default' => false],
|
||
['key' => 'user_signin_nopas_type', 'label' => '免密登录方式', 'type' => 'radio', 'default' => 'email', 'options' => [
|
||
['label' => '邮箱验证码', 'value' => 'email'],
|
||
['label' => '手机验证码', 'value' => 'phone'],
|
||
['label' => '邮箱或手机', 'value' => 'email_phone'],
|
||
]],
|
||
['key' => 'user_signin_nopas_active', 'label' => '免密显示模式', 'type' => 'radio', 'default' => 'nopas', 'options' => [
|
||
['label' => '优先免密', 'value' => 'nopas'],
|
||
['label' => '优先密码', 'value' => 'pas'],
|
||
['label' => '仅免密', 'value' => 'only_nopas'],
|
||
]],
|
||
]],
|
||
['key' => 'signup_captcha', 'title' => '注册验证', 'fields' => [
|
||
['key' => 'user_signup_captch', 'label' => '注册需验证', 'type' => 'switch', 'default' => false, 'desc' => '验证码通过后才创建并登录用户'],
|
||
['key' => 'captch_type', 'label' => '验证方式', 'type' => 'radio', 'default' => 'email', 'options' => [
|
||
['label' => '邮箱', 'value' => 'email'],
|
||
['label' => '手机', 'value' => 'phone'],
|
||
['label' => '邮箱或手机', 'value' => 'email_phone'],
|
||
]],
|
||
['key' => 'user_signup_no_repas', 'label' => '无需重复密码', 'type' => 'switch', 'default' => true, 'desc' => '注册时不要求二次确认密码', 'dependsOn' => ['key' => 'user_signup_captch', 'value' => true]],
|
||
['key' => 'user_repas_captch_type', 'label' => '找回密码验证方式', 'type' => 'radio', 'default' => 'email', 'options' => [
|
||
['label' => '邮箱', 'value' => 'email'],
|
||
['label' => '手机', 'value' => 'phone'],
|
||
['label' => '邮箱或手机', 'value' => 'email_phone'],
|
||
]],
|
||
]],
|
||
['key' => 'bind', 'title' => '绑定设置', 'fields' => [
|
||
['key' => 'bind_phone', 'label' => '绑定手机', 'type' => 'switch', 'default' => false],
|
||
['key' => 'bind_reminder', 'label' => '绑定提醒', 'type' => 'radio', 'default' => 'close', 'options' => [
|
||
['label' => '提醒绑定邮箱', 'value' => 'email'],
|
||
['label' => '提醒绑定手机', 'value' => 'phone'],
|
||
['label' => '提醒绑定邮箱和手机', 'value' => 'email_phone'],
|
||
['label' => '关闭', 'value' => 'close'],
|
||
]],
|
||
['key' => 'bind_reminder_text', 'label' => '提醒文案', 'type' => 'textarea', 'default' => '为了您的账户安全,请务必完成账户绑定'],
|
||
['key' => 'bind_reminder_expires', 'label' => '提醒周期(小时)', 'type' => 'number', 'default' => 24, 'min' => 0, 'max' => 2000],
|
||
['key' => 'mandatory_bind', 'label' => '强制绑定', 'type' => 'radio', 'default' => 'close', 'options' => [
|
||
['label' => '强制绑定邮箱', 'value' => 'email'],
|
||
['label' => '强制绑定手机', 'value' => 'phone'],
|
||
['label' => '强制绑定邮箱和手机', 'value' => 'email_phone'],
|
||
['label' => '关闭', 'value' => 'close'],
|
||
]],
|
||
['key' => 'email_set_captch', 'label' => '绑定邮箱需验证', 'type' => 'switch', 'default' => true, 'desc' => '绑定邮箱时需发送验证码确认'],
|
||
]],
|
||
['key' => 'referral_inline', 'title' => '推广码注册', 'fields' => [
|
||
['key' => 'invit_code_s', 'label' => '推广码注册模式', 'type' => 'radio', 'default' => 'close', 'options' => [
|
||
['label' => '关闭', 'value' => 'close'],
|
||
['label' => '选填', 'value' => 'open'],
|
||
['label' => '必填', 'value' => 'must'],
|
||
]],
|
||
['key' => 'mandatory_bind_text', 'label' => '强制绑定文案', 'type' => 'textarea', 'default' => '为了您的账户安全,请先完成账户绑定'],
|
||
['key' => 'invit_code_open_desc', 'label' => '选填提示', 'type' => 'input', 'default' => '如您受到邀请,可填写推广码。部分推广码会有额外积分赠送'],
|
||
['key' => 'invit_code_must_desc', 'label' => '必填提示', 'type' => 'textarea', 'default' => '<div>本站需使用推广码注册</div><div>获取推广码请与客服联系</div>'],
|
||
]],
|
||
['key' => 'invite_inline', 'title' => '邀请码注册', 'fields' => [
|
||
['key' => 'invite_code_s', 'label' => '邀请码注册模式', 'type' => 'radio', 'default' => 'close', 'options' => [
|
||
['label' => '关闭', 'value' => 'close'],
|
||
['label' => '选填', 'value' => 'open'],
|
||
['label' => '必填', 'value' => 'must'],
|
||
], 'help' => '一次性邀请码与推广码相互独立:邀请码用于控制注册并按码发放奖励,在「用户 → 邀请码管理」批量生成'],
|
||
['key' => 'invite_code_open_desc', 'label' => '选填提示', 'type' => 'input', 'default' => '请输入邀请码,注册成功后奖励将自动发放'],
|
||
['key' => 'invite_code_must_desc', 'label' => '必填提示', 'type' => 'textarea', 'default' => '<div>本站需凭邀请码注册</div><div>获取邀请码请与客服联系</div>'],
|
||
]],
|
||
['key' => 'sign_page_ui', 'title' => '页面 UI 配置', 'fields' => [
|
||
['key' => 'sign_page_background', 'label' => '页面背景图', 'type' => 'gallery', 'default' => [], 'desc' => '登录注册页背景图,多图随机'],
|
||
['key' => 'sign_theme_mode', 'label' => '主题模式', 'type' => 'radio', 'default' => 'no', 'options' => [
|
||
['label' => '默认', 'value' => 'no'],
|
||
['label' => '亮色', 'value' => 'white-theme'],
|
||
['label' => '暗色', 'value' => 'dark-theme'],
|
||
]],
|
||
['key' => 'sign_show_header', 'label' => '显示顶部导航', 'type' => 'switch', 'default' => true],
|
||
['key' => 'sign_card_position', 'label' => '卡片位置', 'type' => 'radio', 'default' => 'right', 'options' => [
|
||
['label' => '靠左', 'value' => 'left'],
|
||
['label' => '居中', 'value' => 'center'],
|
||
['label' => '靠右', 'value' => 'right'],
|
||
]],
|
||
['key' => 'sign_show_logo', 'label' => '显示 LOGO', 'type' => 'switch', 'default' => false],
|
||
['key' => 'sign_page_footer', 'label' => '页脚 HTML', 'type' => 'textarea', 'default' => '', 'desc' => '登录注册页自定义页脚内容,支持 HTML'],
|
||
]],
|
||
['key' => 'modal_ui', 'title' => '弹窗 UI 配置', 'fields' => [
|
||
['key' => 'sign_modal_background', 'label' => '弹窗背景图', 'type' => 'gallery', 'default' => [], 'desc' => '弹窗左侧背景图,多图随机'],
|
||
['key' => 'sign_modal_show_logo', 'label' => '弹窗显示 LOGO', 'type' => 'switch', 'default' => false],
|
||
]],
|
||
['key' => 'sign_logo', 'title' => '登录框 LOGO', 'fields' => [
|
||
['key' => 'user_logo', 'label' => '日间 LOGO', 'type' => 'gallery', 'default' => [], 'desc' => '登录框专用日间 LOGO,留空使用站点全局 LOGO'],
|
||
['key' => 'user_logo_dark', 'label' => '夜间 LOGO', 'type' => 'gallery', 'default' => [], 'desc' => '登录框专用夜间 LOGO,留空使用站点全局夜间 LOGO'],
|
||
]],
|
||
],
|
||
],
|
||
'notifications' => [
|
||
'key' => 'notifications',
|
||
'title' => '消息通知',
|
||
'version' => '1.0.0',
|
||
'option_key' => 'aksrt_settings',
|
||
'groups' => [
|
||
['key' => 'basic', 'title' => '基础设置', 'fields' => [
|
||
['key' => 'message_s', 'label' => '站内通知总开关', 'type' => 'switch', 'default' => true],
|
||
['key' => 'msg_center_rewrite_slug', 'label' => '消息中心 URL 别名', 'type' => 'input', 'default' => 'message'],
|
||
['key' => 'message_icon_show', 'label' => '通知图标位置', 'type' => 'checkbox', 'default' => ['nav_menu'], 'options' => [
|
||
['label' => '导航菜单', 'value' => 'nav_menu'],
|
||
['label' => '头像下拉面板', 'value' => 'avatar_dropdown'],
|
||
['label' => '用户中心顶部资料卡', 'value' => 'user_center_header'],
|
||
['label' => '公开主页顶部资料卡', 'value' => 'user_home_header'],
|
||
]],
|
||
['key' => 'message_paginate_type', 'label' => '列表翻页模式', 'type' => 'radio', 'default' => 'ajax_lists', 'options' => [
|
||
['label' => 'AJAX 追加加载', 'value' => 'ajax_lists'],
|
||
['label' => '数字翻页按钮', 'value' => 'default'],
|
||
]],
|
||
['key' => 'message_user_set', 'label' => '允许用户设置推送', 'type' => 'switch', 'default' => true, 'desc' => '允许用户在前台自行设置通知推送偏好'],
|
||
]],
|
||
['key' => 'types', 'title' => '通知类型', 'fields' => [
|
||
['key' => 'message_close_msg_type', 'label' => '关闭部分推送', 'type' => 'checkbox', 'default' => [], 'options' => [
|
||
['label' => '文章通知', 'value' => 'posts'],
|
||
['label' => '评论回复', 'value' => 'comment'],
|
||
['label' => '收藏通知', 'value' => 'favorite'],
|
||
['label' => '点赞通知', 'value' => 'like'],
|
||
['label' => '热门通知', 'value' => 'hot'],
|
||
['label' => '关注通知', 'value' => 'followed'],
|
||
['label' => '系统通知', 'value' => 'system'],
|
||
['label' => '支付通知', 'value' => 'pay'],
|
||
['label' => '提现回复', 'value' => 'withdraw_reply'],
|
||
['label' => '勋章通知', 'value' => 'medal'],
|
||
['label' => '认证回复', 'value' => 'auth_apply_reply'],
|
||
], 'desc' => '勾选的类型将不向用户推送通知'],
|
||
]],
|
||
['key' => 'auto_clear', 'title' => '自动清理', 'fields' => [
|
||
['key' => 'message_auto_clear_s', 'label' => '自动清理已读消息', 'type' => 'switch', 'default' => true],
|
||
['key' => 'message_auto_clear_time', 'label' => '过期天数', 'type' => 'number', 'default' => 365, 'min' => 1, 'max' => 3650, 'desc' => '已读消息超过此天数将被自动清理'],
|
||
['key' => 'message_auto_clear_types', 'label' => '清理类型', 'type' => 'checkbox', 'default' => ['posts', 'comment', 'favorite', 'like', 'hot', 'followed', 'system'], 'options' => [
|
||
['label' => '文章通知', 'value' => 'posts'],
|
||
['label' => '评论回复', 'value' => 'comment'],
|
||
['label' => '收藏通知', 'value' => 'favorite'],
|
||
['label' => '点赞通知', 'value' => 'like'],
|
||
['label' => '热门通知', 'value' => 'hot'],
|
||
['label' => '关注通知', 'value' => 'followed'],
|
||
['label' => '系统通知', 'value' => 'system'],
|
||
['label' => '支付通知', 'value' => 'pay'],
|
||
['label' => '提现回复', 'value' => 'withdraw_reply'],
|
||
['label' => '勋章通知', 'value' => 'medal'],
|
||
['label' => '认证回复', 'value' => 'auth_apply_reply'],
|
||
['label' => '下载通知', 'value' => 'download'],
|
||
['label' => '积分变动', 'value' => 'credits'],
|
||
['label' => '举报反馈', 'value' => 'report'],
|
||
]],
|
||
]],
|
||
],
|
||
],
|
||
'oauth' => [
|
||
'key' => 'oauth',
|
||
'title' => '第三方登录',
|
||
'version' => '1.0.0',
|
||
'option_key' => 'aksrt_settings',
|
||
'groups' => [
|
||
['key' => 'basic', 'title' => '基础设置', 'fields' => [
|
||
['key' => 'oauth_s', 'label' => '启用第三方登录', 'type' => 'switch', 'default' => false],
|
||
['key' => 'oauth_proxy_mode', 'label' => '代理登录模式', 'type' => 'radio', 'default' => 'close', 'options' => [
|
||
['label' => '关闭', 'value' => 'close'],
|
||
['label' => '服务端', 'value' => 'server'],
|
||
['label' => '客户端', 'value' => 'client'],
|
||
]],
|
||
['key' => 'oauth_proxy_secret', 'label' => '代理 HMAC 密钥', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => '', 'dependsOn' => ['key' => 'oauth_proxy_mode', 'not' => 'close']],
|
||
['key' => 'oauth_proxy_server_url', 'label' => '服务端地址', 'type' => 'input', 'sanitize_type' => 'url', 'default' => '', 'dependsOn' => ['key' => 'oauth_proxy_mode', 'value' => 'client']],
|
||
['key' => 'oauth_proxy_server_providers', 'label' => '服务端允许平台', 'type' => 'checkbox', 'default' => ['github', 'gitee', 'qq', 'google'], 'options' => [
|
||
['label' => 'GitHub', 'value' => 'github'],
|
||
['label' => 'Gitee', 'value' => 'gitee'],
|
||
['label' => 'QQ', 'value' => 'qq'],
|
||
['label' => 'Google', 'value' => 'google'],
|
||
['label' => '微博', 'value' => 'weibo'],
|
||
['label' => '微信', 'value' => 'weixin'],
|
||
], 'dependsOn' => ['key' => 'oauth_proxy_mode', 'value' => 'server']],
|
||
['key' => 'oauth_proxy_client_providers', 'label' => '客户端启用平台', 'type' => 'checkbox', 'default' => ['github', 'gitee', 'qq', 'google'], 'options' => [
|
||
['label' => 'GitHub', 'value' => 'github'],
|
||
['label' => 'Gitee', 'value' => 'gitee'],
|
||
['label' => 'QQ', 'value' => 'qq'],
|
||
['label' => 'Google', 'value' => 'google'],
|
||
['label' => '微博', 'value' => 'weibo'],
|
||
['label' => '微信', 'value' => 'weixin'],
|
||
], 'dependsOn' => ['key' => 'oauth_proxy_mode', 'value' => 'client']],
|
||
['key' => 'oauth_bind_type', 'label' => '绑定方式', 'type' => 'radio', 'default' => 'auto', 'options' => [
|
||
['label' => '自动绑定', 'value' => 'auto'],
|
||
['label' => '手动绑定', 'value' => 'manual'],
|
||
]],
|
||
['key' => 'oauth_button_lg', 'label' => '大按钮样式', 'type' => 'switch', 'default' => false],
|
||
['key' => 'weixingzh_priority', 'label' => 'PC端优先微信扫码', 'type' => 'switch', 'default' => false, 'help' => '开启后 PC 端登录框优先显示微信公众号扫码'],
|
||
]],
|
||
['key' => 'providers', 'title' => '登录提供商', 'fields' => [
|
||
['key' => 'oauth_github_s', 'label' => 'GitHub登录', 'type' => 'switch', 'default' => false],
|
||
['key' => 'oauth_gitee_s', 'label' => 'Gitee登录', 'type' => 'switch', 'default' => false],
|
||
['key' => 'oauth_qq_s', 'label' => 'QQ登录', 'type' => 'switch', 'default' => false],
|
||
['key' => 'oauth_google_s', 'label' => 'Google登录', 'type' => 'switch', 'default' => false],
|
||
['key' => 'oauth_weibo_s', 'label' => '微博登录', 'type' => 'switch', 'default' => false],
|
||
['key' => 'oauth_weixin_s', 'label' => '微信开放平台登录', 'type' => 'switch', 'default' => false],
|
||
['key' => 'oauth_weixingzh_s', 'label' => '微信公众号登录', 'type' => 'switch', 'default' => false],
|
||
['key' => 'clogin_s', 'label' => '彩虹聚合登录', 'type' => 'switch', 'default' => false],
|
||
]],
|
||
['key' => 'github', 'title' => 'GitHub配置', 'fields' => [
|
||
['key' => 'github_appid', 'label' => 'Client ID', 'type' => 'input', 'default' => ''],
|
||
['key' => 'github_appkey', 'label' => 'Client Secret', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => ''],
|
||
]],
|
||
['key' => 'gitee', 'title' => 'Gitee配置', 'fields' => [
|
||
['key' => 'gitee_appid', 'label' => 'Client ID', 'type' => 'input', 'default' => ''],
|
||
['key' => 'gitee_appkey', 'label' => 'Client Secret', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => ''],
|
||
]],
|
||
['key' => 'qq', 'title' => 'QQ配置', 'fields' => [
|
||
['key' => 'qq_appid', 'label' => 'App ID', 'type' => 'input', 'default' => ''],
|
||
['key' => 'qq_appkey', 'label' => 'App Key', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => ''],
|
||
]],
|
||
['key' => 'google', 'title' => 'Google配置', 'fields' => [
|
||
['key' => 'google_client_id', 'label' => 'Client ID', 'type' => 'input', 'default' => ''],
|
||
['key' => 'google_client_secret', 'label' => 'Client Secret', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => ''],
|
||
]],
|
||
['key' => 'weibo', 'title' => '微博配置', 'fields' => [
|
||
['key' => 'weibo_appid', 'label' => 'App Key', 'type' => 'input', 'default' => ''],
|
||
['key' => 'weibo_appkey', 'label' => 'App Secret', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => ''],
|
||
]],
|
||
['key' => 'weixin', 'title' => '微信开放平台配置', 'fields' => [
|
||
['key' => 'weixin_appid', 'label' => 'AppID', 'type' => 'input', 'default' => ''],
|
||
['key' => 'weixin_appsecret', 'label' => 'AppSecret', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => ''],
|
||
]],
|
||
['key' => 'weixingzh', 'title' => '微信公众号配置', 'fields' => [
|
||
['key' => 'weixingzh_gzh_type', 'label' => '公众号类型', 'type' => 'radio', 'default' => 'service', 'options' => [
|
||
['label' => '服务号', 'value' => 'service'],
|
||
['label' => '订阅号', 'value' => 'subscribe'],
|
||
]],
|
||
['key' => 'weixingzh_token', 'label' => 'Token', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => ''],
|
||
['key' => 'weixingzh_appid', 'label' => 'AppID', 'type' => 'input', 'default' => ''],
|
||
['key' => 'weixingzh_appsecret', 'label' => 'AppSecret', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => ''],
|
||
['key' => 'weixingzh_code_qrcode', 'label' => '公众号二维码', 'type' => 'media', 'default' => '', 'help' => '引导用户扫码关注登录的二维码图片'],
|
||
['key' => 'weixingzh_code_keyword', 'label' => '登录回复关键词', 'type' => 'input', 'default' => '登录', 'help' => '用户在公众号内回复此关键词触发登录验证码'],
|
||
['key' => 'weixingzh_code_reply', 'label' => '验证码回复模板', 'type' => 'textarea', 'default' => '您的验证码是:%s,有效期 %d 分钟。', 'help' => '%s=验证码,%d=有效分钟数'],
|
||
['key' => 'weixingzh_subscribe_msg', 'label' => '关注后回复', 'type' => 'textarea', 'default' => '', 'help' => '用户关注公众号后的自动回复文案'],
|
||
['key' => 'weixingzh_scan_msg', 'label' => '扫码回复', 'type' => 'textarea', 'default' => '', 'help' => '用户扫码关注公众号后的回复文案'],
|
||
]],
|
||
['key' => 'clogin', 'title' => '彩虹聚合登录', 'fields' => [
|
||
['key' => 'clogin_url', 'label' => '接口地址', 'type' => 'input', 'sanitize_type' => 'url', 'default' => '', 'dependsOn' => ['key' => 'clogin_s', 'value' => true], 'help' => '如 https://xxx.com,不要带 connect.php'],
|
||
['key' => 'clogin_id', 'label' => 'AppID', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'clogin_s', 'value' => true]],
|
||
['key' => 'clogin_key', 'label' => 'AppKey', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => '', 'dependsOn' => ['key' => 'clogin_s', 'value' => true]],
|
||
['key' => 'clogin_oauth_s', 'label' => '启用平台', 'type' => 'checkbox', 'default' => ['qq', 'weixin', 'weibo'], 'options' => [
|
||
['label' => 'QQ', 'value' => 'qq'],
|
||
['label' => '微信', 'value' => 'weixin'],
|
||
['label' => '微博', 'value' => 'weibo'],
|
||
], 'dependsOn' => ['key' => 'clogin_s', 'value' => true]],
|
||
]],
|
||
],
|
||
],
|
||
'sms' => [
|
||
'key' => 'sms',
|
||
'title' => '短信接口',
|
||
'version' => '2.0.0',
|
||
'option_key' => 'aksrt_settings',
|
||
'groups' => [
|
||
['key' => 'provider', 'title' => '短信接口', 'fields' => [
|
||
['key' => 'sms_sdk', 'label' => '设置短信接口', 'type' => 'select', 'default' => 'null', 'options' => [
|
||
['label' => '不使用', 'value' => 'null'],
|
||
['label' => '阿里云短信', 'value' => 'ali'],
|
||
['label' => '腾讯云短信', 'value' => 'tencent'],
|
||
['label' => '短信宝', 'value' => 'smsbao'],
|
||
]],
|
||
['key' => 'sms_number_limit_ch', 'label' => '限制国内手机号', 'type' => 'switch', 'default' => true, 'desc' => '开启后只允许发送到中国大陆手机号'],
|
||
['key' => 'sms_test_phone', 'label' => '测试手机号', 'type' => 'input', 'default' => '', 'ui_only' => true, 'help' => '保存接口配置后,发送固定验证码 888888 测试短信'],
|
||
['key' => 'sms_test_send', 'label' => '发送测试短信', 'type' => 'button', 'buttonType' => 'primary', 'buttonText' => '发送测试短信', 'ui_only' => true],
|
||
]],
|
||
['key' => 'aliyun', 'title' => '阿里云', 'collapsible' => true, 'defaultCollapsed' => true, 'fields' => [
|
||
['key' => 'sms_ali_api_type', 'label' => '产品', 'type' => 'radio', 'default' => 'sms', 'options' => [
|
||
['label' => '短信服务', 'value' => 'sms'],
|
||
['label' => '号码认证:短信认证服务', 'value' => 'verify'],
|
||
], 'dependsOn' => ['key' => 'sms_sdk', 'value' => 'ali']],
|
||
['key' => 'sms_ali_keyid', 'label' => 'AccessKey Id', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'sms_sdk', 'value' => 'ali']],
|
||
['key' => 'sms_ali_keysecret', 'label' => 'AccessKey Secret', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => '', 'dependsOn' => ['key' => 'sms_sdk', 'value' => 'ali']],
|
||
['key' => 'sms_ali_sign_name', 'label' => '签名', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'sms_sdk', 'value' => 'ali']],
|
||
['key' => 'sms_ali_template_code', 'label' => '模板 CODE', 'type' => 'input', 'default' => '', 'dependsOn' => ['all' => [['key' => 'sms_sdk', 'value' => 'ali'], ['key' => 'sms_ali_api_type', 'not' => true, 'value' => 'verify']]], 'help' => '短信服务需要填写。号码认证产品固定使用平台模板'],
|
||
['key' => 'sms_region_id', 'label' => 'RegionId', 'type' => 'input', 'default' => 'cn-hangzhou', 'dependsOn' => ['key' => 'sms_sdk', 'value' => 'ali']],
|
||
]],
|
||
['key' => 'tencent', 'title' => '腾讯云', 'collapsible' => true, 'defaultCollapsed' => true, 'fields' => [
|
||
['key' => 'sms_tencent_app_id', 'label' => 'SDK AppID', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'sms_sdk', 'value' => 'tencent']],
|
||
['key' => 'sms_tencent_app_key', 'label' => 'App Key', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => '', 'dependsOn' => ['key' => 'sms_sdk', 'value' => 'tencent']],
|
||
['key' => 'sms_tencent_sign_name', 'label' => '签名', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'sms_sdk', 'value' => 'tencent']],
|
||
['key' => 'sms_tencent_template_id', 'label' => '模板 ID', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'sms_sdk', 'value' => 'tencent'], 'help' => '模板包含验证码和有效分钟数两个参数'],
|
||
]],
|
||
['key' => 'smsbao', 'title' => '短信宝', 'collapsible' => true, 'defaultCollapsed' => true, 'fields' => [
|
||
['key' => 'sms_smsbao_username', 'label' => '用户名', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'sms_sdk', 'value' => 'smsbao']],
|
||
['key' => 'sms_smsbao_password', 'label' => '密码', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => '', 'dependsOn' => ['key' => 'sms_sdk', 'value' => 'smsbao']],
|
||
['key' => 'sms_smsbao_api_key', 'label' => 'ApiKey', 'type' => 'input', 'inputType' => 'password', 'secret' => true, 'default' => '', 'dependsOn' => ['key' => 'sms_sdk', 'value' => 'smsbao'], 'help' => '可选;填写后以 ApiKey 认证,可与密码任选其一'],
|
||
['key' => 'sms_smsbao_template', 'label' => '模板内容', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'sms_sdk', 'value' => 'smsbao'], 'help' => '必须包含 {code},有效时间变量为 {time}'],
|
||
]],
|
||
],
|
||
],
|
||
'credits' => [
|
||
'key' => 'credits',
|
||
'title' => '积分设置',
|
||
'version' => '1.0.0',
|
||
'option_key' => 'aksrt_settings',
|
||
'groups' => [
|
||
['key' => 'basic', 'title' => '积分基础', 'fields' => [
|
||
['key' => 'points_s', 'label' => '启用积分系统', 'type' => 'switch', 'default' => true],
|
||
['key' => 'points_name', 'label' => '积分名称', 'type' => 'input', 'default' => '积分'],
|
||
['key' => 'points_decimal', 'label' => '积分小数位数', 'type' => 'number', 'default' => 2, 'min' => 0, 'max' => 4],
|
||
]],
|
||
['key' => 'earn', 'title' => '积分获取 / 任务', 'fields' => [
|
||
['key' => 'points_earn_daily_limit', 'label' => '每日免费积分上限', 'type' => 'number', 'default' => 50, 'min' => 0, 'max' => 9999, 'help' => '0为不限制;免费任务合计'],
|
||
['key' => 'points_free_sign_up', 'label' => '注册奖励', 'type' => 'number', 'default' => 10, 'min' => 0, 'max' => 10000],
|
||
['key' => 'points_free_sign_in', 'label' => '签到展示分值', 'type' => 'number', 'default' => 1, 'min' => 0, 'max' => 1000],
|
||
['key' => 'points_free_login', 'label' => '每日登录', 'type' => 'number', 'default' => 1, 'min' => 0, 'max' => 100],
|
||
['key' => 'points_free_post_new', 'label' => '发布文章', 'type' => 'number', 'default' => 5, 'min' => 0, 'max' => 1000],
|
||
['key' => 'points_free_post_like', 'label' => '文章被赞', 'type' => 'number', 'default' => 1, 'min' => 0, 'max' => 100],
|
||
['key' => 'points_free_post_favorite', 'label' => '文章被收藏', 'type' => 'number', 'default' => 1, 'min' => 0, 'max' => 100],
|
||
['key' => 'points_free_comment_new', 'label' => '发表评论', 'type' => 'number', 'default' => 1, 'min' => 0, 'max' => 100],
|
||
['key' => 'points_free_comment_like', 'label' => '评论被赞', 'type' => 'number', 'default' => 1, 'min' => 0, 'max' => 100],
|
||
['key' => 'points_free_followed', 'label' => '被关注', 'type' => 'number', 'default' => 1, 'min' => 0, 'max' => 100],
|
||
]],
|
||
['key' => 'spend', 'title' => '积分消费', 'fields' => [
|
||
['key' => 'points_spend_comment', 'label' => '评论消耗', 'type' => 'number', 'default' => 0, 'min' => 0, 'max' => 100],
|
||
['key' => 'points_spend_download', 'label' => '下载消耗', 'type' => 'number', 'default' => 0, 'min' => 0, 'max' => 100],
|
||
['key' => 'points_spend_view_hidden', 'label' => '查看隐藏内容消耗', 'type' => 'number', 'default' => 0, 'min' => 0, 'max' => 100],
|
||
]],
|
||
['key' => 'transfer', 'title' => '积分转账', 'fields' => [
|
||
['key' => 'points_transfer_s', 'label' => '启用积分转账', 'type' => 'switch', 'default' => false],
|
||
['key' => 'points_service_charge', 'label' => '转账手续费(%)', 'type' => 'number', 'default' => 0, 'min' => 0, 'max' => 50],
|
||
['key' => 'points_transfer_min', 'label' => '最低转账金额', 'type' => 'number', 'default' => 1, 'min' => 1, 'max' => 9999],
|
||
]],
|
||
['key' => 'deduction', 'title' => '积分抵扣(预留)', 'fields' => [
|
||
['key' => 'points_deduction_s', 'label' => '启用积分抵扣', 'type' => 'switch', 'default' => false, 'help' => '对齐 legacy:运行时暂未启用。字段保留供后续接收银台现金单抵扣。'],
|
||
['key' => 'points_deduction_rate', 'label' => '积分换算比例', 'type' => 'number', 'default' => 100, 'min' => 1, 'max' => 10000, 'help' => '多少积分抵 1 元(legacy points_deduction_rate)。当前未参与下单。'],
|
||
['key' => 'points_deduction_max', 'label' => '最大抵扣比例(%)', 'type' => 'number', 'default' => 50, 'min' => 1, 'max' => 100, 'help' => '预留:最多可抵订单金额百分比。当前未参与下单。'],
|
||
]],
|
||
['key' => 'display', 'title' => '展示设置', 'fields' => [
|
||
['key' => 'points_show_balance', 'label' => '导航栏显示余额', 'type' => 'switch', 'default' => true],
|
||
['key' => 'points_show_log', 'label' => '显示积分记录', 'type' => 'switch', 'default' => true],
|
||
['key' => 'points_expire_days', 'label' => '积分有效期(天)', 'type' => 'number', 'default' => 0, 'min' => 0, 'help' => '0为永久有效'],
|
||
]],
|
||
],
|
||
],
|
||
'features' => [
|
||
'key' => 'features',
|
||
'title' => '用户功能',
|
||
'version' => '1.0.0',
|
||
'option_key' => 'aksrt_settings',
|
||
'groups' => [
|
||
['key' => 'profile-media', 'title' => '用户资料', 'fields' => [
|
||
['key' => 'avatar_upload_s', 'label' => '允许用户上传头像', 'type' => 'switch', 'default' => true],
|
||
['key' => 'avatar_external', 'label' => '外部头像源', 'type' => 'radio', 'default' => '', 'options' => [
|
||
['label' => '关闭', 'value' => ''],
|
||
['label' => 'Gravatar', 'value' => 'gravatar'],
|
||
['label' => 'WeAvatar', 'value' => 'weavatar'],
|
||
['label' => 'Cravatar', 'value' => 'cravatar'],
|
||
['label' => '极客族 Gravatar 服务', 'value' => 'geekzu'],
|
||
['label' => 'loli Gravatar 服务', 'value' => 'loli'],
|
||
['label' => 'sep.cc Gravatar 服务', 'value' => 'sep'],
|
||
['label' => 'v2ex Gravatar 服务', 'value' => 'v2ex'],
|
||
], 'help' => '启用后,用户没有自定义头像时按邮箱获取外部头像。'],
|
||
['key' => 'avatar_default_img', 'label' => '用户默认头像', 'type' => 'media', 'default' => get_theme_file_uri('assets/img/avatar-default.png'), 'help' => '建议尺寸 100×100。'],
|
||
['key' => 'user_cover_upload_s', 'label' => '允许用户上传封面', 'type' => 'switch', 'default' => true],
|
||
['key' => 'user_cover_img', 'label' => '用户默认封面', 'type' => 'media', 'default' => get_theme_file_uri('assets/img/user_t.jpg'), 'help' => '建议尺寸 1000×400;用户未设置封面时显示此图。'],
|
||
['key' => 'user_desc_std', 'label' => '用户默认签名', 'type' => 'input', 'default' => '这家伙很懒,什么都没有写...', 'help' => '用户未设置个人简介时显示的默认文案。'],
|
||
]],
|
||
['key' => 'rewards', 'title' => '打赏', 'fields' => [
|
||
['key' => 'post_rewards_s', 'label' => '用户打赏功能', 'type' => 'switcher', 'default' => true, 'help' => '开启后,登录用户可使用站内余额赞赏作者,金额直接进入作者余额。'],
|
||
['key' => 'post_rewards_text', 'label' => '打赏按钮文案', 'type' => 'input', 'default' => '赞赏', 'dependsOn' => ['key' => 'post_rewards_s', 'value' => true], 'help' => '自定义打赏按钮文字'],
|
||
['key' => 'post_rewards_amounts', 'label' => '快捷金额', 'type' => 'input', 'default' => '5,10,20,50,100', 'dependsOn' => ['key' => 'post_rewards_s', 'value' => true], 'help' => '使用英文逗号分隔'],
|
||
['key' => 'post_rewards_custom', 'label' => '允许自定义金额', 'type' => 'switcher', 'default' => true, 'dependsOn' => ['key' => 'post_rewards_s', 'value' => true]],
|
||
['key' => 'post_rewards_min', 'label' => '最低金额', 'type' => 'input', 'sanitize_type' => 'money_decimal', 'default' => '1.00', 'min' => 0.01, 'max' => 1000, 'step' => 0.01, 'dependsOn' => ['key' => 'post_rewards_s', 'value' => true]],
|
||
['key' => 'post_rewards_max', 'label' => '最高金额', 'type' => 'input', 'sanitize_type' => 'money_decimal', 'default' => '1000.00', 'min' => 1, 'max' => 100000, 'step' => 0.01, 'dependsOn' => ['key' => 'post_rewards_s', 'value' => true]],
|
||
]],
|
||
],
|
||
],
|
||
'verify' => [
|
||
'key' => 'verify',
|
||
'title' => '身份认证',
|
||
'version' => '2.0.0',
|
||
'option_key' => 'aksrt_settings',
|
||
'groups' => [
|
||
['key' => 'apply', 'title' => '申请设置', 'fields' => [
|
||
['key' => 'user_auth_s', 'label' => '启用身份认证', 'type' => 'switch', 'default' => true],
|
||
['key' => 'user_auth_apply_s', 'label' => '允许用户前台申请', 'type' => 'switch', 'default' => true, 'dependsOn' => ['key' => 'user_auth_s', 'value' => true]],
|
||
['key' => 'user_auth_apply_disable_desc', 'label' => '停用申请说明', 'type' => 'textarea', 'default' => "由于系统正在维护,暂时无法申请身份认证\n详情请联系管理员", 'dependsOn' => ['key' => 'user_auth_apply_s', 'value' => false]],
|
||
['key' => 'user_auth_apply_limit_level', 'label' => '申请最低用户等级', 'type' => 'number', 'default' => 0, 'min' => 0, 'max' => 30, 'desc' => '设置为 0 时不限制用户等级。', 'dependsOn' => ['key' => 'user_auth_apply_s', 'value' => true]],
|
||
['key' => 'user_auth_apply_desc', 'label' => '申请介绍', 'type' => 'textarea', 'sanitize_type' => 'html', 'default' => '请填写认证身份、简介和申请说明,提交后由管理员审核。', 'dependsOn' => ['key' => 'user_auth_apply_s', 'value' => true]],
|
||
]],
|
||
],
|
||
],
|
||
'level' => [
|
||
'key' => 'level',
|
||
'title' => '用户等级',
|
||
'version' => '2.0.0',
|
||
'option_key' => 'aksrt_settings',
|
||
'groups' => [
|
||
['key' => 'display', 'title' => '等级显示', 'fields' => [
|
||
['key' => 'user_level_s', 'label' => '启用用户等级', 'type' => 'switch', 'default' => true],
|
||
['key' => 'user_level_public_display', 'label' => '公开页显示等级', 'type' => 'switch', 'default' => true],
|
||
['key' => 'user_level_max', 'label' => '最高等级', 'type' => 'number', 'default' => 10, 'min' => 3, 'max' => 30],
|
||
['key' => 'user_level_notify', 'label' => '升级通知', 'type' => 'switch', 'default' => true],
|
||
]],
|
||
['key' => 'level_opt', 'title' => '升级阈值', 'fields' => [
|
||
['key' => 'user_level_opt', 'label' => '等级参数', 'type' => 'json', 'sanitize_type' => 'array', 'default' => self::default_level_options(), 'help' => 'name_N / icon_img_N / upgrade_integral_N'],
|
||
]],
|
||
['key' => 'integral', 'title' => '经验值得分', 'fields' => [
|
||
['key' => 'user_integral_opt', 'label' => '经验值配置', 'type' => 'json', 'sanitize_type' => 'array', 'default' => self::default_integral_options(), 'help' => 'day_max + 行为得分键'],
|
||
]],
|
||
],
|
||
],
|
||
'badge' => [
|
||
'key' => 'badge',
|
||
'title' => '用户徽章',
|
||
'version' => '2.0.0',
|
||
'option_key' => 'aksrt_settings',
|
||
'groups' => [
|
||
['key' => 'display', 'title' => '徽章展示', 'fields' => [
|
||
['key' => 'user_medal_s', 'label' => '启用徽章/勋章系统', 'type' => 'switch', 'default' => false],
|
||
['key' => 'user_medal_public_display', 'label' => '公开页显示徽章', 'type' => 'switch', 'default' => true],
|
||
['key' => 'user_medal_limit', 'label' => '最多显示数量', 'type' => 'number', 'default' => 3, 'min' => 1, 'max' => 8],
|
||
]],
|
||
['key' => 'catalog', 'title' => '徽章明细', 'fields' => [
|
||
[
|
||
'key' => 'user_medal_args',
|
||
'label' => '分类与条目',
|
||
'type' => 'json',
|
||
'default' => self::default_medal_args(),
|
||
'help' => '结构化目录:分类 → 条目(slug/name/desc/icon/get_type/get_val)。由 SPA UsersBadge 编辑。',
|
||
],
|
||
]],
|
||
],
|
||
],
|
||
'report' => [
|
||
'key' => 'report',
|
||
'title' => '禁封/举报',
|
||
'version' => '1.1.0',
|
||
'option_key' => 'aksrt_settings',
|
||
'groups' => [
|
||
// 字段集合、顺序、文案、默认值 1:1 对齐参考主题"用户&互动/禁封举报"
|
||
['key' => 'main', 'title' => '', 'fields' => [
|
||
['key' => 'user_ban_s', 'label' => '禁封功能', 'type' => 'switch', 'default' => true, 'help' => '启用后可以设置用户禁封,即小黑屋和封号的功能'],
|
||
['key' => 'user_report_s', 'label' => '举报功能', 'type' => 'switch', 'default' => true, 'help' => '前台显示举报按钮,用户可以举报其它不良信息', 'dependsOn' => ['key' => 'user_ban_s', 'value' => true]],
|
||
[
|
||
'key' => 'ban_preset_reason',
|
||
'label' => '预置原因',
|
||
'type' => 'group',
|
||
'button_title' => '添加原因',
|
||
'help' => '举报/禁封的时候可选择的原因',
|
||
'default' => [
|
||
['t' => '发布色情、违法内容'],
|
||
['t' => '存在欺诈骗钱行为'],
|
||
['t' => '骚扰他人'],
|
||
['t' => '涉嫌侵权'],
|
||
['t' => '发布垃圾广告信息'],
|
||
],
|
||
'fields' => [
|
||
['key' => 't', 'label' => '原因', 'type' => 'input', 'default' => ''],
|
||
],
|
||
],
|
||
['key' => 'ban_appeal_desc', 'label' => '申诉说明', 'type' => 'textarea', 'rows' => 5, 'help' => '用户申诉时候显示的内容(支持HTML代码,请注意代码规范)', 'default' => "<div>为了良好的交流环境,申诉请阅读以下事项</div>\n<li>首次违规将拉入小黑屋7天</li>\n<li>3次违规后将直接禁封账号</li>\n<li>违规情节严重将无法提交申诉</li>\n<li>申诉提交后约2-3个工作日进行审核</li>\n<li>如有其它疑问请与客服联系</li>"],
|
||
[
|
||
'key' => 'ban_appeal_keys',
|
||
'label' => '申诉所需资料',
|
||
'type' => 'group',
|
||
'button_title' => '添加申诉资料',
|
||
'help' => '用户提交申诉时候需要提供的资料;此处的信息收集,仅用于记录和申诉审核',
|
||
'default' => [
|
||
['t' => '真实姓名'],
|
||
['t' => '邮箱'],
|
||
['t' => '手机号'],
|
||
],
|
||
'fields' => [
|
||
['key' => 't', 'label' => '资料项', 'type' => 'input', 'default' => ''],
|
||
],
|
||
],
|
||
['key' => 'user_report_img_s', 'label' => '举报可上传图片', 'type' => 'switch', 'default' => true, 'help' => '举报时允许上传图片进行举证(最多上传3张)', 'dependsOn' => ['key' => 'user_report_s', 'value' => true]],
|
||
['key' => 'user_report_desc', 'label' => '举报说明', 'type' => 'textarea', 'rows' => 5, 'help' => '举报时候显示的内容(支持HTML代码,请注意代码规范)', 'dependsOn' => ['key' => 'user_report_s', 'value' => true], 'default' => "<div>举报说明:</div>\n<li>请确保举报的内容属实</li>\n<li>我们将会在收到举报后2个工作日内进行处理</li>\n<li>举报属实我们将根据社区管理条例对该用户进行封号处理</li>\n<li>如有其它疑问请与客服联系</li>"],
|
||
]],
|
||
],
|
||
],
|
||
],
|
||
];
|
||
}
|
||
}
|