feat(extensions): 新增系统工具页面与前台投稿分片上传

This commit is contained in:
2026-10-06 11:09:05 +08:00
parent 613b8a57a3
commit b75bf197a3
25 changed files with 1982 additions and 58 deletions
+49
View File
@@ -189,6 +189,55 @@ class ExtensionRuntime {
];
}
/** 获取系统工具设置(WordPress 优化、上传优化、编辑器与显示)。 */
public static function get_system_tools_settings(): array {
$settings = Settings::get_all();
$switch = static function (string $key, bool $default) use ($settings): bool {
return !isset($settings[$key]) ? $default : !empty($settings[$key]);
};
$rename_type = sanitize_key((string) ($settings['newfilename_type'] ?? 'time'));
if (!in_array($rename_type, ['random', 'time'], true)) {
$rename_type = 'time';
}
// Only fill defaults when the key was never saved — empty array means "none".
$toolbar_scenes = ['pc_s', 'm_s'];
if (!array_key_exists('mce_float_toolbar', $settings)) {
$float_toolbar = $toolbar_scenes;
} else {
$float_toolbar = [];
foreach ((array) ($settings['mce_float_toolbar'] ?? []) as $scene) {
$scene = sanitize_key((string) $scene);
if (in_array($scene, $toolbar_scenes, true) && !in_array($scene, $float_toolbar, true)) {
$float_toolbar[] = $scene;
}
}
}
return [
'hide_admin_bar' => $switch('hide_admin_bar', true),
'remove_emoji' => $switch('remove_emoji', true),
'remove_open_sans' => $switch('remove_open_sans', true),
'remove_more_wp_head' => $switch('remove_more_wp_head', true),
'remove_dashboard_widgets' => $switch('remove_dashboard_widgets', true),
'display_wp_update' => $switch('display_wp_update', true),
'split_upload_s' => $switch('split_upload_s', true),
'split_minimum_size' => max(4, min(100, (int) ($settings['split_minimum_size'] ?? 20))),
'newfilename' => $switch('newfilename', false),
'newfilename_type' => $rename_type,
'disabled_large_thumbnail' => $switch('disabled_large_thumbnail', true),
'admin_user_del_fields' => $switch('admin_user_del_fields', true),
'admin_frontend_set' => $switch('admin_frontend_set', true),
'close_gutenberg' => $switch('close_gutenberg', false),
'disabled_autoembed' => $switch('disabled_autoembed', true),
'mce_float_toolbar' => $float_toolbar,
'time_ago_s' => $switch('time_ago_s', true),
'time_format' => (string) ($settings['time_format'] ?? 'n月j日 H:i'),
];
}
/** 获取短信接口设置。 */
public static function get_sms_settings(): array {
$settings = Settings::get_all();