From 84ea65b1bd5a433854e82ba58c230cb07ce16822 Mon Sep 17 00:00:00 2001 From: objec Date: Wed, 8 Apr 2026 12:19:24 +0400 Subject: [PATCH] Added check for plugin table before attempting to load plugins Signed-off-by: objec --- app/Config/Events.php | 9 +++++++-- app/Libraries/Plugins/PluginManager.php | 7 +++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/Config/Events.php b/app/Config/Events.php index 577878fa2..fa925006d 100644 --- a/app/Config/Events.php +++ b/app/Config/Events.php @@ -56,8 +56,13 @@ Events::on('pre_system', static function (): void { } $pluginManager = new PluginManager(); - $pluginManager->discoverPlugins(); - $pluginManager->registerPluginEvents(); + + if ($pluginManager->canLoadPlugins()) { + $pluginManager->discoverPlugins(); + $pluginManager->registerPluginEvents(); + } else { + log_message('debug', 'Plugin loading is disabled until after migration has been run.'); + } }); $config = new Load_config(); diff --git a/app/Libraries/Plugins/PluginManager.php b/app/Libraries/Plugins/PluginManager.php index d2e2d3a6d..28bc564f5 100644 --- a/app/Libraries/Plugins/PluginManager.php +++ b/app/Libraries/Plugins/PluginManager.php @@ -4,6 +4,7 @@ namespace App\Libraries\Plugins; use App\Models\PluginConfig; use CodeIgniter\Events\Events; +use Config\Database; use Config\Services; use RecursiveDirectoryIterator; use RecursiveIteratorIterator; @@ -109,6 +110,12 @@ class PluginManager return $enabled === '1' || $enabled === 'true'; } + public function canLoadPlugins(): bool + { + $db = Database::connect(); + return $db->tableExists('plugin_config'); + } + public function enablePlugin(string $pluginId): bool { $plugin = $this->getPlugin($pluginId);