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/views/pages/plugins.php | 61 ---------------------------------- src/views/pages/plugins/index.html.php | 38 ++++++++++++++++++++- 2 files changed, 37 insertions(+), 62 deletions(-) delete mode 100644 src/views/pages/plugins.php (limited to 'src/views') diff --git a/src/views/pages/plugins.php b/src/views/pages/plugins.php deleted file mode 100644 index a526871..0000000 --- a/src/views/pages/plugins.php +++ /dev/null @@ -1,61 +0,0 @@ -isLoggedIn(); -$auth = ($uid!==false) && ($m->getStatus($uid)>=2); - -if (!$auth) { - $m->status('401 Unauthorized'); - $m->header('Unauthorized'); - $t = $m->template(); - $t->tag('h1',array(),"401: Unauthorized"); - $t->paragraph('You need to be logged in as an admin (at least user '. - 'level 2) to edit global plugin settings. :('); - $m->footer(); - exit(); -} - -$m->header('Administrator Plugin Management'); - -$t = $m->template(); - -$t->openTag('form',array('method'=>'post','action'=>$m->baseUrl().plugins)); - -global $BASE; -set_include_path(get_include_path().PATH_SEPARATOR."$BASE/src/plugins"); - -$plugin_list = $m->getSysConf('plugins'); -$plugins = explode(',', $plugin_list); -foreach ($plugins as $plugin) { - $t->openFieldSet($plugin); - - require_once("$plugin.class.php"); - $description = call_user_func("$plugin::description"); - $params = call_user_func("$plugin::configList"); - - $t->inputP($description); - - foreach ($params as $param => $type) { - $name = $plugin.'_'.$param; - if (isset($_POST[$name])) { - $m->setPluginConf($plugin, $param, $_POST[$name]); - } - $value = $m->getPluginConf($plugin, $param); - $hint = "Type: $type"; - switch ($type) { - case 'text': - case 'int': - $t->inputText( $name, $param, $hint, $value); break; - case 'password': - $t->inputPassword($name, $param, $hint, $value); break; - } - } - $t->closeFieldSet(); -} - -$t->tag('input', array('type'=>'submit', 'value'=>'Save')); -$t->closeTag('form'); -$m->footer(); \ No newline at end of file diff --git a/src/views/pages/plugins/index.html.php b/src/views/pages/plugins/index.html.php index d62b555..1f89344 100644 --- a/src/views/pages/plugins/index.html.php +++ b/src/views/pages/plugins/index.html.php @@ -1,5 +1,41 @@ -database(); $t->header('Administrator Plugin Management'); $t->openTag('form',array('method'=>'post','action'=>$t->url('plugins'))); + +foreach ($plugins as $plugin) { + $t->setRet(true); + $props = array('type'=>'checkbox', + 'name'=>'plugins[]', + 'id'=>'plugins_'.$plugin['name'], + 'value'=>$plugin['name']); + if ($plugin['active']==true) { + $props['checked'] = 'checked'; + } + $box = $t->tag('input', $props); + $t->setRet(false); + $t->openFieldset($plugin['name'].$box); + + $t->inputP($plugin['description']); + foreach ($plugin['config'] as $param => $type) { + $name = $plugin['key'].'['.$param.']'; + $value = $db->getPluginConf($plugin['name'], $param); + $hint = "Type: $type"; + switch ($type) { + case 'text': + case 'int': + $t->inputText( $name, $param, $hint, $value); break; + case 'password': + $t->inputPassword($name, $param, $hint, $value); break; + } + } + $t->closeFieldset(); +} + +$t->tag('input', array('type'=>'submit', + 'value'=>'Save/Update')); +$t->closeTag('form'); +$t->footer(); -- cgit v1.2.3-2-g168b