Files
wordpress-theme-aksrt/assets/admin/src/schema/sections/page-display/index.js
T
kate522 1d1fef50af feat(nav): deep 1:1 zibll search-box + navbar-search + newposts unify
Port aksrt_get_search_box/posts for menu_search and layout 1/3 slide;
unify publish switch; expand user-box admin row; CSS/JS remote-box parity.
2026-07-22 17:06:24 +08:00

1153 lines
50 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* Page Display domain schemas.
* Each key corresponds to a sub-page under the "页面&显示" section.
*/
/** Theme asset base for layout previews (admin SPA). */
function themeAsset(path) {
const base = (typeof window !== 'undefined' && window.aksrtAdminData && window.aksrtAdminData.themeUri)
? String(window.aksrtAdminData.themeUri).replace(/\/$/, '')
: ''
return base ? `${base}/${path.replace(/^\//, '')}` : path
}
/** Homepage sort options — keep in sync with AKSRT_Settings_Home_Cms::homepage_allowed_sorts() */
const sortOptions = [
{ label: '最近更新', value: 'modified' },
{ label: '发布时间', value: 'date' },
{ label: '浏览量', value: 'views' },
{ label: '点赞数', value: 'likes' },
{ label: '评论数', value: 'comments' },
{ label: '收藏数', value: 'favorites' },
{ label: '下载量', value: 'downloads' },
{ label: '随机', value: 'rand' },
]
export const pageDisplaySchemas = {
/**
* Header navigation settings
*/
'header-nav': {
key: 'page_display.header-nav',
title: '顶部导航栏',
icon: 'fas fa-bars',
description: '配置导航栏布局、菜单结构、搜索入口和用户入口。',
defaults: {
header_fixed: true,
header_search_enabled: true,
header_user_menu: true,
header_mobile_drawer: true,
header_nav_style: 'default',
header_max_width: 1200,
header_scroll_down_hide: true,
header_layout: '1',
header_nav_pay_vip: true,
header_nav_user_pay_vip: true,
header_newposts_types: ['post'],
header_user_newposts_btn: 'post',
header_user_newposts_text: '发布内容',
mobile_header_layout: 'center',
mobile_navbar_align: 'left',
header_newposts_enabled: true,
header_newposts_text: '<i class="fa fa-pencil"></i> 发布',
header_newposts_radius: true,
header_newposts_class: 'jb-blue',
header_theme_custom: false,
header_theme_bg_custom: '',
header_theme_bg: '',
header_theme_color_custom: '',
},
groups: [
{
key: 'layout',
title: '导航栏布局',
icon: 'fas fa-th-large',
fields: [
{ key: 'header_fixed', label: '固定导航栏', type: 'switch', default: true, help: '页面滚动时导航栏保持在顶部' },
{ key: 'header_nav_style', label: '导航栏风格', type: 'radio', default: 'default', options: [
{ label: '默认', value: 'default' },
{ label: '透明', value: 'transparent' },
{ label: '毛玻璃', value: 'blur' },
]},
{ key: 'header_max_width', label: '导航栏最大宽度', type: 'select', default: 1200, options: [
{ label: '跟随内容', value: 0 },
{ label: '1080px', value: 1080 },
{ label: '1200px', value: 1200 },
{ label: '1320px', value: 1320 },
]},
{ key: 'header_scroll_down_hide', label: '下滑隐藏导航', type: 'switch', default: true, help: '下滚动隐藏,上滚动显示(需开启固定导航)' },
],
},
{
key: 'layout-type',
title: '布局类型',
icon: 'fas fa-columns',
fields: [
{
key: 'header_layout',
label: '电脑端布局',
type: 'image_select',
default: '1',
options: [
{ label: '布局 1(经典)', value: '1', image: themeAsset('assets/images/header-layout/header_layout_1.png') },
{ label: '布局 2(内联搜索)', value: '2', image: themeAsset('assets/images/header-layout/header_layout_2.png') },
{ label: '布局 3(紧凑)', value: '3', image: themeAsset('assets/images/header-layout/header_layout_3.png') },
],
help: '不同布局切换导航 DOM 结构(与 zibll image_select 一致)',
},
{
key: 'mobile_header_layout',
label: '移动端布局',
type: 'image_select',
default: 'center',
options: [
{ label: '居中(含搜索按钮)', value: 'center', image: themeAsset('assets/images/header-layout/mobile_header_layout_center.png') },
{ label: '靠左', value: 'left', image: themeAsset('assets/images/header-layout/mobile_header_layout_left.png') },
],
},
{
key: 'mobile_navbar_align',
label: '移动端菜单方向',
type: 'radio',
default: 'left',
options: [
{ label: '顶部(关闭手势)', value: 'top' },
{ label: '左侧滑出', value: 'left' },
{ label: '右侧滑出', value: 'right' },
],
},
],
},
{
key: 'newposts',
title: '发布按钮',
icon: 'fas fa-pen',
fields: [
{ key: 'header_newposts_enabled', label: '启用发布按钮', type: 'switch', default: true, help: '顶部导航显示发布入口(对齐 zibll nav_newposts)' },
{ key: 'header_newposts_text', label: '按钮文案', type: 'input', default: '<i class="fa fa-pencil"></i> 发布', dependsOn: { key: 'header_newposts_enabled', value: true } },
{ key: 'header_newposts_radius', label: '按钮圆角(胶囊)', type: 'switch', default: true, dependsOn: { key: 'header_newposts_enabled', value: true }, help: '开启后两端大圆角,对齐 zibll nav_newposts_radius' },
{ key: 'header_newposts_class', label: '按钮颜色', type: 'select', default: 'jb-blue', options: [
{ label: '蓝色', value: 'jb-blue' },
{ label: '红色', value: 'jb-red' },
{ label: '绿色', value: 'jb-green' },
{ label: '黄色', value: 'jb-yellow' },
{ label: '紫色', value: 'jb-purple' },
{ label: '粉色', value: 'jb-pink' },
], dependsOn: { key: 'header_newposts_enabled', value: true } },
{ key: 'header_newposts_types', label: '发布类型', type: 'select', multiple: true, default: ['post'], options: [
{ label: '文章', value: 'post' },
{ label: '帖子', value: 'topic' },
{ label: '商品', value: 'product' },
], dependsOn: { key: 'header_newposts_enabled', value: true }, help: '未开启的模块不会显示' },
{ key: 'header_user_newposts_btn', label: '用户卡发布类型', type: 'select', default: 'post', options: [
{ label: '文章', value: 'post' },
{ label: '帖子', value: 'topic' },
{ label: '商品', value: 'product' },
] },
{ key: 'header_user_newposts_text', label: '用户卡发布文案', type: 'input', default: '发布内容' },
{ key: 'header_nav_pay_vip', label: '导航栏开通会员按钮', type: 'switch', default: true, help: '顶部导航显示开通会员' },
{ key: 'header_nav_user_pay_vip', label: '用户框开通会员按钮', type: 'switch', default: true },
],
},
{
key: 'color',
title: '导航配色',
icon: 'fas fa-palette',
fields: [
{ key: 'header_theme_custom', label: '自定义导航配色', type: 'switch', default: false, help: '启用后覆盖导航栏默认配色' },
{ key: 'header_theme_bg_custom', label: '导航背景色', type: 'color', default: '', dependsOn: { key: 'header_theme_custom', value: true } },
{ key: 'header_theme_bg', label: '导航背景色(备选)', type: 'color', default: '', dependsOn: { key: 'header_theme_custom', value: true } },
{ key: 'header_theme_color_custom', label: '导航文字色', type: 'color', default: '', dependsOn: { key: 'header_theme_custom', value: true } },
],
},
{
key: 'components',
title: '导航组件',
icon: 'fas fa-puzzle-piece',
fields: [
{ key: 'header_search_enabled', label: '搜索入口', type: 'switch', default: true },
{ key: 'header_user_menu', label: '用户菜单', type: 'switch', default: true },
{ key: 'header_mobile_drawer', label: '移动端抽屉导航', type: 'switch', default: true },
],
},
],
},
/**
* Category page settings
*/
category: {
key: 'page_display.category',
title: '分类页面',
icon: 'fas fa-folder-open',
description: '为分类归档页配置头图、简介、列表模式、筛选条和侧边栏。',
defaults: {
category_cover_enabled: true,
category_desc_enabled: true,
category_header_style: 'cover',
category_list_mode: 'grid',
category_filter_bar: true,
category_sidebar: true,
category_per_page: 12,
category_default_cover: '',
category_post_count: true,
category_orderby: 'modified',
},
groups: [
{
key: 'header',
title: '分类头图',
icon: 'fas fa-image',
fields: [
{ key: 'category_header_style', label: '头部风格', type: 'radio', default: 'cover', options: [
{ label: '封面图', value: 'cover' },
{ label: '简洁标题', value: 'simple' },
{ label: '隐藏', value: 'none' },
]},
{ key: 'category_cover_enabled', label: '显示封面图', type: 'switch', default: true, dependsOn: { key: 'category_header_style', value: 'cover' } },
{ key: 'category_desc_enabled', label: '显示分类简介', type: 'switch', default: true },
{ key: 'category_default_cover', label: '默认封面图', type: 'upload', default: '', help: '未设置分类封面时使用的默认图片' },
],
},
{
key: 'list',
title: '列表设置',
icon: 'fas fa-list',
fields: [
{ key: 'category_list_mode', label: '列表模式', type: 'radio', default: 'grid', options: [
{ label: '网格', value: 'grid' },
{ label: '列表', value: 'list' },
{ label: '紧凑', value: 'compact' },
]},
{ key: 'category_per_page', label: '每页文章数', type: 'number', default: 12, min: 4, max: 48 },
{ key: 'category_filter_bar', label: '筛选条', type: 'switch', default: true, help: '子分类筛选和排序' },
{ key: 'category_sidebar', label: '侧边栏', type: 'switch', default: true },
{ key: 'category_post_count', label: '显示文章数', type: 'switch', default: true, help: '在分类列表中显示每篇文章的浏览次数' },
],
},
{
key: 'orderby',
title: '排序设置',
icon: 'fas fa-sort',
fields: [
{ key: 'category_orderby', label: '默认排序', type: 'select', default: 'modified', options: [
{ label: '最近更新', value: 'modified' },
{ label: '发布时间', value: 'date' },
{ label: '浏览数', value: 'views' },
{ label: '评论数', value: 'comments' },
{ label: '点赞数', value: 'likes' },
]},
],
},
],
},
/**
* Tag page settings
*/
tag: {
key: 'page_display.tag',
title: '标签页面',
icon: 'fas fa-tags',
description: '为标签归档页配置展示样式和布局。',
defaults: {
tag_header_style: 'simple',
tag_default_cover: '',
tag_list_mode: 'grid',
tag_sidebar: true,
tag_per_page: 12,
tag_post_count: true,
tag_orderby: 'count',
},
groups: [
{
key: 'header',
title: '标签头图',
icon: 'fas fa-tag',
fields: [
{ key: 'tag_header_style', label: '头部风格', type: 'radio', default: 'simple', options: [
{ label: '简洁标题', value: 'simple' },
{ label: '封面图', value: 'cover' },
{ label: '隐藏', value: 'none' },
]},
{ key: 'tag_default_cover', label: '默认封面图', type: 'upload', default: '' },
],
},
{
key: 'list',
title: '列表设置',
icon: 'fas fa-list',
fields: [
{ key: 'tag_list_mode', label: '列表模式', type: 'radio', default: 'grid', options: [
{ label: '网格', value: 'grid' },
{ label: '列表', value: 'list' },
]},
{ key: 'tag_per_page', label: '每页文章数', type: 'number', default: 12, min: 4, max: 48 },
{ key: 'tag_sidebar', label: '侧边栏', type: 'switch', default: true },
{ key: 'tag_post_count', label: '显示文章数', type: 'switch', default: true },
],
},
{
key: 'orderby',
title: '排序设置',
icon: 'fas fa-sort',
fields: [
{ key: 'tag_orderby', label: '默认排序', type: 'select', default: 'count', options: [
{ label: '文章数', value: 'count' },
{ label: '名称', value: 'name' },
{ label: '最近更新', value: 'modified' },
]},
],
},
],
},
/**
* User homepage settings
*/
'user-home': {
key: 'page_display.user-home',
title: '用户主页',
icon: 'fas fa-user-circle',
description: '公开用户主页对齐 Zibll 作者页:通栏头图 + Tab 计数;交易/快捷入口仅在用户中心。',
defaults: {
user_home_tabs: 'posts,favorites,comments,follow',
user_home_tabs_order: 'posts,favorites,comments,follow',
user_home_tabs_pc_hide: '',
user_home_tabs_mobile_hide: '',
user_home_sidebar: false,
user_home_cover: true,
user_home_follow: true,
user_home_posts_per_page: 10,
user_home_avatar: true,
user_home_name: true,
user_home_desc: true,
user_home_stats: false,
user_home_social: true,
author_main_tab_swiper: false,
user_home_message: true,
user_home_private: true,
user_home_paging_ajax: true,
},
groups: [
{
key: 'layout',
title: '主页布局',
icon: 'fas fa-th-large',
fields: [
{ key: 'user_home_cover', label: '封面区域', type: 'switch', default: true, help: '用户主页顶部封面图' },
{ key: 'user_home_sidebar', label: '侧边栏(已弃用)', type: 'switch', default: false, help: '公开主页为通栏布局(对齐 Zibll author);运行时强制关闭。交易服务请去用户中心。' },
{ key: 'user_home_follow', label: '关注按钮', type: 'switch', default: true },
{ key: 'user_home_posts_per_page', label: '每页文章数', type: 'number', default: 10, min: 5, max: 50 },
{ key: 'user_home_paging_ajax', label: 'AJAX 翻页', type: 'switch', default: true, help: '使用 AJAX 加载替代传统翻页' },
],
},
{
key: 'tabs',
title: 'Tab 配置',
icon: 'fas fa-columns',
fields: [
{ key: 'user_home_tabs', label: '显示的 Tab', type: 'input', default: 'posts,favorites,comments,follow', help: '逗号分隔;默认 posts,favorites,comments,follow(粉丝)。可选 credits,product,plate,forum' },
{ key: 'user_home_tabs_order', label: 'Tab 显示顺序', type: 'input', default: 'posts,favorites,comments,follow', help: '逗号分隔,控制栏目顺序' },
{ key: 'user_home_tabs_pc_hide', label: 'PC 端隐藏', type: 'input', default: '', help: '逗号分隔要在 PC 端隐藏的栏目' },
{ key: 'user_home_tabs_mobile_hide', label: '移动端隐藏', type: 'input', default: '', help: '逗号分隔要在移动端隐藏的栏目' },
{ key: 'author_main_tab_swiper', label: '移动端滑动切换', type: 'switch', default: false, help: '移动端左右滑动切换栏目' },
],
},
{
key: 'display',
title: '展示设置',
icon: 'fas fa-eye',
fields: [
{ key: 'user_home_avatar', label: '显示头像', type: 'switch', default: true },
{ key: 'user_home_name', label: '显示用户名', type: 'switch', default: true },
{ key: 'user_home_desc', label: '显示个人简介', type: 'switch', default: true },
{ key: 'user_home_stats', label: '显示统计数据(已弃用)', type: 'switch', default: false, help: '计数已并入 Tab 角标,头图内不再重复文章/评论/收藏。' },
{ key: 'user_home_social', label: '显示社交链接', type: 'switch', default: true },
{ key: 'user_home_message', label: '私信/消息按钮', type: 'switch', default: true, help: '本人显示消息中心入口;访客显示私信入口' },
{ key: 'user_home_private', label: '留言按钮', type: 'switch', default: true, help: '预留开关,公开主页留言入口' },
],
},
],
},
/**
* Other pages settings (404, search results, etc.)
*/
other: {
key: 'page_display.other',
title: '其它页面',
icon: 'fas fa-file',
description: '配置 404 页面、搜索结果页等特殊页面的展示。',
defaults: {
page_header_style: '1',
page_header_cover_img: '',
page_404_search: true,
page_404_popular: true,
page_404_message: '页面未找到',
page_404_back: true,
page_search_sidebar: true,
page_search_per_page: 12,
page_author_cover: true,
page_author_sidebar: true,
page_author_posts_per_page: 12,
},
groups: [
{
key: 'page-header',
title: '统一页头',
icon: 'fas fa-heading',
fields: [
{ key: 'page_header_style', label: '页面标题样式', type: 'select', default: '1', options: [
{ label: '不显示', value: '' },
{ label: '简单', value: '1' },
{ label: '卡片', value: '2' },
{ label: '封面', value: '3' },
], help: '控制归档/搜索/页面的页头样式,单页可通过 post meta 覆盖' },
{ key: 'page_header_cover_img', label: '默认封面图', type: 'upload', default: '', help: '封面样式(样式3)的默认背景图,单页可覆盖' },
],
},
{
key: 'page_404',
title: '404 页面',
icon: 'fas fa-exclamation-triangle',
fields: [
{ key: 'page_404_message', label: '404 提示文字', type: 'input', default: '页面未找到' },
{ key: 'page_404_search', label: '显示搜索框', type: 'switch', default: true },
{ key: 'page_404_popular', label: '显示热门文章', type: 'switch', default: true },
{ key: 'page_404_back', label: '显示返回首页', type: 'switch', default: true },
],
},
{
key: 'search_results',
title: '搜索结果页',
icon: 'fas fa-search',
fields: [
{ key: 'page_search_sidebar', label: '搜索结果侧边栏', type: 'switch', default: true },
{ key: 'page_search_per_page', label: '每页结果数', type: 'number', default: 12, min: 4, max: 48 },
],
},
{
key: 'author',
title: '作者页面',
icon: 'fas fa-user-edit',
fields: [
{ key: 'page_author_cover', label: '显示封面', type: 'switch', default: true },
{ key: 'page_author_sidebar', label: '显示侧边栏', type: 'switch', default: true },
{ key: 'page_author_posts_per_page', label: '每页文章数', type: 'number', default: 12, min: 4, max: 48 },
],
},
],
},
/**
* Global background settings
*/
background: {
key: 'page_display.background',
title: '全局背景',
icon: 'fas fa-image',
description: '配置站点全局背景图、背景色、暗色模式背景和遮罩。',
defaults: {
bg_color: '',
bg_image: '',
bg_size: '100%',
bg_position: 'center center',
bg_repeat: 'no-repeat',
bg_attachment: 'fixed',
bg_dark_color: '',
bg_dark_image: '',
bg_overlay: false,
bg_overlay_color: 'rgba(0, 0, 0, 0.3)',
page_bg_color: '',
page_bg_image: '',
},
groups: [
{
key: 'light',
title: '亮色背景',
icon: 'fas fa-sun',
fields: [
{ key: 'bg_color', label: '背景颜色', type: 'color', default: '', help: '留空则使用主题默认背景色' },
{ key: 'bg_image', label: '背景图片', type: 'media', help: '推荐使用高分辨率图片' },
{ key: 'bg_size', label: '图片尺寸', type: 'select', default: 'cover', options: [
{ label: '覆盖 (Cover)', value: 'cover' },
{ label: '包含 (Contain)', value: 'contain' },
{ label: '原始大小', value: 'auto' },
{ label: '拉伸填充', value: '100% 100%' },
{ label: '100% 宽度(旧版兼容)', value: '100%' },
]},
{ key: 'bg_position', label: '图片位置', type: 'select', default: 'center center', options: [
{ label: '居中', value: 'center center' },
{ label: '顶部居中', value: 'top center' },
{ label: '底部居中', value: 'bottom center' },
]},
{ key: 'bg_repeat', label: '图片重复', type: 'select', default: 'no-repeat', options: [
{ label: '不重复', value: 'no-repeat' },
{ label: '平铺', value: 'repeat' },
{ label: '水平平铺', value: 'repeat-x' },
{ label: '垂直平铺', value: 'repeat-y' },
]},
{ key: 'bg_attachment', label: '固定方式', type: 'select', default: 'fixed', options: [
{ label: '固定 (视差)', value: 'fixed' },
{ label: '随内容滚动', value: 'scroll' },
]},
],
},
{
key: 'dark',
title: '暗色背景',
icon: 'fas fa-moon',
fields: [
{ key: 'bg_dark_color', label: '暗色背景颜色', type: 'color', default: '', help: '留空则使用主题默认暗色背景' },
{ key: 'bg_dark_image', label: '暗色背景图片', type: 'media', help: '暗色模式下显示的背景图' },
],
},
{
key: 'overlay',
title: '遮罩设置',
icon: 'fas fa-layer-group',
fields: [
{ key: 'bg_overlay', label: '启用背景遮罩', type: 'switch', default: false, help: '在背景图上方叠加半透明遮罩,提升文字可读性' },
{ key: 'bg_overlay_color', label: '遮罩颜色', type: 'input', default: 'rgba(0, 0, 0, 0.3)', dependsOn: { key: 'bg_overlay', value: true }, help: '支持 rgba/hex 色值' },
],
},
{
key: 'page',
title: '页面背景',
icon: 'fas fa-file',
fields: [
{ key: 'page_bg_color', label: '内容区背景色', type: 'color', default: '', help: '主内容区域的背景色' },
{ key: 'page_bg_image', label: '内容区背景图', type: 'media' },
],
},
],
},
/**
* Menu decoration settings
*/
'menu-decoration': {
key: 'page_display.menu-decoration',
title: '菜单装饰',
icon: 'fas fa-bars',
description: '配置导航菜单的图标、徽章、下拉样式和图文卡片子菜单。',
defaults: {
menu_icon_enabled: true,
menu_badge_enabled: true,
menu_submenu_style: 'dropdown',
menu_submenu_columns: 1,
menu_submenu_width: 220,
menu_mobile_style: 'drawer',
menu_item_padding: 12,
menu_hover_effect: 'underline',
},
groups: [
{
key: 'icon',
title: '菜单图标',
icon: 'fas fa-icons',
fields: [
{ key: 'menu_icon_enabled', label: '显示菜单图标', type: 'switch', default: true, help: '在菜单项文字前显示图标(需在菜单管理中设置 CSS 类)' },
{ key: 'menu_badge_enabled', label: '显示菜单徽章', type: 'switch', default: true, help: '在菜单项上显示 "新"、"热" 等徽章标记' },
],
},
{
key: 'submenu',
title: '下拉子菜单',
icon: 'fas fa-caret-square-down',
fields: [
{
key: 'menu_submenu_style',
label: '子菜单样式',
type: 'radio',
default: 'dropdown',
options: [
{ label: '普通下拉', value: 'dropdown' },
{ label: '多列下拉', value: 'mega' },
{ label: '图文卡片', value: 'cards' },
],
},
{ key: 'menu_submenu_columns', label: '多列列数', type: 'number', default: 1, min: 1, max: 5, dependsOn: { key: 'menu_submenu_style', value: 'mega' } },
{ key: 'menu_submenu_width', label: '子菜单宽度 (px)', type: 'number', default: 220, min: 160, max: 800, dependsOn: { key: 'menu_submenu_style', value: 'mega' } },
],
},
{
key: 'effect',
title: '交互效果',
icon: 'fas fa-magic',
fields: [
{
key: 'menu_hover_effect',
label: 'Hover 效果',
type: 'radio',
default: 'underline',
options: [
{ label: '下划线', value: 'underline' },
{ label: '背景色', value: 'background' },
{ label: '文字变色', value: 'color' },
{ label: '无效果', value: 'none' },
],
},
{ key: 'menu_item_padding', label: '菜单项内边距 (px)', type: 'number', default: 12, min: 4, max: 32 },
],
},
{
key: 'mobile',
title: '移动端菜单',
icon: 'fas fa-mobile-alt',
fields: [
{
key: 'menu_mobile_style',
label: '移动端菜单样式',
type: 'radio',
default: 'drawer',
options: [
{ label: '抽屉', value: 'drawer' },
{ label: '全屏', value: 'fullscreen' },
{ label: '下拉', value: 'dropdown' },
],
},
],
},
],
},
/**
* Header components
*/
'header-components': {
key: 'page_display.header-components',
title: '顶部多功能组件',
icon: 'fas fa-th',
description: '配置顶部组件的显示范围、设备规则、轮播参数、搜索覆盖层与图标卡片。幻灯片图片/文案内容请到「Hero 轮播」「Banner 轮播」管理。',
defaults: {
header_components_search_enabled: true,
header_components_cards_enabled: false,
header_components_nav_color: '#ffffff',
header_components_show_on: ['home'],
header_components_device_visibility: '',
header_components_filter_blur_devices: [],
header_components_card_show_devices: ['pc', 'mobile'],
header_components_card_shared_bg: false,
header_components_card_blur: true,
header_components_card_icon_shape: 'circle',
header_components_icon_cards: [],
header_components_search_pc: true,
header_components_search_mobile: true,
header_components_search_show_keywords: false,
header_components_search_popular_limit: 5,
header_components_search_show_input_cat: false,
header_components_search_show_type: false,
header_components_search_before_html: '<div class="em16 font-bold mb10">更优雅的Wordpress主题</div>\n<div>这是导航栏幻灯片多功能组件,可在后台进行配置</div>',
header_components_search_after_html: '',
slider_config_direction: 'horizontal',
slider_config_speed: 300,
slider_config_button: true,
slider_config_scale_height: false,
slider_config_scale: false,
slider_config_max_height: '',
slider_config_min_height: '',
},
groups: [
{
key: 'visibility',
title: '显示规则',
icon: 'fas fa-eye',
fields: [
{ key: 'header_components_search_enabled', label: '启用搜索覆盖层', type: 'switch', default: true, help: '在顶部组件区域显示搜索条覆盖层' },
{ key: 'header_components_cards_enabled', label: '启用图标卡片', type: 'switch', default: false, help: '在顶部组件区域显示图标卡片入口' },
{ key: 'header_components_show_on', label: '按页面类型启用', type: 'checkbox', default: ['home'], options: [
{ label: '首页', value: 'home' },
{ label: '专题页', value: 'topics' },
{ label: '分类页', value: 'category' },
{ label: '标签页', value: 'tag' },
{ label: '用户页', value: 'author' },
{ label: '文章页', value: 'single' },
{ label: '搜索页', value: 'search' },
{ label: '[论坛]首页', value: 'forum_home' },
{ label: '[论坛]板块页面', value: 'forum_plate' },
{ label: '[论坛]帖子页面', value: 'forum_post' },
{ label: '其它页面', value: 'page' },
], help: '选择启用顶部多功能组件的页面类型,一个都不选则为关闭此功能' },
{ key: 'header_components_device_visibility', label: '设备显示规则', type: 'radio', default: '', options: [
{ label: '全部', value: '' },
{ label: '仅电脑', value: 'only_pc' },
{ label: '仅移动', value: 'only_sm' },
] },
],
},
{
key: 'nav-color',
title: '导航栏配色',
icon: 'fas fa-palette',
fields: [
{ key: 'header_components_nav_color', label: '导航栏文字颜色', type: 'color', default: '#ffffff', help: '顶部组件叠加时固定导航的文字颜色' },
],
},
{
key: 'slider-config',
title: '幻灯片配置',
icon: 'fas fa-sliders-h',
fields: [
{ key: 'slider_config_direction', label: '滑动方向', type: 'radio', default: 'horizontal', options: [
{ label: '水平', value: 'horizontal' },
{ label: '垂直', value: 'vertical' },
]},
{ key: 'slider_config_speed', label: '切换速度 (ms)', type: 'number', default: 300, min: 100, max: 3000 },
{ key: 'slider_config_button', label: '显示前进后退按钮', type: 'switch', default: true },
{ key: 'slider_config_scale_height', label: '缩放高度', type: 'switch', default: false },
{ key: 'slider_config_scale', label: '缩放效果', type: 'switch', default: false },
{ key: 'slider_config_max_height', label: '最大高度', type: 'input', default: '' },
{ key: 'slider_config_min_height', label: '最小高度', type: 'input', default: '' },
],
},
{
key: 'search',
title: '搜索组件',
icon: 'fas fa-search',
fields: [
{ key: 'header_components_search_pc', label: 'PC 端显示搜索', type: 'switch', default: true, dependsOn: { key: 'header_components_search_enabled', value: true } },
{ key: 'header_components_search_mobile', label: '移动端显示搜索', type: 'switch', default: true, dependsOn: { key: 'header_components_search_enabled', value: true } },
{ key: 'header_components_search_show_keywords', label: '显示热门搜索词', type: 'switch', default: false, dependsOn: { key: 'header_components_search_enabled', value: true } },
{ key: 'header_components_search_popular_limit', label: '热词数量', type: 'number', default: 5, min: 1, max: 20, dependsOn: { key: 'header_components_search_show_keywords', value: true } },
{ key: 'header_components_search_show_input_cat', label: '显示分类搜索', type: 'switch', default: false, dependsOn: { key: 'header_components_search_enabled', value: true }, help: '搜索框内显示分类选择下拉' },
{ key: 'header_components_search_show_type', label: '显示类型切换', type: 'switch', default: false, dependsOn: { key: 'header_components_search_enabled', value: true }, help: '搜索框内显示内容类型切换' },
{
key: 'header_components_search_before_html',
label: '搜索上方额外内容',
type: 'textarea',
default: '<div class="em16 font-bold mb10">更优雅的Wordpress主题</div>\n<div>这是导航栏幻灯片多功能组件,可在后台进行配置</div>',
rows: 4,
dependsOn: { key: 'header_components_search_enabled', value: true },
help: 'Hero 主标题/副标题写在这里(支持 HTML)。不要依赖幻灯片文案,以免与搜索重叠;请注意组件总高度。',
},
{
key: 'header_components_search_after_html',
label: '搜索下方额外内容',
type: 'textarea',
default: '',
rows: 3,
dependsOn: { key: 'header_components_search_enabled', value: true },
help: '支持 HTML;请注意组件总高度。',
},
],
},
{
key: 'cards',
title: '图标卡片样式',
icon: 'fas fa-th-large',
fields: [
{ key: 'header_components_filter_blur_devices', label: '容器模糊设备', type: 'checkbox', default: [], dependsOn: { key: 'header_components_cards_enabled', value: true }, options: [
{ label: 'PC', value: 'pc' },
{ label: '移动端', value: 'mobile' },
]},
{ key: 'header_components_card_show_devices', label: '卡片显示设备', type: 'checkbox', default: ['pc', 'mobile'], dependsOn: { key: 'header_components_cards_enabled', value: true }, options: [
{ label: 'PC', value: 'pc' },
{ label: '移动端', value: 'mobile' },
]},
{ key: 'header_components_card_shared_bg', label: '共享卡片背景', type: 'switch', default: false, dependsOn: { key: 'header_components_cards_enabled', value: true }, help: '开启后所有图标卡片共用背景模式' },
{ key: 'header_components_card_blur', label: '启用卡片模糊效果', type: 'switch', default: true, dependsOn: { key: 'header_components_cards_enabled', value: true } },
{ key: 'header_components_card_icon_shape', label: '图标形状', type: 'radio', default: 'circle', dependsOn: { key: 'header_components_cards_enabled', value: true }, options: [
{ label: '圆形', value: 'circle' },
{ label: '方形', value: 'square' },
]},
],
},
{
key: 'icon-cards',
title: '图标卡片列表',
icon: 'fas fa-list',
fields: [
{
key: 'header_components_icon_cards',
label: '图标卡片',
type: 'repeater',
ui: 'list-modal',
listPreview: {
iconKey: 'icon',
customIconKey: 'custom_icon',
iconClassKey: 'icon_class',
titleKey: 'title',
descKey: 'desc',
urlKey: 'url',
},
editText: '编辑卡片',
emptyText: '暂无图标卡片',
sanitize_type: 'array',
default: [],
dependsOn: { key: 'header_components_cards_enabled', value: true },
addText: '添加卡片',
fields: [
{ key: 'icon', label: '图标类名', type: 'input', default: 'fas fa-star', placeholder: 'fas fa-star' },
{ key: 'custom_icon', label: '自定义图标 HTML', type: 'textarea', default: '', rows: 2, placeholder: '<svg>...</svg>' },
{ key: 'icon_class', label: '图标配色', type: 'select', default: 'c-blue', options: [
{ label: 'Blue', value: 'c-blue' },
{ label: 'Yellow', value: 'c-yellow' },
{ label: 'Green', value: 'c-green' },
{ label: 'Red', value: 'c-red' },
{ label: 'Orange', value: 'c-orange' },
{ label: 'Cyan', value: 'c-cyan' },
{ label: 'Pink', value: 'c-pink' },
{ label: 'Gradient Cyan', value: 'jb-cyan' },
{ label: 'Gradient Green', value: 'jb-green' },
{ label: 'Gradient Orange', value: 'jb-orange' },
]},
{ key: 'title', label: '标题', type: 'input', default: '' },
{ key: 'desc', label: '描述', type: 'input', default: '' },
{ key: 'url', label: '链接 URL', type: 'input', default: '', placeholder: 'https://example.com' },
{ key: 'target', label: '打开方式', type: 'radio', default: '_self', options: [
{ label: '当前标签页', value: '_self' },
{ label: '新标签页', value: '_blank' },
]},
],
},
],
},
],
},
footer: {
key: 'page_display.footer',
title: '底部页脚',
icon: 'fas fa-shoe-prints',
description: '页脚布局、友链、版权信息配置。实际编辑界面在 FooterSettings.vue(customPage),此处为 REST 聚合描述。',
defaults: {
footer_columns: 3,
footer_copyright: true,
footer_icp: true,
icp_number: '',
footer_police: true,
police_number: '',
footer_theme_custom: false,
footer_theme_bg_custom: '',
footer_theme_bg: '',
footer_theme_color_custom: '',
footer_contact_wechat_img: '',
footer_contact_qq: '',
footer_contact_weibo: '',
footer_contact_email: '',
footer_t1_m_s: ['pc', 'mobile'],
footer_t1_img: '',
footer_t1_img_dark: '',
footer_t1_t: '',
fcode_t1_code: '',
footer_contact_m_s: ['pc', 'mobile'],
footer_contact_more: '',
fcode_t2_code_1: '',
fcode_t2_code_2: '',
footer_mini_img_m_s: ['pc', 'mobile'],
footer_mini_img: '',
fcode_customize_code: '',
},
groups: [
{
key: 'layout',
title: '页脚布局',
icon: 'fas fa-columns',
fields: [
{ key: 'footer_columns', label: '页脚列数', type: 'number', default: 3, min: 1, max: 4 },
{ key: 'footer_copyright', label: '显示版权信息', type: 'switch', default: true },
{ key: 'footer_icp', label: '显示ICP备案', type: 'switch', default: true },
{ key: 'icp_number', label: 'ICP备案号', type: 'input', default: '' },
{ key: 'footer_police', label: '显示公安备案', type: 'switch', default: true },
{ key: 'police_number', label: '公安备案号', type: 'input', default: '' },
],
},
{
key: 'color',
title: '页脚颜色',
icon: 'fas fa-palette',
fields: [
{ key: 'footer_theme_custom', label: '自定义页脚颜色', type: 'switch', default: false },
{ key: 'footer_theme_bg_custom', label: '自定义背景色', type: 'color', default: '' },
{ key: 'footer_theme_bg', label: '背景图片', type: 'media', default: '' },
{ key: 'footer_theme_color_custom', label: '自定义文字颜色', type: 'color', default: '' },
],
},
{
key: 'contact',
title: '联系方式',
icon: 'fas fa-address-book',
fields: [
{ key: 'footer_contact_wechat_img', label: '微信二维码', type: 'media', default: '' },
{ key: 'footer_contact_qq', label: 'QQ', type: 'input', default: '' },
{ key: 'footer_contact_weibo', label: '微博', type: 'input', default: '' },
{ key: 'footer_contact_email', label: '邮箱', type: 'input', default: '' },
],
},
{
key: 'brand',
title: '品牌列(第一列)',
icon: 'fas fa-building',
fields: [
{ key: 'footer_t1_m_s', label: '显示设备', type: 'checkbox', default: ['pc', 'mobile'] },
{ key: 'footer_t1_img', label: '页脚 Logo(日间)', type: 'media', default: '' },
{ key: 'footer_t1_img_dark', label: '页脚 Logo(夜间)', type: 'media', default: '' },
{ key: 'footer_t1_t', label: '品牌标题', type: 'input', default: '' },
{ key: 'fcode_t1_code', label: '品牌列自定义代码', type: 'textarea', default: '' },
],
},
{
key: 'contact_ext',
title: '联系方式扩展',
icon: 'fas fa-phone-alt',
fields: [
{ key: 'footer_contact_m_s', label: '显示设备', type: 'checkbox', default: ['pc', 'mobile'] },
{ key: 'footer_contact_more', label: '更多联系项', type: 'textarea', default: '' },
{ key: 'fcode_t2_code_1', label: '链接 HTML(fcode_t2_code_1)', type: 'textarea', default: '' },
{ key: 'fcode_t2_code_2', label: '链接下方自定义代码', type: 'textarea', default: '' },
],
},
{
key: 'mini_qr',
title: '二维码图片组(第三列)',
icon: 'fas fa-qrcode',
fields: [
{ key: 'footer_mini_img_m_s', label: '显示设备', type: 'checkbox', default: ['pc', 'mobile'] },
{ key: 'footer_mini_img', label: '二维码组', type: 'textarea', default: '' },
],
},
{
key: 'custom',
title: '底部自定义',
icon: 'fas fa-code',
fields: [
{ key: 'fcode_customize_code', label: '底部自定义代码', type: 'textarea', default: '' },
],
},
],
},
/**
* Homepage settings (already has a real Vue page)
*/
homepage: {
key: 'page_display.homepage',
title: '首页配置',
icon: 'fas fa-home',
description: '配置首页主列表、分类 Tab、卡片样式与首页交互。实际编辑界面在 HomepageSettings.vue(customPage),此处补齐 page_display 的 schema 契约。',
defaults: {
homepage_tabs: [],
homepage_card_style: 'default',
homepage_multi_thumb_enabled: false,
homepage_multi_thumb_min_images: 3,
homepage_sidebar_mini_enabled: true,
homepage_default_sort: 'date',
homepage_default_view: 'list',
homepage_sort_ajax_enabled: true,
homepage_sticky_tabs_enabled: true,
home_posts_list_s: true,
home_list_title: '最新发布',
home_list_sort_enabled: true,
home_list_sort_options: ['modified', 'date', 'views', 'likes', 'comments'],
home_list_sort_dropdown: false,
home_exclude_post_ids: [],
home_exclude_category_ids: [],
homepage_tab_posts_per_page: 6,
homepage_tab_limit: 4,
},
groups: [
{
key: 'main-stream',
title: '主列表',
icon: 'fas fa-list',
fields: [
{ key: 'home_posts_list_s', label: '启用主列表', type: 'switch', default: true },
{ key: 'index_list_title', label: '区块标题', type: 'input', default: '最新发布', dependsOn: { key: 'home_posts_list_s', value: true } },
{ key: 'home_list1_orderby_option.orderby', label: '默认排序', type: 'select', default: 'date', dependsOn: { key: 'home_posts_list_s', value: true }, options: sortOptions },
{ key: 'home_list1_orderby_s', label: '启用排序栏', type: 'switch', default: true, dependsOn: { key: 'home_posts_list_s', value: true } },
{ key: 'home_list_sort_dropdown', label: '排序栏下拉模式', type: 'switch', default: false, dependsOn: { key: 'home_list1_orderby_s', value: true } },
{ key: 'home_list1_orderby_option', label: '可用排序选项', type: 'checkbox', default: ['modified', 'date', 'views', 'likes', 'comments'], dependsOn: { key: 'home_list1_orderby_s', value: true }, options: sortOptions },
],
},
{
key: 'exclude',
title: '排除规则',
icon: 'fas fa-filter',
fields: [
{ key: 'home_exclude_posts', label: '排除文章 ID', type: 'array', default: [], help: '主列表和 Tab 查询均排除这些文章。' },
{ key: 'home_exclude_cats', label: '排除分类 ID', type: 'array', default: [], help: '主列表排除这些分类。' },
],
},
{
key: 'tabs',
title: '首页 Tab',
icon: 'fas fa-tags',
fields: [
{ key: 'home_lists', label: '首页 Tab', type: 'array', default: [], help: '分类 Tab 由 HomepageSettings.vue 中的可视化编辑器维护。' },
{ key: 'homepage_tab_limit', label: 'Tab 数量上限', type: 'number', default: 4, min: 1, max: 12 },
{ key: 'homepage_tab_posts_per_page', label: '每 Tab 文章数', type: 'number', default: 6, min: 1, max: 20 },
{ key: 'homepage_sticky_tabs_enabled', label: 'Tab 吸顶', type: 'switch', default: true },
],
},
{
key: 'cards-sidebar',
title: '卡片与侧栏',
icon: 'fas fa-columns',
fields: [
{
key: 'homepage_card_style',
label: '卡片风格(已弃用)',
type: 'radio',
default: 'default',
options: [
{ label: '默认', value: 'default' },
{ label: '风格 2', value: 'style2' },
{ label: '风格 3', value: 'style3' },
],
help: '已弃用:请改用「文章列表」中的列表/卡片样式设置。',
},
{ key: 'homepage_multi_thumb_enabled', label: '多图卡片(已弃用)', type: 'switch', default: true, help: '请改用文章列表缩略图/多图设置。' },
{ key: 'homepage_multi_thumb_min_images', label: '最少图片数(已弃用)', type: 'number', default: 3, min: 2, max: 4 },
{
key: 'homepage_default_view',
label: '默认视图(已弃用)',
type: 'radio',
default: 'list',
options: [
{ label: '列表', value: 'list' },
{ label: '卡片', value: 'card' },
],
help: 'SSR 以文章列表全局设置为准;此字段仅作兼容保留。',
},
{ key: 'homepage_sidebar_mini_enabled', label: '迷你侧栏列表', type: 'switch', default: true },
{ key: 'homepage_sort_ajax_enabled', label: '排序栏 AJAX', type: 'switch', default: true },
],
},
],
},
/**
* Special/topic page settings
*/
special: {
key: 'page_display.special',
title: '专题页面',
icon: 'fas fa-layer-group',
description: '配置专题聚合页的封面、摘要、布局、聚合规则和子页面展示策略。',
defaults: {
special_cover_enabled: true,
special_summary_enabled: true,
special_summary_length: 200,
special_default_cover: '',
special_layout: 'grid',
special_columns: 2,
special_source_type: 'category',
special_source_ids: '',
special_subpage_display: 'cards',
special_subpage_count: 6,
special_sidebar: true,
special_pagination: 'numeric',
special_per_page: 12,
special_post_count: false,
special_orderby: 'date',
},
groups: [
{
key: 'header',
title: '专题头部',
icon: 'fas fa-image',
fields: [
{ key: 'special_cover_enabled', label: '显示专题封面', type: 'switch', default: true, help: '在专题页顶部展示封面图' },
{ key: 'special_summary_enabled', label: '显示专题摘要', type: 'switch', default: true },
{ key: 'special_summary_length', label: '摘要最大长度', type: 'number', default: 200, min: 50, max: 500, dependsOn: { key: 'special_summary_enabled', value: true } },
{ key: 'special_default_cover', label: '默认封面图', type: 'upload', default: '', help: '未设置专题封面时使用的默认图片' },
],
},
{
key: 'layout',
title: '布局设置',
icon: 'fas fa-th-large',
fields: [
{
key: 'special_layout',
label: '内容布局',
type: 'radio',
default: 'grid',
options: [
{ label: '网格', value: 'grid' },
{ label: '列表', value: 'list' },
{ label: '瀑布流', value: 'masonry' },
],
},
{ key: 'special_columns', label: '网格列数', type: 'number', default: 2, min: 1, max: 4, dependsOn: { key: 'special_layout', value: 'grid' } },
{ key: 'special_sidebar', label: '侧边栏', type: 'switch', default: true },
{ key: 'special_post_count', label: '显示文章数', type: 'switch', default: false, help: '在专题列表中显示每篇文章的浏览次数' },
],
},
{
key: 'aggregation',
title: '聚合规则',
icon: 'fas fa-database',
fields: [
{
key: 'special_source_type',
label: '内容来源',
type: 'radio',
default: 'category',
options: [
{ label: '分类', value: 'category' },
{ label: '标签', value: 'tag' },
{ label: '手动选择', value: 'manual' },
{ label: '最新文章', value: 'latest' },
],
},
{ key: 'special_source_ids', label: '来源 ID 列表', type: 'input', default: '', placeholder: '逗号分隔分类/标签 ID', help: '填写分类或标签的 ID,逗号分隔' },
],
},
{
key: 'subpage',
title: '子页面展示',
icon: 'fas fa-clone',
fields: [
{
key: 'special_subpage_display',
label: '子页面样式',
type: 'radio',
default: 'cards',
options: [
{ label: '卡片', value: 'cards' },
{ label: '列表', value: 'list' },
{ label: '时间线', value: 'timeline' },
],
},
{ key: 'special_subpage_count', label: '每页子页面数', type: 'number', default: 6, min: 1, max: 24 },
],
},
{
key: 'pagination',
title: '分页设置',
icon: 'fas fa-ellipsis-h',
fields: [
{
key: 'special_pagination',
label: '分页模式',
type: 'radio',
default: 'numeric',
options: [
{ label: '数字分页', value: 'numeric' },
{ label: '加载更多', value: 'load_more' },
{ label: '无限滚动', value: 'infinite' },
],
},
{ key: 'special_per_page', label: '每页文章数', type: 'number', default: 12, min: 4, max: 48 },
],
},
{
key: 'orderby',
title: '排序设置',
icon: 'fas fa-sort',
fields: [
{ key: 'special_orderby', label: '默认排序', type: 'select', default: 'date', options: [
{ label: '发布时间', value: 'date' },
{ label: '最近更新', value: 'modified' },
{ label: '浏览数', value: 'views' },
{ label: '评论数', value: 'comments' },
]},
],
},
],
},
}