cosmetic nullsafe fix

master
Jean-Christian Paul Denis 2023-04-20 20:41:50 +02:00
parent 8813763d73
commit 1e7544e585
Signed by: JcDenis
GPG Key ID: 1B5B8C5B90B6C951
4 changed files with 50 additions and 20 deletions

View File

@ -26,6 +26,7 @@ class Backend extends dcNsProcess
{
static::$init = defined('DC_CONTEXT_ADMIN')
&& My::phpCompliant()
&& !is_null(dcCore::app()->auth) && !is_null(dcCore::app()->blog) // nullsafe PHP < 8.0
&& dcCore::app()->auth->check(dcCore::app()->auth->makePermissions([
dcCore::app()->auth::PERMISSION_CONTENT_ADMIN,
]), dcCore::app()->blog->id);
@ -39,6 +40,11 @@ class Backend extends dcNsProcess
return false;
}
// nullsafe PHP < 8.0
if (is_null(dcCore::app()->auth) || is_null(dcCore::app()->blog) || is_null(dcCore::app()->adminurl)) {
return false;
}
dcCore::app()->menu[dcAdmin::MENU_BLOG]->addItem(
My::name(),
dcCore::app()->adminurl->get('admin.plugin.' . My::id()),
@ -54,6 +60,11 @@ class Backend extends dcNsProcess
dcCore::app()->addBehaviors([
'adminDashboardFavoritesV2' => function (dcFavorites $favs): void {
// nullsafe PHP < 8.0
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()),

View File

@ -43,8 +43,7 @@ class Frontend extends dcNsProcess
# Redirect if needed
if (isset($_GET['theme'])) {
$p = '/(\?|&)theme(=.*)?$/';
Http::redirect(preg_replace($p, '', Http::getSelfURI()));
Http::redirect((string) preg_replace('/(\?|&)theme(=.*)?$/', '', Http::getSelfURI()));
}
# Switch theme
@ -63,6 +62,11 @@ class Frontend extends dcNsProcess
protected static function cookieSuffix(): string
{
// nullsafe PHP < 8.0
if (is_null(dcCore::app()->blog)) {
return '';
}
return base_convert(dcCore::app()->blog->uid, 16, 36);
}
@ -75,6 +79,11 @@ class Frontend extends dcNsProcess
public static function switchTheme(string $theme): void
{
// nullsafe PHP < 8.0
if (is_null(dcCore::app()->blog)) {
return;
}
if (dcCore::app()->blog->settings->get(My::id())->get('mt_exclude')) {
if (in_array($theme, explode('/', dcCore::app()->blog->settings->get(My::id())->get('mt_exclude')))) {
return;

View File

@ -38,6 +38,7 @@ class Manage extends dcNsProcess
{
static::$init = defined('DC_CONTEXT_ADMIN')
&& My::phpCompliant()
&& !is_null(dcCore::app()->auth) && !is_null(dcCore::app()->blog) // nullsafe PHP < 8.0
&& dcCore::app()->auth->check(dcCore::app()->auth->makePermissions([
dcCore::app()->auth::PERMISSION_CONTENT_ADMIN,
]), dcCore::app()->blog->id);
@ -51,6 +52,11 @@ class Manage extends dcNsProcess
return false;
}
// nullsafe PHP < 8.0
if (is_null(dcCore::app()->auth) || is_null(dcCore::app()->blog) || is_null(dcCore::app()->adminurl)) {
return false;
}
try {
$s = dcCore::app()->blog->settings->get(My::id());
@ -108,6 +114,11 @@ class Manage extends dcNsProcess
return;
}
// nullsafe PHP < 8.0
if (is_null(dcCore::app()->blog) || is_null(dcCore::app()->adminurl)) {
return;
}
$models = new ArrayObject(My::distributedModels());
dcCore::app()->callBehavior('arlequinAddModels', $models);

View File

@ -45,9 +45,15 @@ class Widgets
return '';
}
$model = json_decode((string) dcCore::app()->blog->settings->get(My::id())->get('model'), true);
$names = self::getNames();
if (!is_array($model) || empty($names)) {
// nullsafe PHP < 8.0
if (is_null(dcCore::app()->blog)) {
return '';
}
$model = json_decode((string) dcCore::app()->blog->settings->get(My::id())->get('model'), true);
$exclude = explode(';', (string) dcCore::app()->blog->settings->get(My::id())->get('exclude'));
$modules = array_diff_key(dcCore::app()->themes->getDefines(['state' => dcModuleDefine::STATE_ENABLED], true), array_flip($exclude));
if (!is_array($model) || empty($modules)) {
return '';
}
@ -68,8 +74,8 @@ class Widgets
}
$res = '';
foreach ($names as $k => $v) {
if ($k == dcCore::app()->public->theme) {
foreach ($modules as $id => $module) {
if ($id == dcCore::app()->public->theme) {
$format = $model['a_html'];
} else {
$format = $model['e_html'];
@ -78,21 +84,21 @@ class Widgets
if ($replace) {
$e_url = preg_replace(
'/(\\?|&)(theme\\=)([^&]*)/',
'$1${2}' . addcslashes($k, '$\\'),
$e_url
'$1${2}' . addcslashes($id, '$\\'),
(string) $e_url
);
$val = '';
} else {
$val = Html::escapeHTML(rawurlencode($k));
$val = Html::escapeHTML(rawurlencode($id));
}
$res .= sprintf(
$format,
$e_url,
$ext,
$val,
Html::escapeHTML($v['name']),
Html::escapeHTML($v['desc']),
Html::escapeHTML($k)
Html::escapeHTML($module['name']),
Html::escapeHTML($module['desc']),
Html::escapeHTML($id)
);
}
@ -108,11 +114,4 @@ class Widgets
($w->title ? $w->renderTitle(Html::escapeHTML($w->title)) : '') . sprintf($model['s_html'], $s_url, $res)
);
}
public static function getNames(): array
{
$exclude = explode(';', (string) dcCore::app()->blog->settings->get(My::id())->get('exclude'));
return array_diff_key(dcCore::app()->themes->getDefines(['state' => dcModuleDefine::STATE_ENABLED], true), array_flip($exclude));
}
}