code review phpstan level 8

master
Jean-Christian Paul Denis 2023-04-15 21:26:40 +02:00
parent 6087c628bf
commit 305d4d8bbd
Signed by: JcDenis
GPG Key ID: 1B5B8C5B90B6C951
8 changed files with 30 additions and 26 deletions

View File

@ -24,10 +24,10 @@ $this->registerModule(
'permissions' => null, 'permissions' => null,
'type' => 'plugin', 'type' => 'plugin',
'settings' => [ 'settings' => [
'self'=> false, 'self' => false,
], ],
'support' => 'https://github.com/JcDenis/' . basename(__DIR__), 'support' => 'https://github.com/JcDenis/' . basename(__DIR__),
'details' => 'https://plugins.dotaddict.org/dc2/details/' . basename(__DIR__), 'details' => 'https://plugins.dotaddict.org/dc2/details/' . basename(__DIR__),
'repository' => 'https://raw.githubusercontent.com/JcDenis/' . basename(__DIR__) . '/master/dcstore.xml', 'repository' => 'https://raw.githubusercontent.com/JcDenis/' . basename(__DIR__) . '/master/dcstore.xml',
] ]
); );

View File

@ -43,12 +43,12 @@ class Backend extends dcNsProcess
return empty(Uninstaller::instance()->loadModules([$define])->getUserActions($define->getId())) ? '' : return empty(Uninstaller::instance()->loadModules([$define])->getUserActions($define->getId())) ? '' :
sprintf( sprintf(
' <a href="%s" class="button delete">' . __('Uninstall') . '</a>', ' <a href="%s" class="button delete">' . __('Uninstall') . '</a>',
dcCore::app()->adminurl->get('admin.plugin.' . My::id(), ['type' => $define->get('type'), 'id' => $define->getId()]) dcCore::app()->adminurl?->get('admin.plugin.' . My::id(), ['type' => $define->get('type'), 'id' => $define->getId()])
); );
}, },
// perform direct action on module deletion // perform direct action on module deletion
'pluginBeforeDeleteV2' => function (dcModuleDefine $define): void { 'pluginBeforeDeleteV2' => function (dcModuleDefine $define): void {
if (dcCore::app()->blog->settings->get('system')->get('no_uninstall_direct')) { if (dcCore::app()->blog?->settings->get('system')->get('no_uninstall_direct')) {
return; return;
} }
@ -71,9 +71,9 @@ class Backend extends dcNsProcess
array_unshift($done, __('Plugin has been successfully uninstalled.')); array_unshift($done, __('Plugin has been successfully uninstalled.'));
dcPage::addSuccessNotice(implode('<br />', $done)); dcPage::addSuccessNotice(implode('<br />', $done));
if ($define->get('type') == 'theme') { if ($define->get('type') == 'theme') {
dcCore::app()->adminurl->redirect('blog.themes', [], '#themes'); dcCore::app()->adminurl?->redirect('admin.blog.theme', [], '#themes');
} else { } else {
dcCore::app()->adminurl->redirect('admin.plugins', [], '#plugins'); dcCore::app()->adminurl?->redirect('admin.plugins', [], '#plugins');
} }
} }
} catch (Exception $e) { } catch (Exception $e) {

View File

@ -113,7 +113,7 @@ class Settings extends AbstractCleaner
if ($action == 'delete_local') { if ($action == 'delete_local') {
dcCore::app()->con->execute( dcCore::app()->con->execute(
'DELETE FROM ' . dcCore::app()->prefix . dcNamespace::NS_TABLE_NAME . ' ' . 'DELETE FROM ' . dcCore::app()->prefix . dcNamespace::NS_TABLE_NAME . ' ' .
"WHERE blog_id = '" . dcCore::app()->con->escapeStr((string) dcCore::app()->blog->id) . "' " . "WHERE blog_id = '" . dcCore::app()->con->escapeStr((string) dcCore::app()->blog?->id) . "' " .
"AND setting_ns = '" . dcCore::app()->con->escapeStr((string) $ns) . "' " "AND setting_ns = '" . dcCore::app()->con->escapeStr((string) $ns) . "' "
); );

View File

@ -53,7 +53,11 @@ class Themes extends AbstractCleaner
public function values(): array public function values(): array
{ {
$res = self::getDirs(dcCore::app()->blog->themes_path); if (($path = dcCore::app()->blog?->themes_path) === null) {
return [];
}
$res = self::getDirs($path);
sort($res); sort($res);
return $res; return $res;
@ -61,12 +65,12 @@ class Themes extends AbstractCleaner
public function execute(string $action, string $ns): bool public function execute(string $action, string $ns): bool
{ {
if ($action == 'delete') { if ($action != 'delete' || ($path = dcCore::app()->blog?->themes_path) === null) {
self::delDir(dcCore::app()->blog->themes_path, $ns, true); return false;
return true;
} }
return false; self::delDir($path, $ns, true);
return true;
} }
} }

View File

@ -36,7 +36,7 @@ class Install extends dcNsProcess
} }
try { try {
dcCore::app()->blog->settings->get('system')->put( dcCore::app()->blog?->settings->get('system')->put(
'no_direct_uninstall', 'no_direct_uninstall',
false, false,
'boolean', 'boolean',

View File

@ -48,28 +48,28 @@ class Manage extends dcNsProcess
} }
$type = ($_REQUEST['type'] ?? 'theme') == 'theme' ? 'themes' : 'plugins'; $type = ($_REQUEST['type'] ?? 'theme') == 'theme' ? 'themes' : 'plugins';
$redir = $type == 'themes' ? ['blog.themes', [], '#themes'] : ['admin.plugins', [], '#plugins']; $redir = $type == 'themes' ? ['admin.blog.theme', [], '#themes'] : ['admin.plugins', [], '#plugins'];
if (empty($_REQUEST['id'])) { if (empty($_REQUEST['id'])) {
dcCore::app()->adminurl->redirect($redir[0], $redir[1], $redir[2]); dcCore::app()->adminurl?->redirect($redir[0], $redir[1], $redir[2]);
} }
if ($type == 'themes' && !is_a(dcCore::app()->themes, 'dcThemes')) { if ($type == 'themes' && !is_a(dcCore::app()->themes, 'dcThemes')) {
dcCore::app()->themes = new dcThemes(); dcCore::app()->themes = new dcThemes();
dcCore::app()->themes->loadModules(dcCore::app()->blog->themes_path, null); dcCore::app()->themes->loadModules((string) dcCore::app()->blog?->themes_path, null);
} }
$define = dcCore::app()->{$type}->getDefine($_REQUEST['id']); $define = dcCore::app()->{$type}->getDefine($_REQUEST['id']);
if (!$define->isDefined()) { if (!$define->isDefined()) {
dcCore::app()->error->add(__('Unknown module id to uninstall')); dcCore::app()->error->add(__('Unknown module id to uninstall'));
dcCore::app()->adminurl->redirect($redir[0], $redir[1], $redir[2]); dcCore::app()->adminurl?->redirect($redir[0], $redir[1], $redir[2]);
} }
$uninstaller = Uninstaller::instance()->loadModules([$define]); $uninstaller = Uninstaller::instance()->loadModules([$define]);
$actions = $uninstaller->getUserActions($define->getId()); $actions = $uninstaller->getUserActions($define->getId());
if (empty($actions)) { if (empty($actions)) {
dcCore::app()->error->add(__('There are no uninstall actions for this module')); dcCore::app()->error->add(__('There are no uninstall actions for this module'));
dcCore::app()->adminurl->redirect($redir[0], $redir[1], $redir[2]); dcCore::app()->adminurl?->redirect($redir[0], $redir[1], $redir[2]);
} }
if (empty($_POST)) { if (empty($_POST)) {
@ -95,7 +95,7 @@ class Manage extends dcNsProcess
} else { } else {
dcPage::addWarningNotice(__('No uninstall action done')); dcPage::addWarningNotice(__('No uninstall action done'));
} }
dcCore::app()->adminurl->redirect($redir[0], $redir[1], $redir[2]); dcCore::app()->adminurl?->redirect($redir[0], $redir[1], $redir[2]);
} catch (Exception $e) { } catch (Exception $e) {
dcCore::app()->error->add($e->getMessage()); dcCore::app()->error->add($e->getMessage());
} }
@ -152,14 +152,14 @@ class Manage extends dcNsProcess
(new Hidden(['type'], $type)), (new Hidden(['type'], $type)),
(new Hidden(['id'], $define->getId())), (new Hidden(['id'], $define->getId())),
(new Submit(['do']))->value(__('Perform selected actions'))->class('delete'), (new Submit(['do']))->value(__('Perform selected actions'))->class('delete'),
(new Text('', ' <a class="button" href="' . dcCore::app()->adminurl->get($redir[0], $redir[1]) . $redir[2] . '">' . __('Cancel') . '</a>')), (new Text('', ' <a class="button" href="' . dcCore::app()->adminurl?->get($redir[0], $redir[1]) . $redir[2] . '">' . __('Cancel') . '</a>')),
]); ]);
// display form // display form
echo (new Div())->items([ echo (new Div())->items([
(new Text('h3', sprintf(($type == 'themes' ? __('Uninstall theme "%s"') : __('Uninstall plugin "%s"')), __($define->get('name'))))), (new Text('h3', sprintf(($type == 'themes' ? __('Uninstall theme "%s"') : __('Uninstall plugin "%s"')), __($define->get('name'))))),
(new Text('p', sprintf(__('The module "%s %s" offers advanced unsintall process:'), $define->getId(), $define->get('version')))), (new Text('p', sprintf(__('The module "%s %s" offers advanced unsintall process:'), $define->getId(), $define->get('version')))),
(new Form('uninstall-form'))->method('post')->action(dcCore::app()->adminurl->get('admin.plugin.' . My::id()))->fields($fields), (new Form('uninstall-form'))->method('post')->action(dcCore::app()->adminurl?->get('admin.plugin.' . My::id()))->fields($fields),
])->render(); ])->render();
dcPage::closeModule(); dcPage::closeModule();

View File

@ -23,7 +23,7 @@ class Prepend extends dcNsProcess
{ {
static::$init = defined('DC_CONTEXT_ADMIN') static::$init = defined('DC_CONTEXT_ADMIN')
&& My::phpCompliant() && My::phpCompliant()
&& dcCore::app()->auth->isSuperAdmin(); && dcCore::app()->auth?->isSuperAdmin();
return static::$init; return static::$init;
} }

View File

@ -224,7 +224,7 @@ class Uninstaller
{ {
$output = ''; $output = '';
if ($this->hasRender($id)) { if ($this->hasRender($id)) {
$class = $this->getModule($id)->get('namespace') . '\\Uninstall'; $class = $this->getModule($id)?->get('namespace') . '\\Uninstall';
ob_start(); ob_start();