/** * Disable plugin. */ public function disableAction() { $plugin = Plugin::find('directory', Request::$query['plugin']); $info = Registry::infoFor(Request::$query['plugin']); if (class_exists($info['main'])) { $info['main']::__disable(); $plugin->is_enabled = false; $plugin->save(); } return $this->redirectTo('admin_plugins'); }
/** * Load plugins. */ protected function loadPlugins() { $queue = []; $plugins = PluginModel::select()->where('is_enabled = ?')->setParameter(0, true)->execute()->fetchAll(); foreach ($plugins as $plugin) { $vendorDir = __DIR__ . '/../vendor'; foreach (json_decode($plugin['autoload'], true) as $namespace => $directory) { static::$loader->addPsr4($namespace, $vendorDir . "/{$plugin['directory']}/{$directory}"); } $class = $plugin['main']; if (class_exists($class)) { $class::init(); $queue[] = $class; } } foreach ($queue as $plugin) { $plugin::enable(); } }