1<?php
2require('admin.inc.php');
3require_once(INCLUDE_DIR."/class.plugin.php");
4
5if($_REQUEST['id'] && !($plugin=Plugin::lookup($_REQUEST['id'])))
6    $errors['err']=sprintf(__('%s: Unknown or invalid ID.'),
7        __('plugin'));
8
9if($_POST) {
10    switch(strtolower($_POST['do'])) {
11    case 'update':
12        if ($plugin) {
13            $plugin->getConfig()->commit($errors);
14        }
15        break;
16    case 'mass_process':
17        if(!$_POST['ids'] || !is_array($_POST['ids']) || !count($_POST['ids'])) {
18            $errors['err'] = sprintf(__('You must select at least %s.'),
19                __('one plugin'));
20        } else {
21            $count = count($_POST['ids']);
22            switch(strtolower($_POST['a'])) {
23            case 'enable':
24                foreach ($_POST['ids'] as $id) {
25                    if ($p = Plugin::lookup($id)) {
26                        if (!$p->enable())
27                            $errors['err'] = sprintf(
28                                __('Unable to enable %s'),
29                                $p->getName());
30                    }
31                }
32                break;
33            case 'disable':
34                foreach ($_POST['ids'] as $id) {
35                    if ($p = Plugin::lookup($id)) {
36                        $p->disable();
37                    }
38                }
39                break;
40            case 'delete':
41                foreach ($_POST['ids'] as $id) {
42                    if ($p = Plugin::lookup($id)) {
43                        $p->uninstall($errors);
44                    }
45                }
46                break;
47            }
48        }
49        break;
50    case 'install':
51        if ($ost->plugins->install($_POST['install_path']))
52            $msg = sprintf(__('Successfully installed %s'),
53                __('a plugin'));
54        break;
55    }
56}
57
58$page = 'plugins.inc.php';
59if ($plugin)
60    $page = 'plugin.inc.php';
61elseif ($_REQUEST['a']=='add')
62    $page = 'plugin-add.inc.php';
63
64$nav->setTabActive('manage');
65require(STAFFINC_DIR.'header.inc.php');
66require(STAFFINC_DIR.$page);
67include(STAFFINC_DIR.'footer.inc.php');
68?>
69