214 lines
28 KiB
PHP
214 lines
28 KiB
PHP
<?php
|
|
/**
|
|
* Zibll V9.0 page/display settings contract.
|
|
*
|
|
* @package AKSRT
|
|
*/
|
|
|
|
namespace AKSRT\Admin\Schema;
|
|
|
|
defined('ABSPATH') || exit;
|
|
|
|
class SchemaPageDisplay {
|
|
|
|
public static function build(): array {
|
|
return [
|
|
'domain' => 'page_display',
|
|
'title' => '页面&显示',
|
|
'sections' => [
|
|
'header-nav' => self::header_nav(),
|
|
'header-components' => self::header_components(),
|
|
'footer' => self::footer(),
|
|
'homepage' => self::homepage(),
|
|
'category' => self::category(),
|
|
'tag' => self::tag(),
|
|
'user-home' => self::user_home(),
|
|
'other' => self::other(),
|
|
],
|
|
];
|
|
}
|
|
|
|
private static function section(string $key, string $title, array $fields): array {
|
|
return [
|
|
'key' => $key,
|
|
'title' => $title,
|
|
'version' => '9.0.0',
|
|
'option_key' => 'aksrt_settings',
|
|
'groups' => [['key' => $key, 'fields' => $fields]],
|
|
];
|
|
}
|
|
|
|
private static function header_nav(): array {
|
|
return self::section('header-nav', '顶部导航栏', [
|
|
self::notice('添加或管理菜单后,可在此配置导航栏显示效果。'),
|
|
self::field('header_theme_custom', '自定义导航栏颜色', 'switcher', false),
|
|
self::field('header_theme_bg_custom', '导航栏:背景色', 'color', '', ['dependsOn' => self::enabled('header_theme_custom'), 'description' => '如需选择预置颜色,请先清空此颜色。']),
|
|
self::field('header_theme_bg', '', 'palette', '', ['dependsOn' => ['all' => [self::enabled('header_theme_custom'), ['key' => 'header_theme_bg_custom', 'operator' => 'empty']]], 'options' => self::solid_palette()]),
|
|
self::field('header_theme_color_custom', '导航栏:前景色', 'color', '', ['dependsOn' => self::enabled('header_theme_custom'), 'description' => '请注意背景色和前景色的搭配,以免文字看不清。']),
|
|
self::field('header_layout', '电脑端导航布局', 'image_select', '1', ['options' => self::header_layout_options()]),
|
|
self::field('mobile_header_layout', '移动端导航布局', 'image_select', 'center', ['options' => self::mobile_header_layout_options()]),
|
|
self::field('mobile_navbar_align', '移动端菜单弹出方向', 'radio', 'left', ['inline' => true, 'options' => self::options(['top' => '顶部', 'left' => '左边', 'right' => '右边'])]),
|
|
self::field('nav_fixed', '导航浮动', 'switcher', true, ['description' => '导航栏一直固定在顶部。']),
|
|
self::field('nav_scroll_down_hide', '页面向下滚动时隐藏', 'switcher', true, ['dependsOn' => self::enabled('nav_fixed'), 'description' => '下滚动隐藏,上滚动显示。']),
|
|
self::field('nav_newposts', 'Add发布按钮', 'switcher', true, ['description' => '顶部导航显示文章投稿按钮。']),
|
|
self::field('nav_newposts_radius', '按钮圆角', 'switcher', true, ['dependsOn' => self::enabled('nav_newposts')]),
|
|
self::field('nav_newposts_class', '按钮颜色', 'palette', 'jb-blue', ['dependsOn' => self::enabled('nav_newposts'), 'options' => self::zib_palette()]),
|
|
self::field('nav_newposts_text', '按钮文案', 'textarea', '<i class="fa fa-fw fa-pencil"></i>发布', ['dependsOn' => self::enabled('nav_newposts'), 'sanitize_type' => 'html', 'rows' => 1]),
|
|
self::field('nav_user_newposts_btn', '导航栏用户卡片发布按钮', 'select', 'post', ['options' => self::options(['post' => '文章'])]),
|
|
self::field('nav_user_newposts_btn_text', '按钮文字', 'text', '发布文章'),
|
|
]);
|
|
}
|
|
|
|
private static function header_components(): array {
|
|
return self::section('header-components', '顶部多功能组件', [
|
|
self::notice('顶部多功能组件显示在导航栏下方,支持视频、图片、幻灯片、搜索和图标卡片;各组件可按电脑端、移动端单独启用。'),
|
|
self::field('header_slider_show', '启用顶部多功能组件', 'checkbox', [], ['description' => '选择允许显示组件的页面;未选择任何页面时,前端不会显示。', 'options' => self::options(['home' => '首页', 'category' => '分类页', 'tag' => '标签页', 'author' => '公开用户主页', 'user_center' => '用户中心', 'single' => '文章页', 'search' => '搜索页', 'page' => '其它页面'])]),
|
|
self::field('header_slider_show_type', '顶部多功能组件的显示规则', 'radio', '', ['dependsOn' => self::not_empty('header_slider_show'), 'inline' => true, 'options' => self::options(['' => '全部显示', 'only_pc' => '仅在PC端显示', 'only_sm' => '仅在移动端显示'])]),
|
|
self::field('header_slider_nav_color', '导航栏文字颜色', 'color', '#ffffff', ['dependsOn' => self::not_empty('header_slider_show')]),
|
|
self::field('header_slider', '背景内容', 'group', self::header_slider_defaults(), ['dependsOn' => self::not_empty('header_slider_show'), 'min' => 1, 'button_title' => '添加背景项目', 'fields' => self::slider_item_fields()]),
|
|
self::field('header_slider_option', '背景显示设置', 'fieldset', self::slider_options_defaults(), ['dependsOn' => self::not_empty('header_slider_show'), 'fields' => self::slider_option_fields()]),
|
|
self::field('header_slider_search_s', '叠加搜索组件', 'checkbox', ['pc_s', 'm_s'], ['dependsOn' => self::not_empty('header_slider_show'), 'options' => self::device_options()]),
|
|
self::field('header_slider_search_option', '搜索组件设置', 'fieldset', self::search_defaults(), ['dependsOn' => ['all' => [self::not_empty('header_slider_show'), self::not_empty('header_slider_search_s')]], 'fields' => self::search_fields()]),
|
|
self::field('header_slider_card_s', '叠加封面卡片组件', 'checkbox', ['pc_s', 'm_s'], ['dependsOn' => self::not_empty('header_slider_show'), 'options' => self::device_options()]),
|
|
self::field('header_slider_card_option', '图标卡片设置', 'fieldset', self::card_defaults(), ['dependsOn' => ['all' => [self::not_empty('header_slider_show'), self::not_empty('header_slider_card_s')]], 'fields' => self::card_fields()]),
|
|
self::field('header_slider_filter_blur', '组件高斯模糊特效', 'checkbox', ['pc_s', 'm_s'], ['dependsOn' => self::not_empty('header_slider_show'), 'options' => self::options(['pc_s' => 'PC端开启', 'm_s' => '移动端开启'])]),
|
|
]);
|
|
}
|
|
|
|
private static function footer(): array {
|
|
$img = self::asset('assets/vendor/zibll/img/');
|
|
return self::section('footer', '底部页脚', [
|
|
self::field('footer_theme_custom', '自定义底部页脚颜色', 'switcher', false),
|
|
self::field('footer_theme_bg_custom', '底部页脚:背景色', 'color', '', ['dependsOn' => self::enabled('footer_theme_custom')]),
|
|
self::field('footer_theme_bg', '', 'palette', '', ['dependsOn' => ['all' => [self::enabled('footer_theme_custom'), ['key' => 'footer_theme_bg_custom', 'operator' => 'empty']]], 'options' => self::solid_palette()]),
|
|
self::field('footer_theme_color_custom', '底部页脚:前景色', 'color', '', ['dependsOn' => self::enabled('footer_theme_custom')]),
|
|
self::field('fcode_template', '页脚布局模板选择', 'image_select', 'template_1', ['options' => [['label' => '模板一', 'value' => 'template_1', 'image' => self::asset('assets/images/footer/fcode_template_1.png')]]]),
|
|
self::field('footer_t1_m_s', '版块一移动端显示', 'switcher', false),
|
|
self::field('footer_t1_img', '日间模式图片', 'upload', $img . 'logo.png'),
|
|
self::field('footer_t1_img_dark', '夜间模式图片', 'upload', $img . 'logo_dark.png'),
|
|
self::field('footer_t1_t', '首行文字', 'text', ''),
|
|
self::field('fcode_t1_code', '更多内容', 'textarea', 'Zibll 子比主题专为博客、自媒体、资讯类的网站设计开发,简约优雅的设计风格,全面的前端用户功能,简单的模块化配置,欢迎您的体验', ['sanitize_type' => 'html', 'rows' => 3]),
|
|
self::field('fcode_t2_code_1', '版块二第一行', 'textarea', '<a href="https://zibll.com">友链申请</a>' . "\n" . '<a href="https://zibll.com">免责声明</a>' . "\n" . '<a href="https://zibll.com">广告合作</a>' . "\n" . '<a href="https://zibll.com">关于我们</a>', ['sanitize_type' => 'html', 'rows' => 4]),
|
|
self::field('fcode_t2_code_2', '版块二第二行', 'textarea', self::copyright_default(), ['sanitize_type' => 'html', 'rows' => 3]),
|
|
self::field('footer_contact_m_s', '图标联系方式移动端显示', 'switcher', true),
|
|
self::field('footer_contact_wechat_img', '微信二维码', 'upload', $img . 'qrcode.png'),
|
|
self::field('footer_contact_qq', 'QQ号', 'text', '1234567788'),
|
|
self::field('footer_contact_weibo', '微博链接', 'url', 'https://weibo.com/'),
|
|
self::field('footer_contact_email', '邮箱', 'text', '1234567788@QQ.COM'),
|
|
self::field('footer_contact_more', '更多图标联系方式', 'group', [], ['button_title' => '添加图标联系方式', 'fields' => [
|
|
self::field('desc', '按钮名称', 'text', ''), self::field('icon', '按钮图标', 'icon', 'fa fa-heart'), self::field('link', '按钮链接', 'url', '', ['dependsOn' => ['key' => 'img', 'operator' => 'empty']]), self::field('img', '二维码图片', 'upload', ''),
|
|
]]),
|
|
self::field('footer_mini_img_m_s', '版块三移动端显示', 'switcher', true),
|
|
self::field('footer_mini_img', '版块三大图片', 'group', [['image' => $img . 'qrcode.png', 'text' => '扫码加QQ群'], ['image' => $img . 'qrcode.png', 'text' => '扫码加微信']], ['max' => 4, 'button_title' => '添加图片', 'fields' => self::footer_image_fields()]),
|
|
self::field('footer_mini_img_2', '版块三小图片', 'group', [], ['max' => 16, 'button_title' => '添加图片', 'fields' => self::footer_image_fields()]),
|
|
self::field('fcode_customize_code', '页脚自定义HTML', 'textarea', '', ['sanitize_type' => 'html', 'rows' => 3]),
|
|
]);
|
|
}
|
|
|
|
private static function homepage(): array {
|
|
return self::section('homepage', '首页配置', [
|
|
self::notice('首页主文章模块。关闭则首页不显示主文章模块,但仍可通过模块添加。'),
|
|
self::field('home_posts_list_s', '首页文章', 'switcher', true),
|
|
self::field('home_list1_orderby_s', '栏目1设置', 'switcher', true, ['dependsOn' => self::enabled('home_posts_list_s')]),
|
|
self::field('home_list1_orderby_option', '排序方式设置', 'fieldset', '', ['dependsOn' => ['all' => [self::enabled('home_posts_list_s'), self::enabled('home_list1_orderby_s')]], 'fields' => self::orderby_fields()]),
|
|
self::field('index_list_title', '显示标题', 'textarea', '', ['dependsOn' => self::enabled('home_posts_list_s'), 'sanitize_type' => 'html', 'rows' => 1]),
|
|
self::field('home_exclude_posts', '排除文章', 'async_select', '', ['dependsOn' => self::enabled('home_posts_list_s'), 'source' => 'posts', 'multiple' => true, 'sortable' => true]),
|
|
self::field('home_exclude_cats', '排除分类', 'async_select', '', ['dependsOn' => self::enabled('home_posts_list_s'), 'source' => 'categories', 'multiple' => true, 'sortable' => true]),
|
|
self::field('home_lists', '更多栏目', 'group', [], ['dependsOn' => self::enabled('home_posts_list_s'), 'button_title' => '添加栏目', 'fields' => [self::field('title', '自定义标题', 'textarea', '', ['sanitize_type' => 'html', 'rows' => 1]), self::field('term_id', '显示内容', 'async_select', '', ['source' => 'categories']), self::field('orderby', '排序方式设置', 'select', '', ['options' => self::post_order_options(true)])]]),
|
|
]);
|
|
}
|
|
|
|
private static function category(): array {
|
|
return self::section('category', '分类页面', [
|
|
self::field('page_cover_cat_s', '显示封面图', 'switcher', true),
|
|
self::field('cat_post_count_s', '显示文章数量', 'switcher', true),
|
|
self::field('cat_default_cover', '封面图', 'upload', self::asset('assets/vendor/zibll/img/user_t.jpg'), ['dependsOn' => self::enabled('page_cover_cat_s'), 'help' => '默认封面图,建议尺寸2000x800。']),
|
|
self::field('cat_orderby_s', '排序方式按钮', 'switcher', true),
|
|
self::field('cat_orderby_option', '排序方式设置', 'fieldset', [], ['dependsOn' => self::enabled('cat_orderby_s'), 'fields' => self::orderby_fields()]),
|
|
self::notice('AJAX筛选菜单列表:显示分类、标签菜单,通过 AJAX 获取内容。'),
|
|
self::field('ajax_list_cat_cat', '分类筛选', 'switcher', true),
|
|
self::field('ajax_list_option_cat_cat', '分类筛选设置', 'fieldset', [], ['dependsOn' => self::enabled('ajax_list_cat_cat'), 'fields' => self::ajax_fields('categories')]),
|
|
self::field('ajax_list_cat_tag', '标签筛选', 'switcher', false),
|
|
self::field('ajax_list_option_cat_tag', '标签筛选设置', 'fieldset', [], ['dependsOn' => self::enabled('ajax_list_cat_tag'), 'fields' => self::ajax_fields('tags')]),
|
|
]);
|
|
}
|
|
|
|
private static function tag(): array {
|
|
return self::section('tag', '标签页面', [
|
|
self::field('tag_post_count_s', '显示文章数量', 'switcher', true),
|
|
self::field('page_cover_tag_s', '显示封面图', 'switcher', true),
|
|
self::field('tag_default_cover', '封面图', 'upload', self::asset('assets/vendor/zibll/img/user_t.jpg'), ['dependsOn' => self::enabled('page_cover_tag_s'), 'help' => '默认封面图,建议尺寸2000x800。']),
|
|
self::field('tag_orderby_s', '排序方式按钮', 'switcher', true),
|
|
self::field('tag_orderby_option', '排序方式设置', 'fieldset', [], ['dependsOn' => self::enabled('tag_orderby_s'), 'fields' => self::orderby_fields()]),
|
|
self::notice('AJAX筛选菜单列表:显示分类、标签菜单,通过 AJAX 获取内容。'),
|
|
self::field('ajax_list_tag_cat', '分类筛选', 'switcher', false),
|
|
self::field('ajax_list_option_tag_cat', '分类筛选设置', 'fieldset', [], ['dependsOn' => self::enabled('ajax_list_tag_cat'), 'fields' => self::ajax_fields('categories')]),
|
|
self::field('ajax_list_tag_tag', '标签筛选', 'switcher', true),
|
|
self::field('ajax_list_option_tag_tag', '标签筛选设置', 'fieldset', [], ['dependsOn' => self::enabled('ajax_list_tag_tag'), 'fields' => self::ajax_fields('tags')]),
|
|
]);
|
|
}
|
|
|
|
private static function user_home(): array {
|
|
$items = [];
|
|
foreach (['post' => '文章', 'favorite' => '收藏', 'comment' => '评论', 'follow' => '粉丝'] as $key => $title) {
|
|
$items[] = ['key' => $key, 'label' => $title, 'fields' => [['key' => 'pc_s', 'label' => 'PC端显示', 'type' => 'switcher', 'default' => true], ['key' => 'm_s', 'label' => '移动端显示', 'type' => 'switcher', 'default' => true]]];
|
|
}
|
|
return self::section('user-home', '用户主页', [
|
|
self::field('author_main_tab_opt', '栏目配置', 'sortable', ['post' => ['pc_s' => true, 'm_s' => true], 'favorite' => ['pc_s' => true, 'm_s' => true], 'comment' => ['pc_s' => true, 'm_s' => true], 'follow' => ['pc_s' => true, 'm_s' => true]], ['items' => $items, 'description' => '用户个人主页栏目显示配置及排序。']),
|
|
self::field('author_main_tab_swiper', '移动端滑动切换', 'switcher', false),
|
|
]);
|
|
}
|
|
|
|
private static function other(): array {
|
|
return self::section('other', '其它页面', [
|
|
self::field('page_header_style', '页面标题', 'radio', '', ['options' => self::options(['' => '不显示', '1' => '简单样式', '2' => '卡片样式', '3' => '封面图样式'])]),
|
|
self::field('page_header_cover_img', '页面封面图', 'upload', self::asset('assets/vendor/zibll/img/user_t.jpg')),
|
|
]);
|
|
}
|
|
|
|
private static function slider_item_fields(): array {
|
|
return [
|
|
self::field('background', '图片背景', 'upload', ''), self::field('background_video', '视频背景', 'upload', '', ['media_type' => 'video']), self::field('hide', '显示规则', 'radio', '', ['options' => self::options(['' => '全部显示', 'pc' => 'PC端不显示', 'm' => '移动端不显示'])]), self::field('link', '跳转链接', 'link', []),
|
|
self::field('image_layer', '叠加图层', 'group', [], ['button_title' => '添加图层', 'fields' => [self::field('image', '图层图片', 'upload', ''), self::field('free_size', '自由尺寸', 'switcher', false), self::field('align', '图层对齐', 'radio', 'center', ['dependsOn' => ['all' => [self::not_empty('image'), self::enabled('free_size')]], 'options' => self::options(['left' => '靠左显示', 'center' => '居中显示', 'right' => '靠右显示'])]), self::field('parallax', '视差滚动', 'number', 0, ['dependsOn' => self::not_empty('image'), 'min' => -200, 'max' => 200, 'step' => 5]), self::field('parallax_scale', '视差缩放', 'number', 100, ['dependsOn' => self::not_empty('image'), 'min' => 1, 'max' => 200, 'step' => 5]), self::field('parallax_opacity', '视差透明', 'number', 100, ['dependsOn' => ['all' => [self::not_empty('image'), self::not_empty('parallax')]], 'min' => 1, 'max' => 100, 'step' => 5])]]),
|
|
self::field('text', '叠加文案', 'accordion', ['title' => '', 'desc' => '', 'text_align' => 'left-bottom', 'text_size_pc' => 30, 'text_size_m' => 20, 'parallax' => 40], ['fields' => [self::field('title', '幻灯片标题', 'textarea', '', ['sanitize_type' => 'html']), self::field('desc', '幻灯片简介', 'textarea', '', ['dependsOn' => self::not_empty('title'), 'sanitize_type' => 'html']), self::field('text_align', '显示位置', 'image_select', 'left-bottom', ['dependsOn' => self::not_empty('title'), 'options' => self::text_align_options()]), self::field('text_size_pc', 'PC端字体大小', 'number', 30, ['dependsOn' => self::not_empty('title'), 'min' => 12, 'max' => 50, 'step' => 1]), self::field('text_size_m', '移动端字体大小', 'number', 20, ['dependsOn' => self::not_empty('title'), 'min' => 12, 'max' => 50, 'step' => 1]), self::field('parallax', '文案视差滚动', 'number', 40, ['dependsOn' => self::not_empty('title'), 'min' => -200, 'max' => 200, 'step' => 10])]]),
|
|
];
|
|
}
|
|
|
|
private static function slider_option_fields(): array {
|
|
return [self::field('direction', '幻灯片方向', 'radio', 'horizontal', ['options' => self::options(['horizontal' => '左右切换', 'vertical' => '上下切换'])]), self::field('loop', '循环切换', 'switcher', true), self::field('button', '显示翻页按钮', 'switcher', false), self::field('pagination', '显示指示器', 'switcher', false), self::field('effect', '切换动画', 'select', 'slide', ['options' => self::options(['slide' => '滑动', 'fade' => '淡出淡入', 'cube' => '3D方块', 'coverflow' => '3D滑入', 'flip' => '3D翻转'])]), self::field('scale_height', '按比例自动高度', 'switcher', true, ['dependsOn' => self::not_value('direction', 'vertical')]), self::field('scale', '长宽比例', 'number', 35, ['dependsOn' => ['all' => [self::not_value('direction', 'vertical'), self::enabled('scale_height')]], 'min' => 10, 'max' => 300, 'step' => 5]), self::field('auto_height', '自动高度', 'switcher', false, ['dependsOn' => ['all' => [self::not_value('direction', 'vertical'), self::disabled('scale_height')]]]), self::field('max_height', '最大高度', 'number', 500, ['dependsOn' => ['all' => [self::enabled('auto_height'), self::not_value('direction', 'vertical'), self::disabled('scale_height')]], 'min' => 120, 'max' => 800, 'step' => 20]), self::field('min_height', '最小高度', 'number', 180, ['dependsOn' => ['all' => [self::enabled('auto_height'), self::not_value('direction', 'vertical'), self::disabled('scale_height')]], 'min' => 100, 'max' => 500, 'step' => 20]), self::field('pc_height', '电脑端高度', 'number', 400, ['min' => 120, 'max' => 800, 'step' => 20]), self::field('m_height', '移动端高度', 'number', 200, ['min' => 100, 'max' => 500, 'step' => 20]), self::field('spacebetween', '幻灯片间距', 'number', 15, ['min' => 0, 'max' => 500, 'step' => 5]), self::field('speed', '切换速度', 'number', 0, ['min' => 0, 'max' => 3000, 'step' => 100]), self::field('autoplay', '自动播放', 'switcher', true), self::field('interval', '停顿时间', 'number', 4, ['dependsOn' => self::enabled('autoplay'), 'min' => 0, 'max' => 20, 'step' => 1])];
|
|
}
|
|
|
|
private static function search_fields(): array {
|
|
return [self::field('show_keywords', '热门搜索', 'switcher', true), self::field('popular_limit', '关键词最多显示', 'number', 6, ['dependsOn' => self::enabled('show_keywords'), 'min' => 2, 'max' => 50]), self::field('show_input_cat', '分类搜索', 'switcher', false), self::field('in_cat', '默认搜索的分类', 'async_select', '', ['dependsOn' => self::enabled('show_input_cat'), 'source' => 'categories']), self::field('more_cats', '允许用户选择更多分类', 'async_select', '', ['dependsOn' => self::enabled('show_input_cat'), 'source' => 'categories', 'multiple' => true, 'sortable' => true]), self::field('show_type', '显示类型选择', 'switcher', false), self::field('in_type', '默认搜索类型', 'radio', 'post', ['options' => self::options(['post' => '文章', 'user' => '用户'])]), self::field('before_html', '组件上方额外内容', 'textarea', '<div class="em16 font-bold mb10">更优雅的Wordpress主题</div>' . "\n" . '<div>这是导航栏幻灯片多功能组件,可在后台进行配置</div>', ['sanitize_type' => 'html']), self::field('after_html', '组件下方额外内容', 'textarea', '', ['sanitize_type' => 'html'])];
|
|
}
|
|
|
|
private static function card_fields(): array {
|
|
return [self::field('icon_radius4', '方形图标', 'switcher', false), self::field('cards', '添加卡片', 'group', [], ['button_title' => '添加内容', 'fields' => [self::field('title', '文案标题', 'textarea', '', ['sanitize_type' => 'html']), self::field('desc', '文案简介', 'textarea', '', ['sanitize_type' => 'html']), self::field('icon', '选择图标', 'icon', 'fa fa-magic'), self::field('customize_icon', '自定义图标', 'textarea', '', ['sanitize_type' => 'html']), self::field('icon_class', '图标颜色', 'palette', 'c-yellow', ['options' => self::zib_palette(true)]), self::field('link', '跳转链接', 'link', [])]])];
|
|
}
|
|
|
|
private static function orderby_fields(): array { return [self::field('lists', '显示排序方式', 'select', ['modified', 'views', 'like', 'comment_count'], ['multiple' => true, 'sortable' => true, 'options' => self::post_order_options(false)]), self::field('dropdown', '更多排序方式', 'switcher', false)]; }
|
|
private static function ajax_fields(string $source): array { return [self::field('lists', '按钮列表', 'async_select', [], ['source' => $source, 'multiple' => true, 'sortable' => true]), self::field('dropdown', '下拉列表', 'switcher', false), self::field('dropdown_lists', '下拉菜单列表', 'async_select', [], ['dependsOn' => self::enabled('dropdown'), 'source' => $source, 'multiple' => true, 'sortable' => true])]; }
|
|
private static function footer_image_fields(): array { return [self::field('text', '显示文字', 'text', ''), self::field('image', '显示图片', 'upload', ''), self::field('link', '点击跳转', 'link', [])]; }
|
|
private static function header_slider_defaults(): array { $img = self::asset('assets/vendor/zibll/img/'); return [['background' => $img . 'slider-bg.jpg', 'link' => ['url' => 'https://www.zibll.com/', 'target' => '_blank'], 'text' => ['title' => '', 'desc' => ''], 'text_align' => 'left-bottom', 'text_parallax' => 30, 'text_size_m' => 20, 'text_size_pc' => 30], ['background' => $img . 'user_t.jpg', 'link' => ['url' => 'https://www.zibll.com/', 'target' => '_blank'], 'text' => ['title' => '', 'desc' => ''], 'text_align' => 'left-bottom', 'text_parallax' => 30, 'text_size_m' => 20, 'text_size_pc' => 30]]; }
|
|
private static function slider_options_defaults(): array { return ['direction' => 'horizontal', 'loop' => true, 'button' => true, 'pagination' => true, 'effect' => 'slide', 'scale_height' => false, 'auto_height' => false, 'pc_height' => 550, 'm_height' => 280, 'spacebetween' => 0, 'speed' => 0, 'autoplay' => true, 'interval' => 6]; }
|
|
private static function search_defaults(): array { return ['show_keywords' => true, 'popular_limit' => 6, 'show_input_cat' => false, 'in_cat' => '', 'more_cats' => '', 'show_type' => false, 'in_type' => 'post', 'before_html' => '<div class="em16 font-bold mb10">更优雅的Wordpress主题</div>' . "\n" . '<div>这是导航栏幻灯片多功能组件,可在后台进行配置</div>', 'after_html' => '']; }
|
|
private static function card_defaults(): array { return ['icon_radius4' => false, 'cards' => [['icon' => 'zibsvg-vip_1', 'customize_icon' => '', 'icon_class' => 'c-yellow', 'link' => [], 'title' => '图标卡片', 'desc' => '这是一个图标卡片示例'], ['icon' => 'zibsvg-vip_2', 'customize_icon' => '', 'icon_class' => 'c-blue-2', 'link' => [], 'title' => '原创作品', 'desc' => '这是一个图标卡片示例'], ['icon' => 'zibsvg-hot', 'customize_icon' => '', 'icon_class' => 'jb-pink', 'link' => [], 'title' => '灵感来源<badge class="ml6 jb-yellow">NEW</badge>', 'desc' => '这是一个图标卡片示例'], ['icon' => 'fa fa-ioxhost', 'customize_icon' => '', 'icon_class' => 'jb-cyan', 'link' => [], 'title' => '系统工具 <badge class="ml6 jb-blue">GO <span class="fa fa-angle-right em12"></span></badge>', 'desc' => '这是一个图标卡片示例']]]; }
|
|
|
|
private static function field(string $key, string $label, string $type, $default = null, array $extra = []): array { return array_merge(['key' => $key, 'label' => $label, 'type' => $type, 'default' => $default], $extra); }
|
|
private static function notice(string $content): array { return ['key' => '_notice_' . md5($content), 'type' => 'notice', 'content' => $content, 'tone' => 'warning']; }
|
|
private static function enabled(string $key): array { return ['key' => $key, 'operator' => 'truthy']; }
|
|
private static function disabled(string $key): array { return ['key' => $key, 'operator' => 'falsy']; }
|
|
private static function not_empty(string $key): array { return ['key' => $key, 'operator' => 'not_empty']; }
|
|
private static function not_value(string $key, string $value): array { return ['key' => $key, 'operator' => 'neq', 'value' => $value]; }
|
|
private static function options(array $options): array { $out = []; foreach ($options as $value => $label) { $out[] = ['label' => $label, 'value' => (string) $value]; } return $out; }
|
|
private static function device_options(): array { return self::options(['pc_s' => 'PC端显示', 'm_s' => '移动端显示']); }
|
|
private static function solid_palette(): array { return self::options(['ff648f' => '#ff648f', 'c246f5' => '#c246f5', '469cf5' => '#469cf5', '27bf41' => '#27bf41', 'fd6b4e' => '#fd6b4e', '2d2422' => '#2d2422']); }
|
|
private static function zib_palette(bool $transparent = false): array { $colors = $transparent ? ['transparent' => 'rgba(114,114,114,.1)'] : []; $colors += ['c-red' => 'rgba(255,84,115,.4)', 'c-yellow' => 'rgba(255,111,6,.4)', 'c-cyan' => 'rgba(8,196,193,.4)', 'c-blue' => 'rgba(41,151,247,.4)', 'c-blue-2' => 'rgba(77,130,249,.4)', 'c-green' => 'rgba(18,185,40,.4)', 'c-purple' => 'rgba(213,72,245,.4)', 'jb-red' => '#ff5473', 'jb-yellow' => '#ff8a00', 'jb-cyan' => '#08c4c1', 'jb-blue' => '#2997f7', 'jb-green' => '#12b928', 'jb-purple' => '#d548f5', 'jb-pink' => '#ff648f']; return self::options($colors); }
|
|
private static function post_order_options(bool $with_default): array { $options = $with_default ? ['' => '保持默认'] : []; $options += ['modified' => '更新', 'date' => '发布', 'views' => '浏览', 'like' => '点赞', 'comment_count' => '评论', 'favorite' => '收藏', 'rand' => '随机']; return self::options($options); }
|
|
private static function header_layout_options(): array { $base = self::asset('assets/images/header-layout/'); return [['label' => '布局一', 'value' => '1', 'image' => $base . 'header_layout_1.png'], ['label' => '布局二', 'value' => '2', 'image' => $base . 'header_layout_2.png'], ['label' => '布局三', 'value' => '3', 'image' => $base . 'header_layout_3.png']]; }
|
|
private static function mobile_header_layout_options(): array { $base = self::asset('assets/images/header-layout/'); return [['label' => '居中', 'value' => 'center', 'image' => $base . 'mobile_header_layout_center.png'], ['label' => '居左', 'value' => 'left', 'image' => $base . 'mobile_header_layout_left.png']]; }
|
|
private static function text_align_options(): array { $base = self::asset('assets/images/slider-align/'); return [['label' => '左下', 'value' => 'left-bottom', 'image' => $base . 'left-bottom.jpg'], ['label' => '左中', 'value' => 'left-conter', 'image' => $base . 'left-conter.jpg'], ['label' => '居中', 'value' => 'conter-conter', 'image' => $base . 'conter-conter.jpg'], ['label' => '中下', 'value' => 'conter-bottom', 'image' => $base . 'conter-bottom.jpg'], ['label' => '右中', 'value' => 'right-conter', 'image' => $base . 'right-conter.jpg'], ['label' => '右下', 'value' => 'right-bottom', 'image' => $base . 'right-bottom.jpg']]; }
|
|
private static function asset(string $path): string { return trailingslashit(get_template_directory_uri()) . ltrim($path, '/'); }
|
|
private static function copyright_default(): string { return sprintf('Copyright © %s · <a href="%s">%s</a> · 由<a target="_blank" href="https://www.zibll.com">zibll主题</a>强力驱动.', date('Y'), home_url(), get_bloginfo('title')); }
|
|
}
|