diff --git a/beike/Plugin/Manager.php b/beike/Plugin/Manager.php index 9701df5a..896a7f9f 100644 --- a/beike/Plugin/Manager.php +++ b/beike/Plugin/Manager.php @@ -43,10 +43,11 @@ class Manager foreach ($existed as $dirname => $package) { $pluginPath = $this->getPluginsDir() . DIRECTORY_SEPARATOR . $dirname; $plugin = new Plugin($pluginPath, $package); + $status = $plugin->getStatus(); $plugin->setDirname($dirname); $plugin->setName(Arr::get($package, 'name')); $plugin->setInstalled(true); - $plugin->setEnabled(false); + $plugin->setEnabled($status); $plugin->setVersion(Arr::get($package, 'version')); $plugin->setColumns(); diff --git a/beike/Plugin/Plugin.php b/beike/Plugin/Plugin.php index 3d82204c..47a6c18a 100644 --- a/beike/Plugin/Plugin.php +++ b/beike/Plugin/Plugin.php @@ -101,6 +101,12 @@ class Plugin implements Arrayable, \ArrayAccess return admin_route('plugins.edit', ['code' => $this->code]); } + public function getStatus(): bool + { + return SettingRepo::getPluginStatus($this->code); + } + + /** * 获取插件对应的设置字段, 并获取已存储在DB的字段值 * diff --git a/beike/Repositories/SettingRepo.php b/beike/Repositories/SettingRepo.php index 50b92bee..fa830aaf 100644 --- a/beike/Repositories/SettingRepo.php +++ b/beike/Repositories/SettingRepo.php @@ -39,6 +39,16 @@ class SettingRepo ->keyBy('name'); } + public static function getPluginStatus($pluginCode): bool + { + $status = Setting::query() + ->where('type', 'plugin') + ->where('space', $pluginCode) + ->where('name', 'status') + ->value('value'); + return (bool)$status; + } + public static function update($type, $code, $fields) { Setting::query()->where('type', $type)->where('space', $code)->delete();