diff --git a/assets/admin/src/schema/sections/global/code-highlight.js b/assets/admin/src/schema/sections/global/code-highlight.js deleted file mode 100644 index db5878ab..00000000 --- a/assets/admin/src/schema/sections/global/code-highlight.js +++ /dev/null @@ -1,68 +0,0 @@ -export const codeHighlightSchema = { - key: 'global.code-highlight', - title: '代码高亮', - icon: 'fa fas fa-code', - description: '代码块语法高亮主题、行号、最大高度等配置。', - defaults: { - highlight_kg: true, - highlight_hh: false, - highlight_btn: true, - highlight_maxheight: 400, - highlight_zt: 'enlighter', - highlight_dark_zt: 'monokai', - }, - groups: [ - { - key: 'basic', - title: '代码高亮设置', - icon: 'fa fas fa-pen', - fields: [ - { key: 'highlight_kg', label: '代码高亮开关', type: 'switch', default: true }, - { key: 'highlight_hh', label: '显示行号', type: 'switch', default: false }, - { key: 'highlight_btn', label: '显示扩展按钮', type: 'switch', default: true, help: '控制原始代码 / 信息 / 新窗口按钮的显示' }, - { key: 'highlight_maxheight', label: '最大高度(px,0=不限)', type: 'number', default: 400, min: 0, max: 2000, help: '代码块最大高度,超出滚动显示。0 表示不限制' }, - ], - }, - { - key: 'theme', - title: '主题设置', - icon: 'fa fas fa-paint-brush', - fields: [ - { - key: 'highlight_zt', - label: '日间默认主题', - type: 'select', - default: 'enlighter', - options: [ - { label: 'Enlighter', value: 'enlighter' }, - { label: 'Bootstrap 4', value: 'bootstrap4' }, - { label: 'Classic', value: 'classic' }, - { label: 'Beyond', value: 'beyond' }, - { label: 'Mowtwo', value: 'mowtwo' }, - { label: 'Eclipse', value: 'eclipse' }, - { label: 'Droide', value: 'droide' }, - { label: 'Minimal', value: 'minimal' }, - { label: 'Rowhammer', value: 'rowhammer' }, - { label: 'Godzilla', value: 'godzilla' }, - { label: 'Dracula', value: 'dracula' }, - { label: 'Atomic', value: 'atomic' }, - { label: 'Monokai', value: 'monokai' }, - ], - }, - { - key: 'highlight_dark_zt', - label: '暗色默认主题', - type: 'select', - default: 'monokai', - options: [ - { label: 'Dracula', value: 'dracula' }, - { label: 'Atomic', value: 'atomic' }, - { label: 'Monokai', value: 'monokai' }, - { label: 'Enlighter', value: 'enlighter' }, - { label: 'Bootstrap 4', value: 'bootstrap4' }, - ], - }, - ], - }, - ], -} diff --git a/assets/admin/src/schema/sections/global/common.js b/assets/admin/src/schema/sections/global/common.js index 956e2b35..4a854974 100644 --- a/assets/admin/src/schema/sections/global/common.js +++ b/assets/admin/src/schema/sections/global/common.js @@ -3,11 +3,21 @@ const themeRoot = typeof window !== 'undefined' && window.jioAdminData?.themeUri : '' const defaultThumbnail = themeRoot ? `${themeRoot}/assets/img/thumbnail.svg` : '' +const noticeColorOptions = [ + { label: '主题色', value: 'primary' }, + { label: '成功绿', value: 'success' }, + { label: '警告橙', value: 'warning' }, + { label: '危险红', value: 'danger' }, + { label: '信息蓝', value: 'info' }, + { label: '深紫', value: 'purple' }, + { label: '深灰', value: 'dark' }, +] + export const commonSchema = { key: 'global.common', title: '常用功能', icon: 'fa fas fa-cog', - description: '管理站点图像懒加载等常用基础配置。', + description: '图像懒加载、代码高亮与弹窗公告等全站常用配置。', defaults: { lazy_posts_thumb: true, lazy_avatar: true, @@ -18,6 +28,35 @@ export const commonSchema = { lazy_other: true, lazy_animation: 'blur', thumbnail: defaultThumbnail, + highlight_kg: true, + highlight_hh: false, + highlight_btn: true, + highlight_maxheight: 400, + highlight_zt: 'enlighter', + highlight_dark_zt: 'monokai', + system_notice_enabled: true, + system_notice_policy: '', + system_notice_title: '', + system_notice_content: '', + system_notice_btn1_text: '', + system_notice_btn1_link: '', + system_notice_btn1_color: 'primary', + system_notice_btn2_text: '', + system_notice_btn2_link: '', + system_notice_btn2_color: 'primary', + system_notice_btn3_text: '', + system_notice_btn3_link: '', + system_notice_btn3_color: 'primary', + system_notice_btn4_text: '', + system_notice_btn4_link: '', + system_notice_btn4_color: 'primary', + system_notice_size: '', + system_notice_radius: false, + system_notice_class: '', + system_notice_title_icon: '', + system_notice_title_class: '', + system_notice_title_style: '', + system_notice_expires: 24, }, groups: [ { @@ -53,5 +92,123 @@ export const commonSchema = { { key: 'lazy_other', label: '其它图片懒加载', type: 'switch', default: true }, ], }, + { + key: 'code-highlight', + title: '代码高亮', + icon: 'fa fas fa-code', + fields: [ + { key: 'highlight_kg', label: '代码高亮开关', type: 'switch', default: true }, + { key: 'highlight_hh', label: '显示行号', type: 'switch', default: false, dependsOn: { key: 'highlight_kg', value: true } }, + { key: 'highlight_btn', label: '显示扩展按钮', type: 'switch', default: true, dependsOn: { key: 'highlight_kg', value: true }, help: '控制原始代码 / 信息 / 新窗口按钮的显示' }, + { key: 'highlight_maxheight', label: '最大高度(px,0=不限)', type: 'number', default: 400, min: 0, max: 2000, dependsOn: { key: 'highlight_kg', value: true }, help: '代码块最大高度,超出滚动显示。0 表示不限制' }, + { + key: 'highlight_zt', + label: '日间默认主题', + type: 'select', + default: 'enlighter', + dependsOn: { key: 'highlight_kg', value: true }, + options: [ + { label: 'Enlighter', value: 'enlighter' }, + { label: 'Bootstrap 4', value: 'bootstrap4' }, + { label: 'Classic', value: 'classic' }, + { label: 'Beyond', value: 'beyond' }, + { label: 'Mowtwo', value: 'mowtwo' }, + { label: 'Eclipse', value: 'eclipse' }, + { label: 'Droide', value: 'droide' }, + { label: 'Minimal', value: 'minimal' }, + { label: 'Rowhammer', value: 'rowhammer' }, + { label: 'Godzilla', value: 'godzilla' }, + { label: 'Dracula', value: 'dracula' }, + { label: 'Atomic', value: 'atomic' }, + { label: 'Monokai', value: 'monokai' }, + ], + }, + { + key: 'highlight_dark_zt', + label: '暗色默认主题', + type: 'select', + default: 'monokai', + dependsOn: { key: 'highlight_kg', value: true }, + options: [ + { label: 'Dracula', value: 'dracula' }, + { label: 'Atomic', value: 'atomic' }, + { label: 'Monokai', value: 'monokai' }, + { label: 'Enlighter', value: 'enlighter' }, + { label: 'Bootstrap 4', value: 'bootstrap4' }, + ], + }, + ], + }, + { + key: 'system-notice', + title: '弹窗通知', + icon: 'fa fas fa-bullhorn', + fields: [ + { key: 'system_notice_enabled', label: '启用系统公告', type: 'switch', default: true }, + { + key: 'system_notice_policy', + label: '显示对象', + type: 'select', + default: '', + options: [ + { label: '所有访客', value: '' }, + { label: '仅登录用户', value: 'signin' }, + { label: '仅 VIP 会员', value: 'vip' }, + { label: '仅非 VIP', value: 'free' }, + { label: '仅认证用户', value: 'auth' }, + ], + dependsOn: { key: 'system_notice_enabled', value: true }, + }, + { key: 'system_notice_title', label: '公告标题', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, + { key: 'system_notice_content', label: '公告内容', type: 'textarea', default: '', rows: 5, dependsOn: { key: 'system_notice_enabled', value: true }, help: '支持 HTML 标签' }, + { key: 'system_notice_btn1_text', label: '按钮 1 文案', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, + { key: 'system_notice_btn1_link', label: '按钮 1 链接', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true }, help: '可选,填写后按钮变为链接' }, + { key: 'system_notice_btn1_color', label: '按钮 1 颜色', type: 'select', default: 'primary', options: noticeColorOptions, dependsOn: { key: 'system_notice_enabled', value: true } }, + { key: 'system_notice_btn2_text', label: '按钮 2 文案', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, + { key: 'system_notice_btn2_link', label: '按钮 2 链接', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, + { key: 'system_notice_btn2_color', label: '按钮 2 颜色', type: 'select', default: 'primary', options: noticeColorOptions, dependsOn: { key: 'system_notice_enabled', value: true } }, + { key: 'system_notice_btn3_text', label: '按钮 3 文案', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, + { key: 'system_notice_btn3_link', label: '按钮 3 链接', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, + { key: 'system_notice_btn3_color', label: '按钮 3 颜色', type: 'select', default: 'primary', options: noticeColorOptions, dependsOn: { key: 'system_notice_enabled', value: true } }, + { key: 'system_notice_btn4_text', label: '按钮 4 文案', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, + { key: 'system_notice_btn4_link', label: '按钮 4 链接', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, + { key: 'system_notice_btn4_color', label: '按钮 4 颜色', type: 'select', default: 'primary', options: noticeColorOptions, dependsOn: { key: 'system_notice_enabled', value: true } }, + { + key: 'system_notice_size', + label: '弹窗尺寸', + type: 'select', + default: '', + options: [ + { label: '默认', value: '' }, + { label: '迷你', value: 'modal-mini' }, + { label: '小号', value: 'modal-sm' }, + { label: '大号', value: 'modal-lg' }, + ], + dependsOn: { key: 'system_notice_enabled', value: true }, + }, + { key: 'system_notice_radius', label: '按钮圆角', type: 'switch', default: false, dependsOn: { key: 'system_notice_enabled', value: true }, help: '开启后弹窗按钮使用圆角样式' }, + { key: 'system_notice_class', label: '公告样式类', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, + { key: 'system_notice_title_icon', label: '标题图标', type: 'icon', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, + { + key: 'system_notice_title_class', + label: '标题背景配色', + type: 'select', + default: '', + dependsOn: { key: 'system_notice_enabled', value: true }, + options: [ + { label: '无', value: '' }, + { label: '炫彩黄', value: 'jb-yellow' }, + { label: '炫彩蓝', value: 'jb-blue' }, + { label: '炫彩绿', value: 'jb-green' }, + { label: '炫彩紫', value: 'jb-purple' }, + { label: '炫彩红', value: 'jb-red' }, + { label: '炫彩橙', value: 'jb-orange' }, + ], + help: '弹窗标题区域的背景配色方案', + }, + { key: 'system_notice_title_style', label: '标题样式', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, + { key: 'system_notice_expires', label: '弹窗周期(小时)', type: 'number', default: 24, min: 0, max: 720, dependsOn: { key: 'system_notice_enabled', value: true }, help: '0 表示永不过期' }, + ], + }, ], } diff --git a/assets/admin/src/schema/sections/global/index.js b/assets/admin/src/schema/sections/global/index.js index 615aabda..6bbe4426 100644 --- a/assets/admin/src/schema/sections/global/index.js +++ b/assets/admin/src/schema/sections/global/index.js @@ -12,8 +12,6 @@ import { tabbarSchema } from './tabbar.js' import { i18nSchema } from './i18n.js' import { customCodeSchema } from './custom-code.js' import { seoSchema } from './seo.js' -import { codeHighlightSchema } from './code-highlight.js' -import { systemNoticeSchema } from './system-notice.js' import { shareSchema } from './share.js' export const globalSchemas = { @@ -26,7 +24,5 @@ export const globalSchemas = { i18n: i18nSchema, 'custom-code': customCodeSchema, seo: seoSchema, - 'code-highlight': codeHighlightSchema, - 'system-notice': systemNoticeSchema, share: shareSchema, } diff --git a/assets/admin/src/schema/sections/global/system-notice.js b/assets/admin/src/schema/sections/global/system-notice.js deleted file mode 100644 index a61b1123..00000000 --- a/assets/admin/src/schema/sections/global/system-notice.js +++ /dev/null @@ -1,149 +0,0 @@ -export const systemNoticeSchema = { - key: 'global.system-notice', - title: '弹窗通知', - icon: 'fa fas fa-bullhorn', - description: '全站弹窗公告配置,支持按用户身份定向、多按钮组、弹窗尺寸与过期周期。', - defaults: { - system_notice_enabled: true, - system_notice_policy: '', - system_notice_title: '', - system_notice_content: '', - system_notice_btn1_text: '', - system_notice_btn1_link: '', - system_notice_btn1_color: 'primary', - system_notice_btn2_text: '', - system_notice_btn2_link: '', - system_notice_btn2_color: 'primary', - system_notice_btn3_text: '', - system_notice_btn3_link: '', - system_notice_btn3_color: 'primary', - system_notice_btn4_text: '', - system_notice_btn4_link: '', - system_notice_btn4_color: 'primary', - system_notice_size: '', - system_notice_radius: false, - system_notice_class: '', - system_notice_title_icon: '', - system_notice_title_class: '', - system_notice_title_style: '', - system_notice_expires: 24, - }, - groups: [ - { - key: 'basic', - title: '公告设置', - icon: 'fa fas fa-bullhorn', - fields: [ - { key: 'system_notice_enabled', label: '启用系统公告', type: 'switch', default: true }, - { - key: 'system_notice_policy', - label: '显示对象', - type: 'select', - default: '', - options: [ - { label: '所有访客', value: '' }, - { label: '仅登录用户', value: 'signin' }, - { label: '仅 VIP 会员', value: 'vip' }, - { label: '仅非 VIP', value: 'free' }, - { label: '仅认证用户', value: 'auth' }, - ], - dependsOn: { key: 'system_notice_enabled', value: true }, - }, - { key: 'system_notice_title', label: '公告标题', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, - { key: 'system_notice_content', label: '公告内容', type: 'textarea', default: '', rows: 5, dependsOn: { key: 'system_notice_enabled', value: true }, help: '支持 HTML 标签' }, - ], - }, - { - key: 'buttons', - title: '按钮组(留空则不显示)', - icon: 'fa fas fa-th-large', - fields: [ - { key: 'system_notice_btn1_text', label: '按钮 1 文案', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, - { key: 'system_notice_btn1_link', label: '按钮 1 链接', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true }, help: '可选,填写后按钮变为链接' }, - { key: 'system_notice_btn1_color', label: '按钮 1 颜色', type: 'select', default: 'primary', options: [ - { label: '主题色', value: 'primary' }, - { label: '成功绿', value: 'success' }, - { label: '警告橙', value: 'warning' }, - { label: '危险红', value: 'danger' }, - { label: '信息蓝', value: 'info' }, - { label: '深紫', value: 'purple' }, - { label: '深灰', value: 'dark' }, - ], dependsOn: { key: 'system_notice_enabled', value: true } }, - { key: 'system_notice_btn2_text', label: '按钮 2 文案', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, - { key: 'system_notice_btn2_link', label: '按钮 2 链接', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, - { key: 'system_notice_btn2_color', label: '按钮 2 颜色', type: 'select', default: 'primary', options: [ - { label: '主题色', value: 'primary' }, - { label: '成功绿', value: 'success' }, - { label: '警告橙', value: 'warning' }, - { label: '危险红', value: 'danger' }, - { label: '信息蓝', value: 'info' }, - { label: '深紫', value: 'purple' }, - { label: '深灰', value: 'dark' }, - ], dependsOn: { key: 'system_notice_enabled', value: true } }, - { key: 'system_notice_btn3_text', label: '按钮 3 文案', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, - { key: 'system_notice_btn3_link', label: '按钮 3 链接', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, - { key: 'system_notice_btn3_color', label: '按钮 3 颜色', type: 'select', default: 'primary', options: [ - { label: '主题色', value: 'primary' }, - { label: '成功绿', value: 'success' }, - { label: '警告橙', value: 'warning' }, - { label: '危险红', value: 'danger' }, - { label: '信息蓝', value: 'info' }, - { label: '深紫', value: 'purple' }, - { label: '深灰', value: 'dark' }, - ], dependsOn: { key: 'system_notice_enabled', value: true } }, - { key: 'system_notice_btn4_text', label: '按钮 4 文案', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, - { key: 'system_notice_btn4_link', label: '按钮 4 链接', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, - { key: 'system_notice_btn4_color', label: '按钮 4 颜色', type: 'select', default: 'primary', options: [ - { label: '主题色', value: 'primary' }, - { label: '成功绿', value: 'success' }, - { label: '警告橙', value: 'warning' }, - { label: '危险红', value: 'danger' }, - { label: '信息蓝', value: 'info' }, - { label: '深紫', value: 'purple' }, - { label: '深灰', value: 'dark' }, - ], dependsOn: { key: 'system_notice_enabled', value: true } }, - ], - }, - { - key: 'style', - title: '样式设置', - icon: 'fa fas fa-paint-brush', - fields: [ - { - key: 'system_notice_size', - label: '弹窗尺寸', - type: 'select', - default: '', - options: [ - { label: '默认', value: '' }, - { label: '迷你', value: 'modal-mini' }, - { label: '小号', value: 'modal-sm' }, - { label: '大号', value: 'modal-lg' }, - ], - dependsOn: { key: 'system_notice_enabled', value: true }, - }, - { key: 'system_notice_radius', label: '按钮圆角', type: 'switch', default: false, dependsOn: { key: 'system_notice_enabled', value: true }, help: '开启后弹窗按钮使用圆角样式' }, - { key: 'system_notice_class', label: '公告样式类', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, - { key: 'system_notice_title_icon', label: '标题图标', type: 'icon', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, - { key: 'system_notice_title_class', label: '标题背景配色', type: 'select', default: '', dependsOn: { key: 'system_notice_enabled', value: true }, options: [ - { label: '无', value: '' }, - { label: '炫彩黄', value: 'jb-yellow' }, - { label: '炫彩蓝', value: 'jb-blue' }, - { label: '炫彩绿', value: 'jb-green' }, - { label: '炫彩紫', value: 'jb-purple' }, - { label: '炫彩红', value: 'jb-red' }, - { label: '炫彩橙', value: 'jb-orange' }, - ], help: '弹窗标题区域的背景配色方案' }, - { key: 'system_notice_title_style', label: '标题样式', type: 'input', default: '', dependsOn: { key: 'system_notice_enabled', value: true } }, - ], - }, - { - key: 'expire', - title: '过期设置', - icon: 'fa fas fa-clock', - fields: [ - { key: 'system_notice_expires', label: '弹窗周期(小时)', type: 'number', default: 24, min: 0, max: 720, dependsOn: { key: 'system_notice_enabled', value: true }, help: '0 表示永不过期' }, - ], - }, - ], -} diff --git a/assets/admin/src/schema/sections/post-list/index.js b/assets/admin/src/schema/sections/post-list/index.js index 7315b8df..d91aa869 100644 --- a/assets/admin/src/schema/sections/post-list/index.js +++ b/assets/admin/src/schema/sections/post-list/index.js @@ -7,7 +7,6 @@ import { thumbSchema } from './thumb.js' import { pageSchema } from './page.js' import { filterSchema } from './filter.js' import { featureSchema } from './feature.js' -import { paySchema } from './pay.js' import { commentSchema } from './comment.js' import { submitSchema } from './submit.js' @@ -17,7 +16,6 @@ export const postListSchemas = { page: pageSchema, filter: filterSchema, feature: featureSchema, - pay: paySchema, comment: commentSchema, submit: submitSchema, } diff --git a/assets/admin/src/schema/sections/post-list/pay.js b/assets/admin/src/schema/sections/post-list/pay.js deleted file mode 100644 index 1206f6fc..00000000 --- a/assets/admin/src/schema/sections/post-list/pay.js +++ /dev/null @@ -1,46 +0,0 @@ -export const paySchema = { - key: 'post_list.pay', - title: '付费内容', - icon: 'fa fas fa-yen-sign', - description: '配置文章付费阅读、下载功能和购买用户显示。', - defaults: { - post_pay_enable: false, - post_pay_price_default: 0, - post_pay_free_logged_show: false, - post_pay_box_position: 'content', - post_pay_mark: '付费', - post_pay_show_user: false, - post_download_enable: false, - post_download_remote_s: false, - post_download_verify_nonce: true, - post_download_user_log: true, - post_download_post_log: true, - }, - groups: [ - { - key: 'basic', - title: '付费设置', - icon: 'fa fas fa-database', - fields: [ - { key: 'post_pay_enable', label: '启用付费内容', type: 'switch', default: false }, - { key: 'post_pay_price_default', label: '默认价格', type: 'number', default: 0, min: 0, max: 9999, dependsOn: { key: 'post_pay_enable', value: true } }, - { key: 'post_pay_free_logged_show', label: '登录用户显示免费', type: 'switch', default: false, dependsOn: { key: 'post_pay_enable', value: true } }, - { key: 'post_pay_box_position', label: '付费框位置', type: 'radio', default: 'content', options: [{ label: '内容前', value: 'content' }, { label: '全文遮罩', value: 'mask' }], dependsOn: { key: 'post_pay_enable', value: true } }, - { key: 'post_pay_mark', label: '付费标记', type: 'input', default: '付费', dependsOn: { key: 'post_pay_enable', value: true } }, - { key: 'post_pay_show_user', label: '显示购买用户', type: 'switch', default: false, dependsOn: { key: 'post_pay_enable', value: true } }, - ], - }, - { - key: 'download', - title: '下载设置', - icon: 'fa fas fa-download', - fields: [ - { key: 'post_download_enable', label: '启用下载功能', type: 'switch', default: false }, - { key: 'post_download_remote_s', label: '远程文件下载', type: 'switch', default: false, dependsOn: { key: 'post_download_enable', value: true } }, - { key: 'post_download_verify_nonce', label: '下载鉴权', type: 'switch', default: true, dependsOn: { key: 'post_download_enable', value: true } }, - { key: 'post_download_user_log', label: '用户下载日志', type: 'switch', default: true, dependsOn: { key: 'post_download_enable', value: true } }, - { key: 'post_download_post_log', label: '文章下载日志', type: 'switch', default: true, dependsOn: { key: 'post_download_enable', value: true } }, - ], - }, - ], -} diff --git a/src/Admin/Schema/GlobalSchema.php b/src/Admin/Schema/GlobalSchema.php index 4bc8c778..718527be 100644 --- a/src/Admin/Schema/GlobalSchema.php +++ b/src/Admin/Schema/GlobalSchema.php @@ -35,6 +35,118 @@ class GlobalSchema { ]], ['key' => 'thumbnail', 'label' => '懒加载预载图', 'type' => 'media', 'default' => get_template_directory_uri() . '/assets/img/thumbnail.svg'], ]], + ['key' => 'code-highlight', 'title' => '代码高亮设置', 'fields' => [ + ['key' => 'highlight_kg', 'label' => '代码高亮开关', 'type' => 'switch', 'default' => true], + ['key' => 'highlight_hh', 'label' => '显示行号', 'type' => 'switch', 'default' => false, 'dependsOn' => ['key' => 'highlight_kg', 'value' => true]], + ['key' => 'highlight_btn', 'label' => '显示扩展按钮', 'type' => 'switch', 'default' => true, 'dependsOn' => ['key' => 'highlight_kg', 'value' => true]], + ['key' => 'highlight_maxheight', 'label' => '最大高度(px,0=不限)', 'type' => 'number', 'default' => 400, 'min' => 0, 'max' => 2000, 'dependsOn' => ['key' => 'highlight_kg', 'value' => true]], + ]], + ['key' => 'code-theme', 'title' => '主题设置', 'fields' => [ + ['key' => 'highlight_zt', 'label' => '日间默认主题', 'type' => 'select', 'default' => 'enlighter', 'dependsOn' => ['key' => 'highlight_kg', 'value' => true], 'options' => [ + ['label' => '浅色: Enlighter', 'value' => 'enlighter'], + ['label' => '浅色: Bootstrap', 'value' => 'bootstrap4'], + ['label' => '浅色: Classic', 'value' => 'classic'], + ['label' => '浅色: Beyond', 'value' => 'beyond'], + ['label' => '浅色: Mowtwo', 'value' => 'mowtwo'], + ['label' => '浅色: Eclipse', 'value' => 'eclipse'], + ['label' => '浅色: Droide', 'value' => 'droide'], + ['label' => '浅色: Minimal', 'value' => 'minimal'], + ['label' => '浅色: Rowhammer', 'value' => 'rowhammer'], + ['label' => '浅色: Godzilla', 'value' => 'godzilla'], + ['label' => '深色: Dracula', 'value' => 'dracula'], + ['label' => '深色: Atomic', 'value' => 'atomic'], + ['label' => '深色: Monokai', 'value' => 'monokai'], + ]], + ['key' => 'highlight_dark_zt', 'label' => '暗色默认主题', 'type' => 'select', 'default' => 'monokai', 'dependsOn' => ['key' => 'highlight_kg', 'value' => true], 'options' => [ + ['label' => '深色: Dracula', 'value' => 'dracula'], + ['label' => '深色: Atomic', 'value' => 'atomic'], + ['label' => '深色: Monokai', 'value' => 'monokai'], + ['label' => '浅色: Enlighter', 'value' => 'enlighter'], + ['label' => '浅色: Bootstrap', 'value' => 'bootstrap4'], + ]], + ]], + ['key' => 'notice-basic', 'title' => '公告设置', 'fields' => [ + ['key' => 'system_notice_enabled', 'label' => '启用系统公告', 'type' => 'switch', 'default' => true], + ['key' => 'system_notice_policy', 'label' => '显示对象', 'type' => 'select', 'default' => '', 'options' => [ + ['label' => '所有访客', 'value' => ''], + ['label' => '仅登录用户', 'value' => 'signin'], + ['label' => '仅 VIP 会员', 'value' => 'vip'], + ['label' => '仅非 VIP', 'value' => 'free'], + ['label' => '仅认证用户', 'value' => 'auth'], + ]], + ['key' => 'system_notice_title', 'label' => '公告标题', 'type' => 'input', 'default' => ''], + ['key' => 'system_notice_content', 'label' => '公告内容', 'type' => 'textarea', 'default' => ''], + ]], + ['key' => 'notice-buttons', 'title' => '按钮组(留空则不显示)', 'fields' => [ + ['key' => 'system_notice_btn1_text', 'label' => '按钮 1 文案', 'type' => 'input', 'default' => ''], + ['key' => 'system_notice_btn1_link', 'label' => '按钮 1 链接', 'type' => 'input', 'default' => ''], + ['key' => 'system_notice_btn1_color', 'label' => '按钮 1 颜色', 'type' => 'select', 'default' => 'primary', 'options' => [ + ['label' => '主题色', 'value' => 'primary'], + ['label' => '成功绿', 'value' => 'success'], + ['label' => '警告橙', 'value' => 'warning'], + ['label' => '危险红', 'value' => 'danger'], + ['label' => '信息蓝', 'value' => 'info'], + ['label' => '深紫', 'value' => 'purple'], + ['label' => '深灰', 'value' => 'dark'], + ]], + ['key' => 'system_notice_btn2_text', 'label' => '按钮 2 文案', 'type' => 'input', 'default' => ''], + ['key' => 'system_notice_btn2_link', 'label' => '按钮 2 链接', 'type' => 'input', 'default' => ''], + ['key' => 'system_notice_btn2_color', 'label' => '按钮 2 颜色', 'type' => 'select', 'default' => 'primary', 'options' => [ + ['label' => '主题色', 'value' => 'primary'], + ['label' => '成功绿', 'value' => 'success'], + ['label' => '警告橙', 'value' => 'warning'], + ['label' => '危险红', 'value' => 'danger'], + ['label' => '信息蓝', 'value' => 'info'], + ['label' => '深紫', 'value' => 'purple'], + ['label' => '深灰', 'value' => 'dark'], + ]], + ['key' => 'system_notice_btn3_text', 'label' => '按钮 3 文案', 'type' => 'input', 'default' => ''], + ['key' => 'system_notice_btn3_link', 'label' => '按钮 3 链接', 'type' => 'input', 'default' => ''], + ['key' => 'system_notice_btn3_color', 'label' => '按钮 3 颜色', 'type' => 'select', 'default' => 'primary', 'options' => [ + ['label' => '主题色', 'value' => 'primary'], + ['label' => '成功绿', 'value' => 'success'], + ['label' => '警告橙', 'value' => 'warning'], + ['label' => '危险红', 'value' => 'danger'], + ['label' => '信息蓝', 'value' => 'info'], + ['label' => '深紫', 'value' => 'purple'], + ['label' => '深灰', 'value' => 'dark'], + ]], + ['key' => 'system_notice_btn4_text', 'label' => '按钮 4 文案', 'type' => 'input', 'default' => ''], + ['key' => 'system_notice_btn4_link', 'label' => '按钮 4 链接', 'type' => 'input', 'default' => ''], + ['key' => 'system_notice_btn4_color', 'label' => '按钮 4 颜色', 'type' => 'select', 'default' => 'primary', 'options' => [ + ['label' => '主题色', 'value' => 'primary'], + ['label' => '成功绿', 'value' => 'success'], + ['label' => '警告橙', 'value' => 'warning'], + ['label' => '危险红', 'value' => 'danger'], + ['label' => '信息蓝', 'value' => 'info'], + ['label' => '深紫', 'value' => 'purple'], + ['label' => '深灰', 'value' => 'dark'], + ]], + ]], + ['key' => 'notice-style', 'title' => '样式设置', 'fields' => [ + ['key' => 'system_notice_size', 'label' => '弹窗尺寸', 'type' => 'select', 'default' => '', 'options' => [ + ['label' => '默认', 'value' => ''], + ['label' => '迷你', 'value' => 'modal-mini'], + ['label' => '小号', 'value' => 'modal-sm'], + ['label' => '大号', 'value' => 'modal-lg'], + ]], + ['key' => 'system_notice_radius', 'label' => '按钮圆角', 'type' => 'switch', 'default' => false, 'help' => '开启后弹窗按钮使用圆角样式'], + ['key' => 'system_notice_class', 'label' => '公告样式类', 'type' => 'input', 'default' => ''], + ['key' => 'system_notice_title_icon', 'label' => '标题图标', 'type' => 'icon', 'default' => ''], + ['key' => 'system_notice_title_class', 'label' => '标题背景配色', 'type' => 'select', 'default' => '', 'options' => [ + ['label' => '无', 'value' => ''], + ['label' => '炫彩黄', 'value' => 'jb-yellow'], + ['label' => '炫彩蓝', 'value' => 'jb-blue'], + ['label' => '炫彩绿', 'value' => 'jb-green'], + ['label' => '炫彩紫', 'value' => 'jb-purple'], + ['label' => '炫彩红', 'value' => 'jb-red'], + ['label' => '炫彩橙', 'value' => 'jb-orange'], + ], 'help' => '弹窗标题区域的背景配色方案'], + ['key' => 'system_notice_title_style', 'label' => '标题样式', 'type' => 'input', 'default' => ''], + ]], + ['key' => 'notice-expire', 'title' => '过期设置', 'fields' => [ + ['key' => 'system_notice_expires', 'label' => '弹窗周期(小时)', 'type' => 'number', 'default' => 24, 'min' => 0, 'max' => 720, 'help' => '0 表示永不过期'], + ]], ], ], 'logo' => [ @@ -160,134 +272,6 @@ class GlobalSchema { ]], ], ], - 'code-highlight' => [ - 'key' => 'code-highlight', - 'title' => '代码高亮', - 'version' => '1.0.0', - 'option_key' => 'jio_settings', - 'groups' => [ - ['key' => 'basic', 'title' => '代码高亮设置', 'fields' => [ - ['key' => 'highlight_kg', 'label' => '代码高亮开关', 'type' => 'switch', 'default' => true], - ['key' => 'highlight_hh', 'label' => '显示行号', 'type' => 'switch', 'default' => false, 'dependsOn' => ['key' => 'highlight_kg', 'value' => true]], - ['key' => 'highlight_btn', 'label' => '显示扩展按钮', 'type' => 'switch', 'default' => true, 'dependsOn' => ['key' => 'highlight_kg', 'value' => true]], - ['key' => 'highlight_maxheight', 'label' => '最大高度(px,0=不限)', 'type' => 'number', 'default' => 400, 'min' => 0, 'max' => 2000, 'dependsOn' => ['key' => 'highlight_kg', 'value' => true]], - ]], - ['key' => 'theme', 'title' => '主题设置', 'fields' => [ - ['key' => 'highlight_zt', 'label' => '日间默认主题', 'type' => 'select', 'default' => 'enlighter', 'dependsOn' => ['key' => 'highlight_kg', 'value' => true], 'options' => [ - ['label' => '浅色: Enlighter', 'value' => 'enlighter'], - ['label' => '浅色: Bootstrap', 'value' => 'bootstrap4'], - ['label' => '浅色: Classic', 'value' => 'classic'], - ['label' => '浅色: Beyond', 'value' => 'beyond'], - ['label' => '浅色: Mowtwo', 'value' => 'mowtwo'], - ['label' => '浅色: Eclipse', 'value' => 'eclipse'], - ['label' => '浅色: Droide', 'value' => 'droide'], - ['label' => '浅色: Minimal', 'value' => 'minimal'], - ['label' => '浅色: Rowhammer', 'value' => 'rowhammer'], - ['label' => '浅色: Godzilla', 'value' => 'godzilla'], - ['label' => '深色: Dracula', 'value' => 'dracula'], - ['label' => '深色: Atomic', 'value' => 'atomic'], - ['label' => '深色: Monokai', 'value' => 'monokai'], - ]], - ['key' => 'highlight_dark_zt', 'label' => '暗色默认主题', 'type' => 'select', 'default' => 'monokai', 'dependsOn' => ['key' => 'highlight_kg', 'value' => true], 'options' => [ - ['label' => '深色: Dracula', 'value' => 'dracula'], - ['label' => '深色: Atomic', 'value' => 'atomic'], - ['label' => '深色: Monokai', 'value' => 'monokai'], - ['label' => '浅色: Enlighter', 'value' => 'enlighter'], - ['label' => '浅色: Bootstrap', 'value' => 'bootstrap4'], - ]], - ]], - ], - ], - 'system-notice' => [ - 'key' => 'system-notice', - 'title' => '系统公告', - 'version' => '2.0.0', - 'option_key' => 'jio_settings', - 'groups' => [ - ['key' => 'basic', 'title' => '公告设置', 'fields' => [ - ['key' => 'system_notice_enabled', 'label' => '启用系统公告', 'type' => 'switch', 'default' => true], - ['key' => 'system_notice_policy', 'label' => '显示对象', 'type' => 'select', 'default' => '', 'options' => [ - ['label' => '所有访客', 'value' => ''], - ['label' => '仅登录用户', 'value' => 'signin'], - ['label' => '仅 VIP 会员', 'value' => 'vip'], - ['label' => '仅非 VIP', 'value' => 'free'], - ['label' => '仅认证用户', 'value' => 'auth'], - ]], - ['key' => 'system_notice_title', 'label' => '公告标题', 'type' => 'input', 'default' => ''], - ['key' => 'system_notice_content', 'label' => '公告内容', 'type' => 'textarea', 'default' => ''], - ]], - ['key' => 'buttons', 'title' => '按钮组(留空则不显示)', 'fields' => [ - ['key' => 'system_notice_btn1_text', 'label' => '按钮 1 文案', 'type' => 'input', 'default' => ''], - ['key' => 'system_notice_btn1_link', 'label' => '按钮 1 链接', 'type' => 'input', 'default' => ''], - ['key' => 'system_notice_btn1_color', 'label' => '按钮 1 颜色', 'type' => 'select', 'default' => 'primary', 'options' => [ - ['label' => '主题色', 'value' => 'primary'], - ['label' => '成功绿', 'value' => 'success'], - ['label' => '警告橙', 'value' => 'warning'], - ['label' => '危险红', 'value' => 'danger'], - ['label' => '信息蓝', 'value' => 'info'], - ['label' => '深紫', 'value' => 'purple'], - ['label' => '深灰', 'value' => 'dark'], - ]], - ['key' => 'system_notice_btn2_text', 'label' => '按钮 2 文案', 'type' => 'input', 'default' => ''], - ['key' => 'system_notice_btn2_link', 'label' => '按钮 2 链接', 'type' => 'input', 'default' => ''], - ['key' => 'system_notice_btn2_color', 'label' => '按钮 2 颜色', 'type' => 'select', 'default' => 'primary', 'options' => [ - ['label' => '主题色', 'value' => 'primary'], - ['label' => '成功绿', 'value' => 'success'], - ['label' => '警告橙', 'value' => 'warning'], - ['label' => '危险红', 'value' => 'danger'], - ['label' => '信息蓝', 'value' => 'info'], - ['label' => '深紫', 'value' => 'purple'], - ['label' => '深灰', 'value' => 'dark'], - ]], - ['key' => 'system_notice_btn3_text', 'label' => '按钮 3 文案', 'type' => 'input', 'default' => ''], - ['key' => 'system_notice_btn3_link', 'label' => '按钮 3 链接', 'type' => 'input', 'default' => ''], - ['key' => 'system_notice_btn3_color', 'label' => '按钮 3 颜色', 'type' => 'select', 'default' => 'primary', 'options' => [ - ['label' => '主题色', 'value' => 'primary'], - ['label' => '成功绿', 'value' => 'success'], - ['label' => '警告橙', 'value' => 'warning'], - ['label' => '危险红', 'value' => 'danger'], - ['label' => '信息蓝', 'value' => 'info'], - ['label' => '深紫', 'value' => 'purple'], - ['label' => '深灰', 'value' => 'dark'], - ]], - ['key' => 'system_notice_btn4_text', 'label' => '按钮 4 文案', 'type' => 'input', 'default' => ''], - ['key' => 'system_notice_btn4_link', 'label' => '按钮 4 链接', 'type' => 'input', 'default' => ''], - ['key' => 'system_notice_btn4_color', 'label' => '按钮 4 颜色', 'type' => 'select', 'default' => 'primary', 'options' => [ - ['label' => '主题色', 'value' => 'primary'], - ['label' => '成功绿', 'value' => 'success'], - ['label' => '警告橙', 'value' => 'warning'], - ['label' => '危险红', 'value' => 'danger'], - ['label' => '信息蓝', 'value' => 'info'], - ['label' => '深紫', 'value' => 'purple'], - ['label' => '深灰', 'value' => 'dark'], - ]], - ]], - ['key' => 'style', 'title' => '样式设置', 'fields' => [ - ['key' => 'system_notice_size', 'label' => '弹窗尺寸', 'type' => 'select', 'default' => '', 'options' => [ - ['label' => '默认', 'value' => ''], - ['label' => '迷你', 'value' => 'modal-mini'], - ['label' => '小号', 'value' => 'modal-sm'], - ['label' => '大号', 'value' => 'modal-lg'], - ]], - ['key' => 'system_notice_radius', 'label' => '按钮圆角', 'type' => 'switch', 'default' => false, 'help' => '开启后弹窗按钮使用圆角样式'], - ['key' => 'system_notice_class', 'label' => '公告样式类', 'type' => 'input', 'default' => ''], - ['key' => 'system_notice_title_icon', 'label' => '标题图标', 'type' => 'icon', 'default' => ''], - ['key' => 'system_notice_title_class', 'label' => '标题背景配色', 'type' => 'select', 'default' => '', 'options' => [ - ['label' => '无', 'value' => ''], - ['label' => '炫彩黄', 'value' => 'jb-yellow'], - ['label' => '炫彩蓝', 'value' => 'jb-blue'], - ['label' => '炫彩绿', 'value' => 'jb-green'], - ['label' => '炫彩紫', 'value' => 'jb-purple'], - ['label' => '炫彩红', 'value' => 'jb-red'], - ['label' => '炫彩橙', 'value' => 'jb-orange'], - ], 'help' => '弹窗标题区域的背景配色方案'], - ['key' => 'system_notice_title_style', 'label' => '标题样式', 'type' => 'input', 'default' => ''], - ]], - ['key' => 'expire', 'title' => '过期设置', 'fields' => [ - ['key' => 'system_notice_expires', 'label' => '弹窗周期(小时)', 'type' => 'number', 'default' => 24, 'min' => 0, 'max' => 720, 'help' => '0 表示永不过期'], - ]], - ], - ], 'search' => [ 'key' => 'search', 'title' => '搜索功能', diff --git a/src/Admin/Schema/SchemaPostList.php b/src/Admin/Schema/SchemaPostList.php index b7f36e53..4cdc77b5 100644 --- a/src/Admin/Schema/SchemaPostList.php +++ b/src/Admin/Schema/SchemaPostList.php @@ -254,32 +254,6 @@ class SchemaPostList { ]], ], ], - 'pay' => [ - 'key' => 'pay', - 'title' => '付费内容', - 'version' => '1.0.0', - 'option_key' => 'jio_settings', - 'groups' => [ - ['key' => 'basic', 'title' => '付费设置', 'fields' => [ - ['key' => 'post_pay_enable', 'label' => '启用付费内容', 'type' => 'switch', 'default' => false], - ['key' => 'post_pay_price_default', 'label' => '默认价格', 'type' => 'number', 'default' => 0, 'min' => 0, 'max' => 9999], - ['key' => 'post_pay_free_logged_show', 'label' => '登录用户显示免费', 'type' => 'switch', 'default' => false], - ['key' => 'post_pay_box_position', 'label' => '付费框位置', 'type' => 'radio', 'default' => 'content', 'options' => [ - ['label' => '内容前', 'value' => 'content'], - ['label' => '全文遮罩', 'value' => 'mask'], - ]], - ['key' => 'post_pay_mark', 'label' => '付费标记', 'type' => 'input', 'default' => '付费'], - ['key' => 'post_pay_show_user', 'label' => '显示购买用户', 'type' => 'switch', 'default' => false], - ]], - ['key' => 'download', 'title' => '下载设置', 'fields' => [ - ['key' => 'post_download_enable', 'label' => '启用下载功能', 'type' => 'switch', 'default' => false], - ['key' => 'post_download_remote_s', 'label' => '远程文件下载', 'type' => 'switch', 'default' => false], - ['key' => 'post_download_verify_nonce', 'label' => '下载鉴权', 'type' => 'switch', 'default' => true], - ['key' => 'post_download_user_log', 'label' => '用户下载日志', 'type' => 'switch', 'default' => true], - ['key' => 'post_download_post_log', 'label' => '文章下载日志', 'type' => 'switch', 'default' => true], - ]], - ], - ], 'submit' => [ 'key' => 'submit', 'title' => '前台投稿', diff --git a/tools/admin-contract-report.json b/tools/admin-contract-report.json index 5753ebd0..5b54b576 100644 --- a/tools/admin-contract-report.json +++ b/tools/admin-contract-report.json @@ -1,5 +1,5 @@ { - "generated_at": "2026-11-02T06:04:33+00:00", + "generated_at": "2026-11-03T09:49:39+00:00", "errors": [], "warnings": [ "customPage tools-update section 'tools/update' not in PHP schema (ok if pure operational page)", @@ -38,7 +38,6 @@ "enum incomplete parse for 'pay_box_position' (php subset of js): php=[box_top] js=[box_top,top,bottom,box_bottom]", "enum incomplete parse for 'pay_modo_default' (php subset of js): php=[0] js=[0,points]", "enum incomplete parse for 'pay_wechat_sdk_options' (php subset of js): php=[official_wechat] js=[official_wechat,epay,null]", - "enum incomplete parse for 'post_pay_box_position' (php subset of js): php=[content] js=[content,mask]", "enum incomplete parse for 'post_time_source' (php subset of js): php=[date] js=[date,modified]", "enum incomplete parse for 'referral_attribution_model' (php subset of js): php=[first_touch] js=[first_touch,last_touch]", "enum incomplete parse for 'search_type_in' (php subset of js): php=[post] js=[post,user]", @@ -47,10 +46,6 @@ "enum incomplete parse for 'sms_ali_api_type' (php subset of js): php=[sms] js=[sms,verify]", "enum incomplete parse for 'sms_sdk' (php subset of js): php=[null] js=[null,ali,tencent,smsbao]", "enum incomplete parse for 'style' (php subset of js): php=[null] js=[null,style2]", - "enum incomplete parse for 'system_notice_btn1_color' (php subset of js): php=[primary] js=[primary,success,warning,danger,info,purple,dark]", - "enum incomplete parse for 'system_notice_btn2_color' (php subset of js): php=[primary] js=[primary,success,warning,danger,info,purple,dark]", - "enum incomplete parse for 'system_notice_btn3_color' (php subset of js): php=[primary] js=[primary,success,warning,danger,info,purple,dark]", - "enum incomplete parse for 'system_notice_btn4_color' (php subset of js): php=[primary] js=[primary,success,warning,danger,info,purple,dark]", "enum incomplete parse for 'system_notice_policy' (php subset of js): php=[] js=[,signin,vip,free,auth]", "enum incomplete parse for 'system_notice_size' (php subset of js): php=[] js=[,modal-mini,modal-sm,modal-lg]", "enum incomplete parse for 'theme_mode' (php subset of js): php=[white-theme] js=[white-theme,dark-theme,time-auto]", @@ -67,7 +62,6 @@ "domains": { "global": { "sections": [ - "code-highlight", "common", "custom-code", "email", @@ -76,8 +70,7 @@ "logo", "search", "seo", - "share", - "system-notice" + "share" ], "files": [ "src/Admin/Schema/GlobalSchema.php" @@ -105,7 +98,6 @@ "filter", "list", "page", - "pay", "submit", "thumb" ], @@ -258,7 +250,7 @@ "entry": true, "missing_chunks": [], "chunks": [ - "SchemaPage.D9mbKGcx.js", + "SchemaPage.nbpKWBDL.js", "vendor-vue.CibbKclz.js", "FaIcon.DB-L86Cm.js", "useCollapsibleItems.DZpGrxDC.js", @@ -276,8 +268,8 @@ "FloatingButtonsSettings.DOwK-RTG.js", "PageHeader.nyzEkEki.js", "FooterTabbarSettings.tb4NL7kN.js", - "PostPageSettings.BIi2DEZC.js", - "CommentSettings.B-GZllSB.js", + "PostPageSettings.C4aWDAvO.js", + "CommentSettings.DNlrCxSG.js", "PermissionsCapabilities.DqpqZWmL.js", "CmsCredits.B6Gorymm.js", "ThemeInfoPage.D4pAf5Wr.js", @@ -287,7 +279,7 @@ "UsersLevel.9dYF2o-O.js", "UsersBadge.CDPcEJ-D.js", "UsersWechatTemplate.CCecYMLT.js", - "UsersTicket.DnG1wULZ.js", + "UsersTicket.Y46bme7L.js", "ToolsImportExport.BxHqqdz0.js", "ToolsHealth.DrJqHumh.js", "ToolsUpdate.rL8TduLs.js"