isAdmin()) { $this->http401($routed, $remainder); return; } $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() { $db = Database::getInstance(); 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() { $pm = PluginManager::getInstance(); $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) { $this->showView('plugins/401'); } }