mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 11:44:10 +09:00
Separate editor and uploader related PHP and JS code into their own native files
This commit is contained in:
parent
d127e334b0
commit
579201fe7c
5 changed files with 308 additions and 245 deletions
83
modules/editor/skins/ckeditor/config.blade.php
Normal file
83
modules/editor/skins/ckeditor/config.blade.php
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
@php
|
||||
|
||||
// Basic configuration
|
||||
$ckconfig = new \stdClass;
|
||||
$ckconfig->skin = $colorset;
|
||||
$ckconfig->auto_dark_mode = $editor_auto_dark_mode ?? false;
|
||||
$ckconfig->legacy_html_mode = $html_mode ?? false;
|
||||
$ckconfig->language = str_replace('jp', 'ja', Context::getLangType());
|
||||
$ckconfig->height = $editor_height ?? 100;
|
||||
$ckconfig->toolbar = $editor_toolbar ?? 'default';
|
||||
$ckconfig->hide_toolbar = $editor_toolbar_hide ?? false;
|
||||
$ckconfig->focus = $editor_focus ?? false;
|
||||
$ckconfig->ios_patch = (bool)preg_match('/i(Phone|Pad|Pod)/', $_SERVER['HTTP_USER_AGENT'] ?? '');
|
||||
|
||||
// Plugin configuration
|
||||
$ckconfig->add_plugins = $editor_additional_plugins ?? [];
|
||||
$ckconfig->remove_plugins = $editor_remove_plugins ?? [];
|
||||
$ckconfig->add_plugins[] = 'rx_upload';
|
||||
if ($ckconfig->ios_patch) {
|
||||
$ckconfig->add_plugins[] = 'divarea';
|
||||
$ckconfig->add_plugins[] = 'ios_enterkey';
|
||||
$ckconfig->remove_plugins[] = 'enterkey';
|
||||
}
|
||||
|
||||
// Font configuration
|
||||
$ckconfig->default_font = $content_font ?: 'none';
|
||||
$ckconfig->default_font_size = intval(preg_replace('/\D/', '', $content_font_size ?? '13'), 10);
|
||||
$ckconfig->fonts = array_values(array_map('strval', $lang->edit->fontlist ?: []));
|
||||
$ckconfig->font_sizes = [8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 24, 28, 32, 36, 40, 48];
|
||||
if (!in_array($ckconfig->default_font, $ckconfig->fonts) && $ckconfig->default_font !== 'none') {
|
||||
array_unshift($ckconfig->fonts, $ckconfig->default_font);
|
||||
}
|
||||
if (!in_array($ckconfig->default_font_size, $ckconfig->font_sizes)) {
|
||||
$ckconfig->font_sizes[] = $ckconfig->default_font_size;
|
||||
sort($ckconfig->font_sizes);
|
||||
}
|
||||
foreach ($ckconfig->fonts as &$_font_name) {
|
||||
$_font_name = trim(array_first(explode(',', $_font_name, 2))) . '/' . $_font_name;
|
||||
}
|
||||
foreach ($ckconfig->font_sizes as &$_font_size) {
|
||||
$_font_size = $_font_size . '/' . $_font_size . 'px';
|
||||
}
|
||||
|
||||
// CSS configuration
|
||||
$ckconfig->css_files = array_values($editor_additional_css ?: []);
|
||||
$ckconfig->css_content = '';
|
||||
$ckconfig->css_vars = (object)[
|
||||
'colorset' => $colorset,
|
||||
'content_font' => $content_font ?: 'none',
|
||||
'content_font_size' => $content_font_size ?: '13',
|
||||
'content_line_height' => $content_line_height ?: 'none',
|
||||
'content_word_break' => $content_word_break ?: 'none',
|
||||
'content_paragraph_spacing' => $content_paragraph_spacing ?: 'none',
|
||||
];
|
||||
|
||||
// Legacy editor component configuration
|
||||
$ckconfig->enable_component = $enable_component ?? false;
|
||||
$ckconfig->enable_default_component = $enable_default_component ?? false;
|
||||
$ckconfig->components = [];
|
||||
foreach ($component_list ?? [] as $component_name => $component) {
|
||||
$ckconfig->components[$component_name] = escape($component->title, false);
|
||||
}
|
||||
|
||||
// Cache-busting timestamp
|
||||
$ckconfig->custom_config_exists = file_exists(RX_BASEDIR . 'common/js/plugins/ckeditor/ckeditor/config.js');
|
||||
$_filemtime1 = filemtime(RX_BASEDIR . 'common/js/plugins/ckeditor/ckeditor/ckeditor.js');
|
||||
$_filemtime2 = $ckconfig->custom_config_exists ? filemtime(RX_BASEDIR . 'common/js/plugins/ckeditor/ckeditor/config.js') : 0;
|
||||
$ckconfig->timestamp = max($_filemtime1, $_filemtime2, $ckconfig_timestamp ?? 0);
|
||||
|
||||
// Set initial min-height to prevent layout shift when editor is loaded.
|
||||
if ($editor_toolbar_hide) {
|
||||
$ckconfig->initial_height = $editor_height + 55;
|
||||
} elseif ($editor_toolbar === 'simple') {
|
||||
$ckconfig->initial_height = $editor_height + 71;
|
||||
} else {
|
||||
$ckconfig->initial_height = $editor_height + 137;
|
||||
}
|
||||
|
||||
if (str_contains($_SERVER['HTTP_USER_AGENT'] ?? '', 'Firefox/')) {
|
||||
$ckconfig->initial_height += 2;
|
||||
}
|
||||
|
||||
@endphp
|
||||
Loading…
Add table
Add a link
Reference in a new issue