1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-13 02:04:35 +02:00

Update to use versioned asset URLs in AdminThemeUikit Konkat default theme

This commit is contained in:
Ryan Cramer
2025-07-24 15:46:24 -04:00
parent 8b39c92b31
commit abab9bf4a8
4 changed files with 53 additions and 37 deletions

View File

@@ -1,5 +1,3 @@
@import url(./admin-custom.css);
/* END Set general color to work in light and dark */ /* END Set general color to work in light and dark */
.uk-section-primary:not(.uk-preserve-color),.uk-section-secondary:not(.uk-preserve-color),.uk-tile-primary:not(.uk-preserve-color),.uk-tile-secondary:not(.uk-preserve-color),.uk-card-primary.uk-card-body,.uk-card-primary>:not([class*='uk-card-media']),.uk-card-secondary.uk-card-body,.uk-card-secondary>:not([class*='uk-card-media']),.uk-overlay-primary { .uk-section-primary:not(.uk-preserve-color),.uk-section-secondary:not(.uk-preserve-color),.uk-tile-primary:not(.uk-preserve-color),.uk-tile-secondary:not(.uk-preserve-color),.uk-card-primary.uk-card-body,.uk-card-primary>:not([class*='uk-card-media']),.uk-card-secondary.uk-card-body,.uk-card-secondary>:not([class*='uk-card-media']),.uk-overlay-primary {

View File

@@ -7,11 +7,9 @@
/** @var Page $page */ /** @var Page $page */
/** @var User $user */ /** @var User $user */
$themeInfo = $adminTheme->getThemeInfo();
$toggles = $adminTheme->defaultToggles; $toggles = $adminTheme->defaultToggles;
$settings = $config->AdminThemeUikit; $settings = $config->AdminThemeUikit;
$themeUrl = $config->urls('AdminThemeUikit') . 'themes/default/'; $themeUrl = $config->urls('AdminThemeUikit') . 'themes/default/';
$cssToggles = [ 'useBoldItemHeaders', 'usePageListButtons', 'useInputFocus' ];
$useDarkModeSwitcher = $useDarkModeSwitcher =
$user->isLoggedin() $user->isLoggedin()
@@ -19,42 +17,47 @@ $useDarkModeSwitcher =
&& empty($settings['noDarkMode']) && empty($settings['noDarkMode'])
&& $user->hasPermission('page-edit'); && $user->hasPermission('page-edit');
foreach($cssToggles as $name) {
if(!in_array($name, $toggles)) continue;
$config->styles->add($themeUrl . "toggles/$name.css");
}
if($modules->isInstalled('InputfieldTable')) {
$config->styles->add($themeUrl . "toggles/InputfieldTable.css");
}
/** /**
* Update TinyMCE to use our custom skin and content_css * Update TinyMCE to use our custom skin and content_css
* *
*/ */
$adminTheme->addHookAfter('InputfieldTinyMCESettings::prepareSettingsForOutput', function(HookEvent $e) use($themeInfo) { $adminTheme->addHookAfter('InputfieldTinyMCESettings::prepareSettingsForOutput', function(HookEvent $e) use($themeUrl) {
$o = $e->object; /** @var InputfieldTinyMCESettings $o */
$f = $o->inputfield;
$settings = $e->return;
$rootUrl = $e->wire()->config->urls->root;
$url = $rootUrl . ltrim($themeInfo['url'], '/');
if($rootUrl != '/' && strpos($url, $rootUrl) === 0) $url = substr($url, strlen($rootUrl)-1);
if(empty($settings['content_css']) || strpos($settings['content_css'], 'document.css') === false) { $f = $e->object->__get('inputfield'); /** @var InputfieldTinyMCE $f */
$a = [
'content_css' => $url . 'content.css', static $contentCss = '';
'content_css_url' => $url . 'content.css',
'skin_url' => rtrim($url, '/'), $settings = $e->return;
'skin' => 'custom', $css = isset($settings['content_css']) ? $settings['content_css'] : $f->content_css;
'toolbar_sticky_offset' => 55, // applies to inline mode only
]; if(strpos($css, 'document')) {
$settings = array_merge($settings, $a); // keep
$f->setArray($a); return;
} else if(strpos($css, '/content_css/wire.css') || empty($css)) {
// replace
} else { } else {
// leave document mode as-is // leave custom
return;
}
if(empty($contentCss)) {
$contentCss = $e->wire()->config->versionUrl($themeUrl . 'content.css');
} }
$a = [
'content_css' => $contentCss,
'content_css_url' => $contentCss,
'toolbar_sticky_offset' => 55, // applies to inline mode only
];
if($f->skin === 'oxide' || !$f->skin) {
$a['skin_url'] = rtrim($themeUrl, '/');
$a['skin'] = 'custom';
}
$settings = array_merge($settings, $a);
$e->return = $settings; $e->return = $settings;
}); });
/** /**
@@ -124,11 +127,15 @@ if($useDarkModeSwitcher) {
if($page->process == 'ProcessModule' && $input->get('name') === 'InputfieldTinyMCE') { if($page->process == 'ProcessModule' && $input->get('name') === 'InputfieldTinyMCE') {
$page->wire()->addHookAfter('InputfieldTinyMCE::getModuleConfigInputfields', function(HookEvent $e) { $page->wire()->addHookAfter('InputfieldTinyMCE::getModuleConfigInputfields', function(HookEvent $e) {
$inputfields = $e->arguments(0); /** @var InputfieldWrapper $inputfields */ $inputfields = $e->arguments(0); /** @var InputfieldWrapper $inputfields */
$a = [ 'skin', 'content_css', 'content_css_url' ]; $a = [
'skin' => 'oxide',
'content_css' => 'wire',
'content_css_url' => ''
];
$note = __('PLEASE NOTE: this setting is currently overridden by AdminThemeUikit “default” theme.', __FILE__); $note = __('PLEASE NOTE: this setting is currently overridden by AdminThemeUikit “default” theme.', __FILE__);
foreach($a as $name) { foreach($a as $name => $default) {
$f = $inputfields->get($name); $f = $inputfields->get($name);
if($f && $f->val() != 'document') $f->notes = $note; if($f && !$f->val() || $f->val() === $default) $f->notes = $note;
} }
}); });
} }

View File

@@ -4,12 +4,15 @@
/** @var AdminThemeUikit $adminTheme */ /** @var AdminThemeUikit $adminTheme */
/** @var User $user */ /** @var User $user */
/** @var WireInput $input */ /** @var WireInput $input */
/** @var Modules $modules */
/** @var Page $page */ /** @var Page $page */
$themeInfo = $adminTheme->getThemeInfo(); $themeInfo = $adminTheme->getThemeInfo();
$themeUrl = $config->urls('AdminThemeUikit') . 'themes/default/';
$customCss = $adminTheme->get('defaultCustomCss'); $customCss = $adminTheme->get('defaultCustomCss');
$customCssFile = $adminTheme->get('defaultCustomCssFile'); $customCssFile = $adminTheme->get('defaultCustomCssFile');
$toggles = $adminTheme->defaultToggles; $toggles = $adminTheme->defaultToggles;
$cssToggles = [ 'useBoldItemHeaders', 'usePageListButtons', 'useInputFocus' ];
$settings = $config->AdminThemeUikit; $settings = $config->AdminThemeUikit;
$mainColors = [ $mainColors = [
@@ -20,9 +23,18 @@ $mainColors = [
'customDark' => $adminTheme->get('defaultMainColorCustomDark'), 'customDark' => $adminTheme->get('defaultMainColorCustomDark'),
]; ];
$config->styles->append($themeInfo['url'] . 'admin-custom.css');
$config->styles->append($themeInfo['url'] . 'admin.css'); $config->styles->append($themeInfo['url'] . 'admin.css');
$config->scripts->append($themeInfo['url'] . 'admin.js'); $config->scripts->append($themeInfo['url'] . 'admin.js');
foreach($cssToggles as $name) {
if(!in_array($name, $toggles)) continue;
$config->styles->add($themeUrl . "toggles/$name.css");
}
if($modules->isInstalled('InputfieldTable')) {
$config->styles->add($themeUrl . "toggles/InputfieldTable.css");
}
if($customCssFile) { if($customCssFile) {
$config->styles->append($config->urls->root . ltrim($customCssFile, '/')); $config->styles->append($config->urls->root . ltrim($customCssFile, '/'));
} }

View File

@@ -18,8 +18,7 @@ select.uk-select:focus {
} }
.InputfieldTinyMCE .mce-edit-focus, .InputfieldTinyMCE .mce-edit-focus,
.InputfieldTinyMCEFocused .tox-edit-area__iframe { .InputfieldTinyMCEFocused .tox-edit-area__iframe {
--inputs-background: var(--pw-blocks-background); --pw-inputs-background: var(--pw-blocks-background);
background: var(--pw-blocks-background);
} }
.InputfieldTinyMCEFocused .tox .tox-toolbar, .InputfieldTinyMCEFocused .tox .tox-toolbar,
@@ -27,7 +26,7 @@ select.uk-select:focus {
.InputfieldTinyMCEFocused .tox .tox-statusbar, .InputfieldTinyMCEFocused .tox .tox-statusbar,
.InputfieldTinyMCEFocused .tox .tox-toolbar__overflow, .InputfieldTinyMCEFocused .tox .tox-toolbar__overflow,
.InputfieldTinyMCEFocused .tox .tox-toolbar__primary { .InputfieldTinyMCEFocused .tox .tox-toolbar__primary {
--blocks-background: var(--pw-inputs-background); --pw-blocks-background: var(--pw-inputs-background);
} }
.pw .InputfieldTinyMCEFocused .tox .tox-menubar .tox-mbtn:hover, .pw .InputfieldTinyMCEFocused .tox .tox-menubar .tox-mbtn:hover,