From cfc8223aa64083413dc6907c6372c8b83319fa8c Mon Sep 17 00:00:00 2001 From: Boy132 Date: Fri, 4 Jul 2025 11:33:26 +0200 Subject: [PATCH] various fixes --- app/Facades/Plugins.php | 2 +- app/Models/Plugin.php | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/Facades/Plugins.php b/app/Facades/Plugins.php index a11804efd..fecd72dc7 100644 --- a/app/Facades/Plugins.php +++ b/app/Facades/Plugins.php @@ -15,7 +15,7 @@ use Filament\Panel; * @method static void installPlugin(Plugin $plugin) * @method static void enablePlugin(string|Plugin $plugin) * @method static void disablePlugin(string|Plugin $plugin) - * @method static void updateLoadOrder(array $order) + * @method static void updateLoadOrder(array $order) * * @see \App\Services\Helpers\PluginService */ diff --git a/app/Models/Plugin.php b/app/Models/Plugin.php index 4d0444c48..986d10166 100644 --- a/app/Models/Plugin.php +++ b/app/Models/Plugin.php @@ -101,11 +101,11 @@ class Plugin extends Model implements HasPluginSettings $data = array_merge($data, $data['meta']); unset($data['meta']); - if (is_array($data['panels'])) { + if (array_key_exists('panels', $data) && is_array($data['panels'])) { $data['panels'] = implode(',', $data['panels']); } - if (is_array($data['composer_packages'])) { + if (array_key_exists('composer_packages', $data) && is_array($data['composer_packages'])) { $data['composer_packages'] = implode(',', $data['composer_packages']); } @@ -181,7 +181,7 @@ class Plugin extends Model implements HasPluginSettings { $panelVersion = config('app.version', 'canary'); - return $this->panel_version === null || $panelVersion === 'canary' || version_compare($this->panel_version, $panelVersion, $this->isPanelVersionStrict ? '=' : '>='); + return $this->panel_version === null || $panelVersion === 'canary' || version_compare($this->panel_version, $panelVersion, $this->isPanelVersionStrict() ? '=' : '>='); } public function isPanelVersionStrict(): bool @@ -208,8 +208,8 @@ class Plugin extends Model implements HasPluginSettings return cache()->remember("plugins.$this->id.update", now()->addHour(), function () use ($panelVersion) { try { /** @var array */ - $updateData = file_get_contents($this->update_url); - if ($updateData[$panelVersion]) { + $updateData = json_decode(file_get_contents($this->update_url), true, 512, JSON_THROW_ON_ERROR); + if (array_key_exists($panelVersion, $updateData)) { return version_compare($updateData[$panelVersion]['version'], $this->version, '>'); } } catch (Exception $exception) {