From 485cc0fad823d50ed07df15f629ff824d2332ece Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 22 Sep 2011 00:45:02 -0400 Subject: Implement actual plugin management. I was tired of doing the SQL queries by hand :) --- src/controllers/Plugins.class.php | 57 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) (limited to 'src/controllers/Plugins.class.php') diff --git a/src/controllers/Plugins.class.php b/src/controllers/Plugins.class.php index 40d3fc0..e2b500c 100644 --- a/src/controllers/Plugins.class.php +++ b/src/controllers/Plugins.class.php @@ -1,5 +1,7 @@ http401($routed, $remainder); return; } - // TODO + + $method = $_SERVER['REQUEST_METHOD']; + switch ($method) { + case 'PUT': $_POST = $_PUT; + case 'POST': + // We're PUTing an updated user index. + $this->update(); + break; + } + $this->show_index(); + } + + private function update() { + global $mm; + $db = $mm->database(); + + if (isset($_POST['plugins'])) { + $string = $db->arrayToValue($_POST['plugins']); + $db->setSysConf('plugins', $string); + } + + if (isset($_POST['config'])) { + foreach ($_POST['config'] as $plugin_name => $plugin) { + foreach ($plugin as $param => $value) { + $db->setPluginConf($plugin_name, + $param, + $value); + } + } + } + } + + private function show_index() { + global $mm; $pm = $mm->pluginManager(); + $all_plugins = $pm->listPlugins(); + $enabled_plugins = $pm->getActivePlugins(); + + $plugin_data = array(); + foreach ($all_plugins as $plugin_name) { + $plugin = array(); + $plugin['name'] = $plugin_name; + $plugin['key'] = 'config['.$plugin_name.']'; + $plugin['active'] = + in_array($plugin_name, $enabled_plugins); + $plugin['description'] = + $pm->staticHook($plugin_name, 'description'); + $plugin['config'] = + $pm->staticHook($plugin_name, 'configList'); + $plugin_data[] = $plugin; + } + + $vars = array(); + $vars['plugins'] = $plugin_data; + $this->showView('plugins/index', $vars); } public function http401($routed, $remainder) { -- cgit v1.2.3