示例#1
0
function sp_validate_active_plugins()
{
    $plugins = sp_get_option('sp_active_plugins', array());
    # validate vartype: array
    if (!is_array($plugins)) {
        sp_update_option('sp_active_plugins', array());
        $plugins = array();
    }
    if (empty($plugins)) {
        return;
    }
    $invalid = array();
    # invalid plugins get deactivated
    foreach ($plugins as $plugin) {
        $result = sp_validate_plugin($plugin);
        if (is_wp_error($result)) {
            $invalid[$plugin] = $result;
            sp_deactivate_sp_plugin($plugin, true);
        }
    }
    return $invalid;
}
function spa_save_plugin_list_actions()
{
    check_admin_referer('forum-adminform_plugins', 'forum-adminform_plugins');
    if (!sp_current_user_can('SPF Manage Plugins')) {
        spa_etext('Access denied - you do not have permission');
        die;
    }
    if (empty($_POST['checked'])) {
        return spa_text('Error - no plugins selected');
    }
    $action = '';
    if (isset($_POST['action']) && $_POST['action'] != -1) {
        $action = $_POST['action'];
    }
    if (isset($_POST['action2']) && $_POST['action2'] != -1) {
        $action = $_POST['action2'];
    }
    switch ($action) {
        case 'activate-selected':
            $activate = false;
            foreach ($_POST['checked'] as $plugin) {
                $plugin = sp_filter_name_save($plugin);
                if (!sp_is_plugin_active($plugin)) {
                    $activate = true;
                    sp_activate_sp_plugin($plugin);
                }
            }
            if ($activate) {
                $msg = spa_text('Selected plugins activated');
            } else {
                $msg = spa_text('All selected plugins already active');
            }
            break;
        case 'deactivate-selected':
            $deactivate = false;
            foreach ($_POST['checked'] as $plugin) {
                $plugin = sp_filter_name_save($plugin);
                if (sp_is_plugin_active($plugin)) {
                    $deactivate = true;
                    sp_deactivate_sp_plugin($plugin);
                }
            }
            if ($deactivate) {
                $msg = spa_text('Selected plugins deactivated');
            } else {
                $msg = spa_text('All selected plugins already deactived');
            }
            break;
        case 'delete-selected':
            $active = false;
            foreach ($_POST['checked'] as $plugin) {
                $plugin = sp_filter_name_save($plugin);
                if (!sp_is_plugin_active($plugin)) {
                    sp_delete_sp_plugin($plugin);
                } else {
                    $active = true;
                }
            }
            if ($active) {
                $msg = spa_text('Selected plugins deleted but any active plugins were not deleted');
            } else {
                $msg = spa_text('Selected plugins deleted');
            }
            break;
        default:
            $msg = spa_text('Error - no action selected');
            break;
    }
    return $msg;
}