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

View File

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

View File

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

View File

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