summaryrefslogtreecommitdiff
path: root/src/views
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2011-09-22 00:45:02 -0400
committerLuke Shumaker <LukeShu@sbcglobal.net>2011-09-22 00:45:02 -0400
commit485cc0fad823d50ed07df15f629ff824d2332ece (patch)
tree041655882fafa27cbcc4a431f33695c37fa10313 /src/views
parentb58a642ab0463426b9f0d1d519bc5964b1453c3e (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.php61
-rw-r--r--src/views/pages/plugins/index.html.php38
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();