Skip to content
Snippets Groups Projects
plugins.php 2.04 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jared Hancock's avatar
    Jared Hancock committed
    <?php
    require('admin.inc.php');
    require_once(INCLUDE_DIR."/class.plugin.php");
    
    if($_REQUEST['id'] && !($plugin=Plugin::lookup($_REQUEST['id'])))
    
        $errors['err']=sprintf(__('%s: Unknown or invalid ID.'),
            __('plugin'));
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    if($_POST) {
        switch(strtolower($_POST['do'])) {
        case 'update':
            if ($plugin) {
                $plugin->getConfig()->commit($errors);
            }
            break;
        case 'mass_process':
            if(!$_POST['ids'] || !is_array($_POST['ids']) || !count($_POST['ids'])) {
    
                $errors['err'] = sprintf(__('You must select at least %s'),
                    __('one plugin'));
    
    Jared Hancock's avatar
    Jared Hancock committed
            } else {
                $count = count($_POST['ids']);
                switch(strtolower($_POST['a'])) {
                case 'enable':
    
    Jared Hancock's avatar
    Jared Hancock committed
                    foreach ($_POST['ids'] as $id) {
                        if ($p = Plugin::lookup($id)) {
    
                            if (!$p->enable())
                                $errors['err'] = sprintf(
                                    __('Unable to enable %s.'),
                                    $p->getName());
    
    Jared Hancock's avatar
    Jared Hancock committed
                        }
                    }
                    break;
                case 'disable':
                    foreach ($_POST['ids'] as $id) {
                        if ($p = Plugin::lookup($id)) {
                            $p->disable();
                        }
                    }
    
                    break;
                case 'delete':
                    foreach ($_POST['ids'] as $id) {
                        if ($p = Plugin::lookup($id)) {
                            $p->uninstall();
                        }
                    }
                    break;
    
            break;
        case 'install':
            if ($ost->plugins->install($_POST['install_path']))
    
                $msg = sprintf(__('Successfully installed %s'),
                    __('a plugin'));
    
    Jared Hancock's avatar
    Jared Hancock committed
        }
    }
    
    $page = 'plugins.inc.php';
    if ($plugin)
        $page = 'plugin.inc.php';
    
    elseif ($_REQUEST['a']=='add')
        $page = 'plugin-add.inc.php';
    
    Jared Hancock's avatar
    Jared Hancock committed
    
    $nav->setTabActive('manage');
    require(STAFFINC_DIR.'header.inc.php');
    require(STAFFINC_DIR.$page);
    include(STAFFINC_DIR.'footer.inc.php');
    ?>