diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2011-09-22 00:45:02 -0400 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2011-09-22 00:45:02 -0400 |
commit | 485cc0fad823d50ed07df15f629ff824d2332ece (patch) | |
tree | 041655882fafa27cbcc4a431f33695c37fa10313 /src/views | |
parent | b58a642ab0463426b9f0d1d519bc5964b1453c3e (diff) |
Implement actual plugin management. I was tired of doing the SQL queries by hand :)
Diffstat (limited to 'src/views')
-rw-r--r-- | src/views/pages/plugins.php | 61 | ||||
-rw-r--r-- | src/views/pages/plugins/index.html.php | 38 |
2 files changed, 37 insertions, 62 deletions
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 @@ -<?php - -global $m; -require_once('MessageManager.class.php'); -$m = new MessageManager($BASE.'/conf.php'); - -$uid = $m->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 @@ -<?php global $VARS; +<?php global $VARS, $mm; $t = $VARS['template']; +$plugins = $VARS['plugins']; +$db = $mm->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(); |