2022-01-07 11:15:42 +08:00
|
|
|
|
<?php
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 主题选项
|
2026-10-23 12:55:41 +08:00
|
|
|
|
* @author Yongquan Yang <yangyq.net>
|
2022-01-07 11:15:42 +08:00
|
|
|
|
* @license MIT License
|
|
|
|
|
|
* @version 2020.09.21
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
function getrobots()
|
|
|
|
|
|
{
|
|
|
|
|
|
$site_url = parse_url(site_url());
|
|
|
|
|
|
$path = (!empty($site_url['path'])) ? $site_url['path'] : '';
|
|
|
|
|
|
|
|
|
|
|
|
$robots = "User-agent: *\n\n";
|
|
|
|
|
|
$robots .= "Disallow: $path/wp-admin/\n";
|
|
|
|
|
|
$robots .= "Disallow: $path/wp-includes/\n";
|
|
|
|
|
|
$robots .= "Disallow: $path/wp-content/plugins/\n";
|
|
|
|
|
|
$robots .= "Disallow: $path/wp-content/themes/\n";
|
|
|
|
|
|
|
|
|
|
|
|
return $robots;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-10-23 19:50:07 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 图片字段的默认值(后台预填用)。
|
|
|
|
|
|
*
|
|
|
|
|
|
* ── 为什么不直接调 yang_image_default() ──────────────────────
|
|
|
|
|
|
* 本文件由 optionsframework_init() 在 init 钩子上 require,
|
|
|
|
|
|
* 而 yang_image_default() 来自 inc/theme-option-defaults.php。
|
|
|
|
|
|
* 正常时序下后者先加载,但**加载顺序被打乱时**(子主题、外部脚本
|
|
|
|
|
|
* 直接 include 本文件、插件在更早的钩子里触发本函数),
|
|
|
|
|
|
* 直接调用就会 Fatal —— 后台整个白屏,比"少一个预填值"严重得多。
|
|
|
|
|
|
*
|
|
|
|
|
|
* 这里先用 function_exists() 探一下,缺了就返回空串:
|
|
|
|
|
|
* 后台退化成没有预填默认值,但页面能打开、能保存、能干活。
|
|
|
|
|
|
* 降级必须降到"还能用",不能降到"打不开"。
|
|
|
|
|
|
*/
|
|
|
|
|
|
if (!function_exists('yang_options_default_img')) {
|
|
|
|
|
|
function yang_options_default_img($id)
|
|
|
|
|
|
{
|
|
|
|
|
|
return function_exists('yang_image_default')
|
|
|
|
|
|
? yang_image_default($id)
|
|
|
|
|
|
: '';
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-01-07 11:15:42 +08:00
|
|
|
|
function kratos_options()
|
|
|
|
|
|
{
|
|
|
|
|
|
$sitename = get_bloginfo('name');
|
|
|
|
|
|
|
|
|
|
|
|
$imagepath = ASSET_PATH . '/assets/img/options/';
|
|
|
|
|
|
|
|
|
|
|
|
$seorobots = '<a href="' . home_url() . '/robots.txt" target="_blank">robots.txt</a>';
|
|
|
|
|
|
$seoreading = '<a href="' . admin_url('options-reading.php') . '" target="_blank">' . __('设置-阅读-对搜索引擎的可见性', 'kratos') . '</a>';
|
|
|
|
|
|
|
|
|
|
|
|
$cc_array = array(
|
|
|
|
|
|
'one' => __('知识共享署名 4.0 国际许可协议', 'kratos'),
|
|
|
|
|
|
'two' => __('知识共享署名-非商业性使用 4.0 国际许可协议', 'kratos'),
|
|
|
|
|
|
'three' => __('知识共享署名-禁止演绎 4.0 国际许可协议', 'kratos'),
|
|
|
|
|
|
'four' => __('知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议', 'kratos'),
|
|
|
|
|
|
'five' => __('知识共享署名-相同方式共享 4.0 国际许可协议', 'kratos'),
|
|
|
|
|
|
'six' => __('知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议', 'kratos'),
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$top_array = array(
|
|
|
|
|
|
'banner' => __( '图片导航', 'kratos' ),
|
|
|
|
|
|
'color' => __( '颜色导航', 'kratos' ),
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options = array();
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('全站配置', 'kratos'),
|
|
|
|
|
|
'type' => 'heading',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('图片 Logo', 'kratos'),
|
|
|
|
|
|
'desc' => __('不选择图片则显示文字标题', 'kratos'),
|
|
|
|
|
|
'id' => 'g_logo',
|
|
|
|
|
|
'type' => 'upload',
|
2026-10-23 19:50:07 +08:00
|
|
|
|
/* 有意不设 std:这里空着时显示站点名称文字,比塞一张通用占位
|
|
|
|
|
|
logo 好看。其它图片字段见 inc/theme-option-defaults.php。 */
|
2022-01-07 11:15:42 +08:00
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('Favicon 图片', 'kratos'),
|
2026-10-23 19:50:07 +08:00
|
|
|
|
'desc' => __('浏览器收藏夹和地址栏中显示的图标。<b>留空则自动使用主题自带的默认图标</b>,不会出现空白。', 'kratos'),
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'id' => 'g_icon',
|
2026-10-23 19:50:07 +08:00
|
|
|
|
/* 有意不写 std。
|
|
|
|
|
|
*
|
|
|
|
|
|
* std 里存的是**绝对 URL**,一旦用户保存表单就会被写进数据库。
|
|
|
|
|
|
* 数据库里躺着一个写死的主题目录地址是隐患:主题目录改名、
|
|
|
|
|
|
* 换 CDN、或站点迁移域名之后,那条记录就指向不存在的文件
|
|
|
|
|
|
* (线上 s_wechat_url 指向早已删除的 kratos-master 目录,就是这么坏掉的)。
|
|
|
|
|
|
*
|
|
|
|
|
|
* 所以默认值一律由运行时提供(yang_option_image()),库里保持空。
|
|
|
|
|
|
* 这样默认图地址永远由当前请求现算,改目录也不用改数据。
|
|
|
|
|
|
*/
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'type' => 'upload',
|
|
|
|
|
|
);
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('是否添加国旗', 'kratos'),
|
|
|
|
|
|
'desc' => __('在页脚添加国旗', 'kratos'),
|
|
|
|
|
|
'std' => '0',
|
|
|
|
|
|
'id' => 'g_flag',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('国旗地址', 'kratos'),
|
2026-10-23 19:50:07 +08:00
|
|
|
|
'desc' => __('选择国旗图片地址。<b>留空则自动使用主题自带的默认国旗</b>。', 'kratos'),
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'id' => 'g_flag_url',
|
2026-10-23 19:50:07 +08:00
|
|
|
|
/* 不写 std —— 理由同 g_icon:默认值由运行时给,库里不存绝对地址。 */
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'type' => 'upload',
|
|
|
|
|
|
);
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('背景颜色', 'kratos'),
|
|
|
|
|
|
'desc' => __('全站页面的背景颜色,需填写十六进制颜色码', 'kratos'),
|
|
|
|
|
|
'id' => 'g_background',
|
|
|
|
|
|
'std' => '#f5f5f5',
|
|
|
|
|
|
'type' => 'color',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('前台管理员导航', 'kratos'),
|
|
|
|
|
|
'desc' => __('开启前台管理员导航', 'kratos'),
|
|
|
|
|
|
'std' => '1',
|
|
|
|
|
|
'id' => 'g_adminbar',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('多人模式', 'kratos'),
|
|
|
|
|
|
'desc' => __('在文章列表显示当前文章作者,在文章页面页脚显示当前作者介绍', 'kratos'),
|
|
|
|
|
|
'id' => 'multiusers',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('CSS 动画库', 'kratos'),
|
|
|
|
|
|
'desc' => __('开启 animate.css 效果', 'kratos'),
|
|
|
|
|
|
'std' => '0',
|
|
|
|
|
|
'id' => 'g_animate',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('Font Awesome', 'kratos'),
|
|
|
|
|
|
'desc' => __('开启 Font Awesome 字体', 'kratos'),
|
|
|
|
|
|
'std' => '0',
|
|
|
|
|
|
'id' => 'g_fontawesome',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('禁止生成缩略图', 'kratos'),
|
|
|
|
|
|
'desc' => __('是否禁止生成多种尺寸图片资源', 'kratos'),
|
|
|
|
|
|
'id' => 'g_removeimgsize',
|
|
|
|
|
|
'std' => '0',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('Gutenberg 编辑器', 'kratos'),
|
|
|
|
|
|
'desc' => __('开启 Gutenberg 编辑器', 'kratos'),
|
|
|
|
|
|
'std' => '0',
|
|
|
|
|
|
'id' => 'g_gutenberg',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('Gravatar 加速', 'kratos'),
|
|
|
|
|
|
'desc' => __('开启 Gravatar 头像加速', 'kratos'),
|
|
|
|
|
|
'std' => '0',
|
|
|
|
|
|
'id' => 'g_gravatar',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('Chrome 导航栏颜色', 'kratos'),
|
|
|
|
|
|
'desc' => __('Chrome 移动端浏览器导航栏的颜色', 'kratos'),
|
|
|
|
|
|
'id' => 'g_chrome',
|
|
|
|
|
|
'std' => '#282a2c',
|
|
|
|
|
|
'type' => 'color',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('微信二维码', 'kratos'),
|
|
|
|
|
|
'desc' => __('开启页面右下角浮动微信二维码', 'kratos'),
|
|
|
|
|
|
'id' => 's_wechat',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'id' => 's_wechat_url',
|
2026-10-23 19:50:07 +08:00
|
|
|
|
/* 后台显示的初始值必须与前台实际用的默认图**同一份来源**,
|
|
|
|
|
|
否则用户在后台看到 A 图、前台显示 B 图,一保存又把 A 写进库,
|
|
|
|
|
|
前台跟着退回 A —— 前后台像两个产品。
|
|
|
|
|
|
所以这里统一从 yang_image_defaults() 取,不在两处各写一遍路径。 */
|
|
|
|
|
|
'std' => yang_options_default_img('s_wechat_url'),
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'type' => 'upload',
|
|
|
|
|
|
'class' => 'hidden',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('404 页面图片', 'kratos'),
|
|
|
|
|
|
'id' => 'g_404',
|
2026-10-23 19:50:07 +08:00
|
|
|
|
'std' => yang_options_default_img('g_404'),
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'type' => 'upload',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('收录配置', 'kratos'),
|
|
|
|
|
|
'type' => 'heading',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('分享图片', 'kratos'),
|
|
|
|
|
|
'desc' => __('搜索引擎或者社交工具分享首页时抓取的图片', 'kratos'),
|
|
|
|
|
|
'id' => 'seo_shareimg',
|
2026-10-23 19:50:07 +08:00
|
|
|
|
'std' => yang_options_default_img('seo_shareimg'),
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'type' => 'upload',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('关键词', 'kratos'),
|
|
|
|
|
|
'desc' => __('每个关键词之间需要用「英文逗号」分割', 'kratos'),
|
|
|
|
|
|
'id' => 'seo_keywords',
|
|
|
|
|
|
'type' => 'text',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('站点描述', 'kratos'),
|
|
|
|
|
|
'id' => 'seo_description',
|
|
|
|
|
|
'type' => 'textarea',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('统计代码', 'kratos'),
|
|
|
|
|
|
'desc' => __('注意:输入 HTML/JS 代码时请注意辨别代码安全!', 'kratos'),
|
|
|
|
|
|
'id' => 'seo_statistical',
|
|
|
|
|
|
'type' => 'textarea',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('robots.txt 配置', 'kratos'),
|
|
|
|
|
|
'desc' => __('- 需要 ', 'kratos') . $seoreading . __(' 是开启的状态,下面的配置才会生效', 'kratos'),
|
|
|
|
|
|
'type' => 'info',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'desc' => __('- 如果网站根目录下已经有 robots.txt 文件,下面的配置不会生效', 'kratos'),
|
|
|
|
|
|
'type' => 'info',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'desc' => __('- 点击 ', 'kratos') . $seorobots . __(' 查看配置是否生效,如果网站开启了 CDN,可能需要刷新缓存才会生效', 'kratos'),
|
|
|
|
|
|
'type' => 'info',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'id' => 'seo_robots',
|
|
|
|
|
|
'std' => getrobots(),
|
|
|
|
|
|
'type' => 'textarea',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('首页配置', 'kratos'),
|
|
|
|
|
|
'type' => 'heading',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('哀悼功能', 'kratos'),
|
2026-10-23 13:55:23 +08:00
|
|
|
|
'desc' => __('开启后站点首页与文章页转为黑白。这是老的手动开关,开了就一直黑白,与日期无关。日常建议用下面的「按纪念日自动哀悼」。', 'kratos'),
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'id' => 'g_rip',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2026-10-23 13:55:23 +08:00
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('按纪念日自动哀悼', 'kratos'),
|
|
|
|
|
|
'desc' => __('勾选后,只有在下表勾选的那些日期才会自动黑白,其余日子正常显示。日期按站点时区判断,只比对月和日,每年循环。', 'kratos'),
|
|
|
|
|
|
'id' => 'g_rip_auto',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// 把内置清单转成 multicheck 需要的格式
|
|
|
|
|
|
$rip_options = array();
|
|
|
|
|
|
$rip_legal = array();
|
|
|
|
|
|
$rip_custom = array();
|
|
|
|
|
|
foreach (yang_mourning_presets() as $md => $info) {
|
|
|
|
|
|
$entry = array(
|
|
|
|
|
|
'name' => $md . ' ' . $info['name'],
|
|
|
|
|
|
'note' => $info['note'],
|
|
|
|
|
|
);
|
|
|
|
|
|
if (isset($info['group']) && $info['group'] === 'legal') {
|
|
|
|
|
|
$rip_legal[$md] = $entry;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$rip_custom[$md] = $entry;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$rip_default = array();
|
|
|
|
|
|
foreach (yang_mourning_presets() as $md => $info) {
|
|
|
|
|
|
$rip_default[$md] = !empty($info['default']) ? 1 : 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('纪念日清单', 'kratos'),
|
2026-10-23 14:43:47 +08:00
|
|
|
|
'desc' => __('勾选需要自动黑白的日期。<b>默认一个都不勾</b>,请按自己的意愿挑选。前三个是法定纪念日,后面几个是民间通行做法。日期按站点时区判断,只比对月和日,每年循环。', 'kratos'),
|
2026-10-23 13:55:23 +08:00
|
|
|
|
'id' => 'g_rip_days',
|
|
|
|
|
|
'std' => $rip_default,
|
|
|
|
|
|
'type' => 'multicheck',
|
|
|
|
|
|
'options' => array_merge($rip_legal, $rip_custom),
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('附加日期', 'kratos'),
|
|
|
|
|
|
'desc' => __('可选。填 MM-DD 表示每年循环(如 05-12);填 YYYY-MM-DD 表示只在当年生效(如 2020-04-04,用于历次全国哀悼日这类一次性事件)。多个日期用空格或逗号分隔。', 'kratos'),
|
|
|
|
|
|
'id' => 'g_rip_extra',
|
|
|
|
|
|
'type' => 'text',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2026-10-23 14:43:47 +08:00
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('说明页路径', 'kratos'),
|
|
|
|
|
|
'desc' => sprintf(
|
|
|
|
|
|
/* 注意:desc 会过 wp_kses($allowedtags),那是 WordPress 的默认白名单,
|
|
|
|
|
|
只放行 a/abbr/b/br/em/i/strong 等,**不放行 <code>** ——
|
|
|
|
|
|
写 <code> 会被静默剥掉,页面上只剩裸文字。所以这里用 <b> 强调。 */
|
|
|
|
|
|
__('变黑白时,页面顶部会出现一条提示,点进去是一个说明页面(彩色),讲清楚为什么变黑白、哪几天会变。<br>这里可以改那个页面的路径。留空默认 <b>memory</b>,即 %s<br><b>注意:</b>不要和已有文章或页面的路径重名。', 'kratos'),
|
|
|
|
|
|
esc_url(home_url('/memory/'))
|
|
|
|
|
|
),
|
|
|
|
|
|
'id' => 'g_rip_page_slug',
|
|
|
|
|
|
'std' => 'memory',
|
|
|
|
|
|
'type' => 'text',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2026-10-23 13:55:23 +08:00
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'desc' => yang_mourning_status_text(),
|
|
|
|
|
|
'type' => 'info',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2022-01-07 11:15:42 +08:00
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('特色图片', 'kratos'),
|
|
|
|
|
|
'desc' => __('开启站点首页特色图片功能', 'kratos'),
|
|
|
|
|
|
'std' => '1',
|
|
|
|
|
|
'id' => 'g_thumbnail',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('默认特色图', 'kratos'),
|
|
|
|
|
|
'desc' => __('当文章中没有图片并且没有设置特色图时在首页显示', 'kratos'),
|
|
|
|
|
|
'id' => 'g_postthumbnail',
|
|
|
|
|
|
'class' => 'hidden',
|
2026-10-23 19:50:07 +08:00
|
|
|
|
'std' => yang_options_default_img('g_postthumbnail'),
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'type' => 'upload',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('无内容图片', 'kratos'),
|
|
|
|
|
|
'desc' => __('当搜索不到文章或文章分类中没有文章时显示', 'kratos'),
|
|
|
|
|
|
'id' => 'g_nothing',
|
2026-10-23 19:50:07 +08:00
|
|
|
|
'std' => yang_options_default_img('g_nothing'),
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'type' => 'upload',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('文章配置', 'kratos'),
|
|
|
|
|
|
'type' => 'heading',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('文章打赏', 'kratos'),
|
|
|
|
|
|
'desc' => __('开启文章页面打赏功能', 'kratos'),
|
|
|
|
|
|
'id' => 'g_donate',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('支付宝二维码', 'kratos'),
|
|
|
|
|
|
'id' => 'g_donate_alipay',
|
2026-10-23 19:50:07 +08:00
|
|
|
|
'std' => yang_options_default_img('g_donate_alipay'),
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'type' => 'upload',
|
|
|
|
|
|
'class' => 'hidden',
|
|
|
|
|
|
'type' => 'upload',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('微信二维码', 'kratos'),
|
|
|
|
|
|
'id' => 'g_donate_wechat',
|
2026-10-23 19:50:07 +08:00
|
|
|
|
'std' => yang_options_default_img('g_donate_wechat'),
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'type' => 'upload',
|
|
|
|
|
|
'class' => 'hidden',
|
|
|
|
|
|
'type' => 'upload',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('页面布局', 'kratos'),
|
|
|
|
|
|
'desc' => __('是否显示侧边栏小工具(默认显示侧边栏),仅在文章页面生效', 'kratos'),
|
|
|
|
|
|
'id' => "g_article_widgets",
|
|
|
|
|
|
'std' => "two_side",
|
|
|
|
|
|
'type' => "images",
|
|
|
|
|
|
'options' => array(
|
|
|
|
|
|
'one_side' => $imagepath . 'col-12.png',
|
|
|
|
|
|
'two_side' => $imagepath . 'col-8.png')
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('站长配置', 'kratos'),
|
|
|
|
|
|
'type' => 'heading',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('个人头像', 'kratos'),
|
|
|
|
|
|
'id' => 'a_gravatar',
|
2026-10-23 19:50:07 +08:00
|
|
|
|
'std' => yang_options_default_img('a_gravatar'),
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'type' => 'upload',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('个人昵称', 'kratos'),
|
|
|
|
|
|
'id' => 'a_nickname',
|
|
|
|
|
|
'std' => 'Kratos',
|
|
|
|
|
|
'type' => 'text',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('个人简介', 'kratos'),
|
|
|
|
|
|
'std' => __('保持饥渴的专注,追求最佳的品质', 'kratos'),
|
|
|
|
|
|
'id' => 'a_about',
|
|
|
|
|
|
'type' => 'textarea',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('邮件配置', 'kratos'),
|
|
|
|
|
|
'type' => 'heading',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('SMTP 服务', 'kratos'),
|
|
|
|
|
|
'desc' => __('开启 SMTP 服务功能', 'kratos'),
|
|
|
|
|
|
'id' => 'm_smtp',
|
|
|
|
|
|
'type' => 'checkbox',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('邮件服务器', 'kratos'),
|
|
|
|
|
|
'desc' => __('填写发件服务器地址', 'kratos'),
|
|
|
|
|
|
'id' => 'm_host',
|
|
|
|
|
|
'class' => 'hidden',
|
|
|
|
|
|
'type' => 'text',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('服务器端口', 'kratos'),
|
|
|
|
|
|
'desc' => __('填写发件服务器端口', 'kratos'),
|
|
|
|
|
|
'id' => 'm_port',
|
|
|
|
|
|
'class' => 'hidden',
|
|
|
|
|
|
'type' => 'text',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('授权方式', 'kratos'),
|
|
|
|
|
|
'desc' => __('填写登录鉴权的方式,ssl 或 tls', 'kratos'),
|
|
|
|
|
|
'id' => 'm_sec',
|
|
|
|
|
|
'class' => 'hidden',
|
|
|
|
|
|
'type' => 'text',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('邮箱帐号', 'kratos'),
|
|
|
|
|
|
'desc' => __('填写邮箱账号', 'kratos'),
|
|
|
|
|
|
'id' => 'm_username',
|
|
|
|
|
|
'class' => 'hidden',
|
|
|
|
|
|
'type' => 'text',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('邮箱密码', 'kratos'),
|
|
|
|
|
|
'desc' => __('填写邮箱密码', 'kratos'),
|
|
|
|
|
|
'id' => 'm_passwd',
|
|
|
|
|
|
'class' => 'hidden',
|
|
|
|
|
|
'type' => 'password',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'id' => 'm_sendmail',
|
|
|
|
|
|
'class' => 'hidden',
|
|
|
|
|
|
'type' => 'sendmail',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('顶部配置', 'kratos'),
|
|
|
|
|
|
'type' => 'heading',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __( '顶部样式', 'kratos' ),
|
|
|
|
|
|
'desc' => __('请选择顶部样式(颜色导航或图片导航)', 'kratos'),
|
|
|
|
|
|
'id' => 'top_select',
|
|
|
|
|
|
'std' => 'banner',
|
|
|
|
|
|
'type' => 'select',
|
|
|
|
|
|
'options' => $top_array
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('颜色导航', 'kratos'),
|
|
|
|
|
|
'id' => 'top_color',
|
|
|
|
|
|
'std' => '#24292e',
|
|
|
|
|
|
'class' => 'hidden',
|
|
|
|
|
|
'type' => 'color',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('图片导航', 'kratos'),
|
|
|
|
|
|
'id' => 'top_img',
|
2026-10-23 19:50:07 +08:00
|
|
|
|
'std' => yang_options_default_img('top_img'),
|
2022-01-07 11:15:42 +08:00
|
|
|
|
'class' => 'hidden',
|
|
|
|
|
|
'type' => 'upload',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('副标题', 'kratos'),
|
|
|
|
|
|
'id' => 'top_title',
|
|
|
|
|
|
'std' => 'Kratos',
|
|
|
|
|
|
'class' => 'hidden',
|
|
|
|
|
|
'type' => 'text',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('标题描述', 'kratos'),
|
|
|
|
|
|
'std' => __('一款专注于用户阅读体验的响应式博客主题', 'kratos'),
|
|
|
|
|
|
'id' => 'top_describe',
|
|
|
|
|
|
'class' => 'hidden',
|
|
|
|
|
|
'type' => 'text',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('页脚配置', 'kratos'),
|
|
|
|
|
|
'type' => 'heading',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('工信部备案信息', 'kratos'),
|
|
|
|
|
|
'id' => 's_icp',
|
|
|
|
|
|
'placeholder' => __('例如:京ICP证xxxxxx号', 'kratos'),
|
|
|
|
|
|
'type' => 'text',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('公安网备案信息', 'kratos'),
|
|
|
|
|
|
'id' => 's_gov',
|
|
|
|
|
|
'placeholder' => __('例如:京公网安备 xxxxxxxxxxxx号', 'kratos'),
|
|
|
|
|
|
'type' => 'text',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('公安网备案连接', 'kratos'),
|
|
|
|
|
|
'id' => 's_gov_link',
|
|
|
|
|
|
'placeholder' => __('例如:http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=xxxxx', 'kratos'),
|
|
|
|
|
|
'type' => 'text',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('版权信息', 'kratos'),
|
|
|
|
|
|
'id' => 's_copyright',
|
|
|
|
|
|
'std' => 'COPYRIGHT © 2020 ' . $sitename . '. ALL RIGHTS RESERVED.',
|
|
|
|
|
|
'type' => 'textarea',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
2026-10-23 10:35:56 +08:00
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('自定义代码', 'kratos'),
|
|
|
|
|
|
'type' => 'heading',
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('自定义 CSS', 'kratos'),
|
|
|
|
|
|
'desc' => __('附加样式,在所有主题样式之后加载。保存后立即生效,随主题升级保留。', 'kratos'),
|
|
|
|
|
|
'id' => 'g_custom_css',
|
|
|
|
|
|
'std' => yang_default_custom_css(),
|
|
|
|
|
|
'type' => 'code',
|
|
|
|
|
|
'settings' => array('rows' => 14),
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
$options[] = array(
|
|
|
|
|
|
'name' => __('自定义 JS', 'kratos'),
|
|
|
|
|
|
'desc' => __('附加脚本,在页面底部加载,不需要写 <script> 标签。', 'kratos'),
|
|
|
|
|
|
'id' => 'g_custom_js',
|
|
|
|
|
|
'std' => '',
|
|
|
|
|
|
'type' => 'code',
|
|
|
|
|
|
'settings' => array('rows' => 14),
|
|
|
|
|
|
);
|
2022-01-07 11:15:42 +08:00
|
|
|
|
|
|
|
|
|
|
return $options;
|
|
|
|
|
|
}
|