summaryrefslogtreecommitdiff
path: root/src/views/pages/plugins.php
blob: a52687149ec7d70350e5de0ccfd299257b50d1ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?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();