diff --git a/src/Backend.php b/src/Backend.php index 7bd18a9..3d211ec 100644 --- a/src/Backend.php +++ b/src/Backend.php @@ -40,7 +40,7 @@ class Backend extends dcNsProcess dcCore::app()->addBehavior('adminDashboardFavoritesV2', function (dcFavorites $favs): void { $favs->register(My::id(), [ 'title' => My::name(), - 'url' => dcCore::app()->adminurl->get('admin.plugin.' . My::id(), [], '#packman-repository-repository'), + 'url' => dcCore::app()->adminurl?->get('admin.plugin.' . My::id(), [], '#packman-repository-repository'), 'small-icon' => [dcPage::getPF(My::id() . '/icon.svg'), dcPage::getPF(My::id() . '/icon-dark.svg')], 'large-icon' => [dcPage::getPF(My::id() . '/icon.svg'), dcPage::getPF(My::id() . '/icon-dark.svg')], //'permissions' => dcCore::app()->auth->isSuperAdmin(), @@ -49,10 +49,10 @@ class Backend extends dcNsProcess dcCore::app()->menu[dcAdmin::MENU_PLUGINS]->addItem( My::name(), - dcCore::app()->adminurl->get('admin.plugin.' . My::id()) . '#packman-repository-repository', + dcCore::app()->adminurl?->get('admin.plugin.' . My::id()) . '#packman-repository-repository', [dcPage::getPF(My::id() . '/icon.svg'), dcPage::getPF(My::id() . '/icon-dark.svg')], - preg_match('/' . preg_quote(dcCore::app()->adminurl->get('admin.plugin.' . My::id())) . '(&.*)?$/', $_SERVER['REQUEST_URI']), - dcCore::app()->auth->isSuperAdmin() + preg_match('/' . preg_quote((string) dcCore::app()->adminurl?->get('admin.plugin.' . My::id())) . '(&.*)?$/', $_SERVER['REQUEST_URI']), + dcCore::app()->auth?->isSuperAdmin() ); return true; diff --git a/src/Config.php b/src/Config.php index 8dec66c..ed78a29 100644 --- a/src/Config.php +++ b/src/Config.php @@ -61,7 +61,7 @@ class Config extends dcNsProcess dcPage::addSuccessNotice( __('Configuration has been successfully updated.') ); - dcCore::app()->adminurl->redirect('admin.plugins', [ + dcCore::app()->adminurl?->redirect('admin.plugins', [ 'module' => My::id(), 'conf' => '1', 'redir' => dcCore::app()->admin->__get('list')->getRedir(), @@ -87,12 +87,13 @@ class Config extends dcNsProcess $img_on = sprintf($img, __('writable'), 'check-on.png'); $img_off = sprintf($img, __('not writable'), 'check-off.png'); - $check_repo = Utils::is_writable(Utils::getRepositoryDir($s->pack_repository), '_.zip') ? $img_on : $img_off; - $check_first = !empty($s->pack_filename) && Utils::is_writable(Utils::getRepositoryDir($repo), $s->pack_filename) ? $img_on : $img_off; - $check_second = !empty($s->secondpack_filename) && Utils::is_writable(Utils::getRepositoryDir($repo), $s->secondpack_filename) ? $img_on : $img_off; + $repo = Utils::getRepositoryDir($s->pack_repository); + $check_repo = Utils::is_writable($repo, '_.zip') ? $img_on : $img_off; + $check_first = !empty($s->pack_filename) && Utils::is_writable($repo, $s->pack_filename) ? $img_on : $img_off; + $check_second = !empty($s->secondpack_filename) && Utils::is_writable($repo, $s->secondpack_filename) ? $img_on : $img_off; $is_configured = Utils::is_configured( - Utils::getRepositoryDir($s->pack_repository), + $repo, $s->pack_filename, $s->secondpack_filename ); @@ -117,7 +118,7 @@ class Config extends dcNsProcess (new Note())->class('form-note')->text( sprintf( __('Preconization: %s'), - dcCore::app()->blog->public_path ? + dcCore::app()->blog?->public_path ? dcCore::app()->blog->public_path : __("Blog's public directory") ) . ' ' . __('Leave it empty to use Dotclear VAR directory') ), diff --git a/src/Core.php b/src/Core.php index c558775..7372c3b 100644 --- a/src/Core.php +++ b/src/Core.php @@ -164,7 +164,7 @@ class Core $zip->addExclusion($e); } $zip->addDirectory( - path::real($info['root']), + (string) path::real($info['root'], false), $info['id'], true ); diff --git a/src/Manage.php b/src/Manage.php index 802deb9..42e72e7 100644 --- a/src/Manage.php +++ b/src/Manage.php @@ -52,7 +52,7 @@ class Manage extends dcNsProcess # Modules if (!(dcCore::app()->themes instanceof 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); } $themes = dcCore::app()->themes; $plugins = dcCore::app()->plugins; @@ -113,7 +113,7 @@ class Manage extends dcNsProcess if (!empty($_POST['redir'])) { http::redirect($_POST['redir']); } else { - dcCore::app()->adminurl->redirect('admin.plugin.' . My::id(), [], '#packman-' . $type); + dcCore::app()->adminurl?->redirect('admin.plugin.' . My::id(), [], '#packman-' . $type); } # Pack @@ -151,7 +151,7 @@ class Manage extends dcNsProcess if (!empty($_POST['redir'])) { http::redirect($_POST['redir']); } else { - dcCore::app()->adminurl->redirect('admin.plugin.' . My::id(), [], '#packman-' . $type); + dcCore::app()->adminurl?->redirect('admin.plugin.' . My::id(), [], '#packman-' . $type); } # Delete @@ -176,7 +176,7 @@ class Manage extends dcNsProcess if (!empty($_POST['redir'])) { http::redirect($_POST['redir']); } else { - dcCore::app()->adminurl->redirect('admin.plugin.' . My::id(), [], '#packman-repository-' . $type); + dcCore::app()->adminurl?->redirect('admin.plugin.' . My::id(), [], '#packman-repository-' . $type); } # Install @@ -203,7 +203,7 @@ class Manage extends dcNsProcess if (!empty($_POST['redir'])) { http::redirect($_POST['redir']); } else { - dcCore::app()->adminurl->redirect('admin.plugin.' . My::id(), [], '#packman-repository-' . $type); + dcCore::app()->adminurl?->redirect('admin.plugin.' . My::id(), [], '#packman-repository-' . $type); } # Copy @@ -229,7 +229,7 @@ class Manage extends dcNsProcess if (!empty($_POST['redir'])) { http::redirect($_POST['redir']); } else { - dcCore::app()->adminurl->redirect('admin.plugin.' . My::id(), [], '#packman-repository-' . $type); + dcCore::app()->adminurl?->redirect('admin.plugin.' . My::id(), [], '#packman-repository-' . $type); } # Move @@ -256,7 +256,7 @@ class Manage extends dcNsProcess if (!empty($_POST['redir'])) { http::redirect($_POST['redir']); } else { - dcCore::app()->adminurl->redirect('admin.plugin.' . My::id(), [], '#packman-repository-' . $type); + dcCore::app()->adminurl?->redirect('admin.plugin.' . My::id(), [], '#packman-repository-' . $type); } } } catch (Exception $e) { @@ -302,7 +302,7 @@ class Manage extends dcNsProcess if (dcCore::app()->error->flag() || !$is_configured) { echo '
' . __('pacKman is not well configured.') . ' ' . - '' . __('Configuration') . '' . + '' . __('Configuration') . '' . '
'; } else { Utils::modules( diff --git a/src/Settings.php b/src/Settings.php index 5b212b1..1354717 100644 --- a/src/Settings.php +++ b/src/Settings.php @@ -47,16 +47,16 @@ class Settings */ public function __construct() { - $s = dcCore::app()->blog->settings->get(My::id()); + $s = dcCore::app()->blog?->settings->get(My::id()); - $this->pack_nocomment = (bool) ($s->get('pack_nocomment') ?? false); - $this->pack_fixnewline = (bool) ($s->get('pack_fixnewline') ?? false); - $this->pack_overwrite = (bool) ($s->get('pack_overwrite') ?? false); - $this->pack_filename = (string) ($s->get('pack_filename') ?? '%type%-%id%'); - $this->secondpack_filename = (string) ($s->get('secondpack_filename') ?? '%type%-%id%-%version%'); - $this->pack_repository = (string) ($s->get('pack_repository') ?? ''); - $this->pack_excludefiles = (string) ($s->get('pack_excludefiles') ?? '*.zip,*.tar,*.tar.gz,.directory,.hg'); - $this->hide_distrib = (bool) ($s->get('hide_distrib') ?? false); + $this->pack_nocomment = (bool) ($s?->get('pack_nocomment') ?? false); + $this->pack_fixnewline = (bool) ($s?->get('pack_fixnewline') ?? false); + $this->pack_overwrite = (bool) ($s?->get('pack_overwrite') ?? false); + $this->pack_filename = (string) ($s?->get('pack_filename') ?? '%type%-%id%'); + $this->secondpack_filename = (string) ($s?->get('secondpack_filename') ?? '%type%-%id%-%version%'); + $this->pack_repository = (string) ($s?->get('pack_repository') ?? ''); + $this->pack_excludefiles = (string) ($s?->get('pack_excludefiles') ?? '*.zip,*.tar,*.tar.gz,.directory,.hg'); + $this->hide_distrib = (bool) ($s?->get('hide_distrib') ?? false); } public function getSetting(string $key): mixed @@ -75,8 +75,8 @@ class Settings public function writeSetting(string $key, mixed $value): bool { if (property_exists($this, $key) && settype($value, gettype($this->{$key})) === true) { - dcCore::app()->blog->settings->get(My::id())->drop($key); - dcCore::app()->blog->settings->get(My::id())->put($key, $value, gettype($this->{$key}), '', true, true); + dcCore::app()->blog?->settings->get(My::id())->drop($key); + dcCore::app()->blog?->settings->get(My::id())->put($key, $value, gettype($this->{$key}), '', true, true); return true; } diff --git a/src/Utils.php b/src/Utils.php index 3b788ae..af23955 100644 --- a/src/Utils.php +++ b/src/Utils.php @@ -38,7 +38,7 @@ class Utils public static function getThemesPath(): string { - return dcCore::app()->blog->themes_path; + return (string) dcCore::app()->blog?->themes_path; } public static function is_configured(string $repo, string $file_a, string $file_b): bool @@ -101,7 +101,7 @@ class Utils } break; - case self::USE_LEGACY: + case Unzip::USE_LEGACY: break; } @@ -130,7 +130,7 @@ class Utils } break; - case self::USE_LEGACY: + case Unzip::USE_LEGACY: break; } @@ -152,7 +152,7 @@ class Utils return $dir; } - public static function getModules(string $type, ?string $id = null): ?array + public static function getModules(string $type, ?string $id = null): array { $type = $type == 'themes' ? 'themes' : 'plugins'; @@ -168,14 +168,14 @@ class Utils return $modules[$id]; } - return null; + return []; } public static function moduleExists(string $type, ?string $id): bool { $type = $type == 'themes' ? 'themes' : 'plugins'; - return array_key_exists($id, array_merge(dcCore::app()->{$type}->getDisabledModules(), dcCore::app()->{$type}->getModules())); + return array_key_exists((string) $id, array_merge(dcCore::app()->{$type}->getDisabledModules(), dcCore::app()->{$type}->getModules())); } public static function modules(array $modules, string $type, string $title): ?bool @@ -306,7 +306,7 @@ class Utils '' . '' . '' .