diff --git a/src/Backend.php b/src/Backend.php index e5c7ab4..3c5592f 100644 --- a/src/Backend.php +++ b/src/Backend.php @@ -15,7 +15,6 @@ declare(strict_types=1); namespace Dotclear\Plugin\moreCSS; use dcAdmin; -use dcAuth; use dcCore; use dcFavorites; use dcNsProcess; @@ -32,7 +31,7 @@ class Backend extends dcNsProcess public static function process(): bool { - if (!static::$init) { + if (!static::$init || is_null(dcCore::app()->auth) || is_null(dcCore::app()->blog) || is_null(dcCore::app()->adminurl)) { return false; } @@ -40,17 +39,20 @@ class Backend extends dcNsProcess My::name(), dcCore::app()->adminurl->get('admin.plugin.' . My::id()), [dcPage::getPF(My::id() . '/icon.png')], - preg_match('/' . preg_quote(dcCore::app()->adminurl->get('admin.plugin.' . My::id())) . '(&.*)?$/', $_SERVER['REQUEST_URI']), - dcCore::app()->auth->check(dcCore::app()->auth->makePermissions([dcAuth::PERMISSION_CONTENT_ADMIN]), dcCore::app()->blog->id) + preg_match('/' . preg_quote((string) dcCore::app()->adminurl->get('admin.plugin.' . My::id())) . '(&.*)?$/', $_SERVER['REQUEST_URI']), + dcCore::app()->auth->check(dcCore::app()->auth->makePermissions([dcCore::app()->auth::PERMISSION_CONTENT_ADMIN]), dcCore::app()->blog->id) ); dcCore::app()->addBehavior('adminDashboardFavoritesV2', function (dcFavorites $favs): void { + if (is_null(dcCore::app()->auth) || is_null(dcCore::app()->adminurl)) { + return; + } $favs->register(My::id(), [ 'title' => My::name(), 'url' => dcCore::app()->adminurl->get('admin.plugin.' . My::id()), 'small-icon' => [dcPage::getPF(My::id() . '/icon.png')], 'large-icon' => [dcPage::getPF(My::id() . '/icon-big.png')], - 'permissions' => dcCore::app()->auth->makePermissions([dcAuth::PERMISSION_CONTENT_ADMIN]), + 'permissions' => dcCore::app()->auth->makePermissions([dcCore::app()->auth::PERMISSION_CONTENT_ADMIN]), ]); }); diff --git a/src/Frontend.php b/src/Frontend.php index 42c25fd..26f8724 100644 --- a/src/Frontend.php +++ b/src/Frontend.php @@ -29,11 +29,14 @@ class Frontend extends dcNsProcess public static function process(): bool { - if (!static::$init || !dcCore::app()->blog->settings->get('themes')->get('morecss_active')) { + if (!static::$init || is_null(dcCore::app()->blog) || !dcCore::app()->blog->settings->get('themes')->get('morecss_active')) { return false; } dcCore::app()->addBehavior('publicHeadContent', function (): void { + if (is_null(dcCore::app()->blog)) { + return; + } $css = (string) base64_decode((string) dcCore::app()->blog->settings->get('themes')->get('morecss_min')); if (!empty($css)) { echo dcUtils::cssLoad( diff --git a/src/Install.php b/src/Install.php index f7327a1..3918d4f 100644 --- a/src/Install.php +++ b/src/Install.php @@ -30,7 +30,7 @@ class Install extends dcNsProcess public static function process(): bool { - if (!static::$init) { + if (!static::$init || is_null(dcCore::app()->blog)) { return false; } diff --git a/src/Manage.php b/src/Manage.php index 0e14179..45423c9 100644 --- a/src/Manage.php +++ b/src/Manage.php @@ -14,7 +14,6 @@ declare(strict_types=1); namespace Dotclear\Plugin\moreCSS; -use dcAuth; use dcCore; use dcNsProcess; use dcPage; @@ -35,8 +34,9 @@ class Manage extends dcNsProcess public static function init(): bool { static::$init = defined('DC_CONTEXT_ADMIN') + && !is_null(dcCore::app()->auth) && !is_null(dcCore::app()->blog) && dcCore::app()->auth->check(dcCore::app()->auth->makePermissions([ - dcAuth::PERMISSION_CONTENT_ADMIN, + dcCore::app()->auth::PERMISSION_CONTENT_ADMIN, ]), dcCore::app()->blog->id); return static::$init; @@ -44,7 +44,7 @@ class Manage extends dcNsProcess public static function process(): bool { - if (!static::$init) { + if (!static::$init || is_null(dcCore::app()->blog) || is_null(dcCore::app()->adminurl)) { return false; } @@ -58,15 +58,15 @@ class Manage extends dcNsProcess $s->put('morecss_active', !empty($_POST['morecss_active'])); // Minify it - $css_min = preg_replace('` {2,}`', ' ', $_POST['morecss']); - $css_min = preg_replace('/(\/\*[\s\S]*?\*\/)/', '', $css_min); - $css_min = preg_replace('/(\t|\r|\n)/', '', $css_min); + $css_min = (string) preg_replace('` {2,}`', ' ', $_POST['morecss']); + $css_min = (string) preg_replace('/(\/\*[\s\S]*?\*\/)/', '', $css_min); + $css_min = (string) preg_replace('/(\t|\r|\n)/', '', $css_min); $css_min = str_replace([' { ', ' {', '{ '], '{', $css_min); $css_min = str_replace([' } ', ' }', '} '], '}', $css_min); $css_min = str_replace([' : ', ' :', ': '], ':', $css_min); $css_min = str_replace([' ; ', ' ;', '; '], ';', $css_min); $css_min = str_replace([' , ', ' ,', ', '], ',', $css_min); - $s->put('morecss_min', is_string($css_min) ? base64_encode($css_min) : ''); + $s->put('morecss_min', base64_encode($css_min)); dcPage::addSuccessNotice( __('Configuration successfully updated.') @@ -84,7 +84,7 @@ class Manage extends dcNsProcess public static function render(): void { - if (!static::$init) { + if (!static::$init || is_null(dcCore::app()->auth) || is_null(dcCore::app()->auth->user_prefs) || is_null(dcCore::app()->blog)) { return; } @@ -113,7 +113,7 @@ class Manage extends dcNsProcess (new Textarea('morecss', Html::escapeHTML((string) base64_decode((string) $s->get('morecss')))))->class('maximal')->cols(72)->rows(25), ]), (new Para())->items([ - (new Checkbox('morecss_active'))->value(1), + (new Checkbox('morecss_active', (bool) $s->get('morecss_active')))->value(1), (new Label(__('Enable additionnal CSS for the active theme'), Label::OUTSIDE_LABEL_AFTER))->for('morecss_active')->class('classic'), ]), (new Para())->items([ diff --git a/src/Prepend.php b/src/Prepend.php index d3b8bee..c2ebcf7 100644 --- a/src/Prepend.php +++ b/src/Prepend.php @@ -37,6 +37,9 @@ class Prepend extends dcNsProcess 'morecss.css', '^morecss\.css(.*?)$', function (string $args): void { + if (is_null(dcCore::app()->blog)) { + return; + } header('Content-Type: text/css; charset=UTF-8'); echo "/* CSS for plugin moreCss */ \n";