function definition()
 {
     global $CFG;
     $mform =& $this->_form;
     $syscontext = get_context_instance(CONTEXT_SYSTEM);
     $actions = array(0 => get_string('choose') . '...');
     $plugins = get_list_of_plugins($CFG->admin . '/user/actions', 'CVS');
     foreach ($plugins as $dir) {
         if (check_action_capabilities($dir)) {
             $actions[$dir] = get_string('pluginname', 'bulkuseractions_' . $dir, NULL, $CFG->dirroot . '/admin/user/actions/' . $dir . '/lang/');
         }
     }
     $objs = array();
     $objs[] =& $mform->createElement('select', 'action', null, $actions);
     $objs[] =& $mform->createElement('submit', 'doaction', get_string('go'));
     $mform->addElement('group', 'actionsgrp', get_string('withselectedusers'), $objs, ' ', false);
 }
require_once $CFG->dirroot . '/' . $CFG->admin . '/user/lib.php';
require_once $CFG->dirroot . '/mod/quiz/locallib.php';
require_once $CFG->dirroot . '/mod/lesson/lib.php';
require_once $CFG->dirroot . '/mod/assignment/lib.php';
$reset = optional_param('reset', 0, PARAM_BOOL);
$accept = optional_param('accept', 0, PARAM_BOOL);
$cancel = optional_param('cancel', 0, PARAM_BOOL);
$allcourses = optional_param('allcourses', '', PARAM_CLEAN);
$selcourses = optional_param('selcourses', '', PARAM_CLEAN);
$searchtext = optional_param('searchtext', '', PARAM_RAW);
$showall = optional_param('showall', 0, PARAM_BOOL);
$listadd = optional_param('add', 0, PARAM_BOOL);
$listremove = optional_param('remove', 0, PARAM_BOOL);
$removeall = optional_param('removeall', 0, PARAM_BOOL);
admin_externalpage_setup('userbulk');
check_action_capabilities('purge', true);
if ($showall) {
    $searchtext = '';
}
$strsearch = get_string('search');
$return = $CFG->wwwroot . '/' . $CFG->admin . '/user/user_bulk.php';
$langdir = $CFG->dirroot . '/admin/user/actions/purge/lang/';
$pluginname = 'bulkuseractions_purge';
if ($reset) {
    unset($SESSION->purge_progress);
}
if (empty($SESSION->bulk_users) || $cancel) {
    redirect($return);
}
if (!isset($SESSION->bulk_courses) || $removeall) {
    $SESSION->bulk_courses = array();
<?php

//$Id: index.php,v 1.1 2009/03/10 10:01:57 argentum Exp $
/**
* script for bulk user delete operations
*/
require_once '../../../../config.php';
require_once $CFG->libdir . '/adminlib.php';
require_once $CFG->dirroot . '/' . $CFG->admin . '/user/lib.php';
$confirm = optional_param('confirm', 0, PARAM_BOOL);
admin_externalpage_setup('userbulk');
check_action_capabilities('delete', true);
$return = $CFG->wwwroot . '/' . $CFG->admin . '/user/user_bulk.php';
if (empty($SESSION->bulk_users)) {
    redirect($return);
}
admin_externalpage_print_header();
//TODO: add support for large number of users
if ($confirm and confirm_sesskey()) {
    $primaryadmin = get_admin();
    $in = implode(',', $SESSION->bulk_users);
    if ($rs = get_recordset_select('user', "id IN ({$in})")) {
        while ($user = rs_fetch_next_record($rs)) {
            if ($primaryadmin->id != $user->id and $USER->id != $user->id and delete_user($user)) {
                unset($SESSION->bulk_users[$user->id]);
            } else {
                notify(get_string('deletednot', '', fullname($user, true)));
            }
        }
        rs_close($rs);
    }
<?php

//$Id: index.php,v 1.2 2009/03/20 13:31:24 argentum Exp $
/**
* miniscript for bulk user email activation/deactivation
*/
require_once '../../../../config.php';
require_once $CFG->libdir . '/adminlib.php';
require_once $CFG->dirroot . '/' . $CFG->admin . '/user/lib.php';
$confirm = optional_param('confirm', 0, PARAM_BOOL);
$mailstop = optional_param('mailstop', false, PARAM_RAW);
admin_externalpage_setup('userbulk');
check_action_capabilities('emailactive', true);
$return = $CFG->wwwroot . '/' . $CFG->admin . '/user/user_bulk.php';
$langdir = $CFG->dirroot . '/admin/user/actions/emailactive/lang/';
$pluginname = 'bulkuseractions_emailactive';
if (empty($SESSION->bulk_users)) {
    redirect($return);
}
admin_externalpage_print_header();
if ($confirm and confirm_sesskey()) {
    foreach ($SESSION->bulk_users as $user) {
        set_field('user', 'emailstop', $mailstop, 'id', $user);
    }
    redirect($return, get_string('changessaved'));
}
if ($mailstop !== false) {
    $in = implode(',', $SESSION->bulk_users);
    $userlist = get_records_select_menu('user', "id IN ({$in})", 'fullname', 'id,' . sql_fullname() . ' AS fullname');
    $usernames = implode(', ', $userlist);
    $confstr = get_string('confirm1', $pluginname, NULL, $langdir);
<?php

//$Id: index.php,v 1.1 2009/03/10 10:01:55 argentum Exp $
require_once '../../../../config.php';
require_once $CFG->libdir . '/adminlib.php';
require_once $CFG->dirroot . '/message/lib.php';
require_once $CFG->dirroot . '/' . $CFG->admin . '/user/lib.php';
require_once 'user_message_form.php';
$msg = optional_param('msg', '', PARAM_CLEAN);
$confirm = optional_param('confirm', 0, PARAM_BOOL);
admin_externalpage_setup('userbulk');
check_action_capabilities('message', true);
$return = $CFG->wwwroot . '/' . $CFG->admin . '/user/user_bulk.php';
if (empty($SESSION->bulk_users)) {
    redirect($return);
}
if (empty($CFG->messaging)) {
    error("Messaging is disabled on this site");
}
//TODO: add support for large number of users
if ($confirm and !empty($msg) and confirm_sesskey()) {
    $in = implode(',', $SESSION->bulk_users);
    if ($rs = get_recordset_select('user', "id IN ({$in})")) {
        while ($user = rs_fetch_next_record($rs)) {
            message_post_message($USER, $user, $msg, FORMAT_HTML, 'direct');
        }
    }
    redirect($return);
}
// disable html editor if not enabled in preferences
if (!get_user_preferences('message_usehtmleditor', 0)) {
require_once $CFG->dirroot . '/' . $CFG->admin . '/user/lib.php';
$allcourses = optional_param('allcourses', '', PARAM_CLEAN);
$selcourses = optional_param('selcourses', '', PARAM_CLEAN);
$accept = optional_param('accept', 0, PARAM_BOOL);
$confirm = optional_param('confirm', 0, PARAM_BOOL);
$cancel = optional_param('cancel', 0, PARAM_BOOL);
$searchtext = optional_param('searchtext', '', PARAM_RAW);
$groupname = optional_param('groupname', '', PARAM_RAW);
$roleassign = optional_param('roleassign', '', PARAM_RAW);
$showall = optional_param('showall', 0, PARAM_BOOL);
$listadd = optional_param('add', 0, PARAM_BOOL);
$listremove = optional_param('remove', 0, PARAM_BOOL);
$removeall = optional_param('removeall', 0, PARAM_BOOL);
$hidden = optional_param('hidden', 0, PARAM_BOOL);
admin_externalpage_setup('userbulk');
check_action_capabilities('enroltocourses', true);
$return = $CFG->wwwroot . '/' . $CFG->admin . '/user/user_bulk.php';
if ($showall) {
    $searchtext = '';
}
$strsearch = get_string('search');
$langdir = $CFG->dirroot . '/admin/user/actions/enroltocourses/lang/';
$pluginname = 'bulkuseractions_enroltocourses';
if (empty($SESSION->bulk_users) || $cancel) {
    redirect($return);
}
if (!isset($SESSION->bulk_courses) || $removeall) {
    $SESSION->bulk_courses = array();
}
// course selection add/remove actions
if ($listadd && !empty($allcourses)) {
<?php

// $Id: index.php,v 1.1 2009/03/10 10:01:57 argentum Exp $
require_once '../../../../config.php';
require_once $CFG->libdir . '/adminlib.php';
require_once $CFG->dirroot . '/' . $CFG->admin . '/user/lib.php';
$sort = optional_param('sort', 'fullname', PARAM_ALPHA);
$dir = optional_param('dir', 'asc', PARAM_ALPHA);
admin_externalpage_setup('userbulk');
check_action_capabilities('display', true);
$return = $CFG->wwwroot . '/' . $CFG->admin . '/user/user_bulk.php';
if (empty($SESSION->bulk_users)) {
    redirect($return);
}
$users = $SESSION->bulk_users;
$usertotal = get_users(false);
$usercount = count($users);
$strnever = get_string('never');
admin_externalpage_print_header();
$countries = get_list_of_countries();
foreach ($users as $key => $id) {
    $user = get_record('user', 'id', $id, null, null, null, null, 'id, firstname, lastname, username, email, country, lastaccess, city');
    $user->fullname = fullname($user, true);
    $user->country = @$countries[$user->country];
    unset($user->firstname);
    unset($user->lastname);
    $users[$key] = $user;
}
unset($countries);
// Need to sort by date
function sort_compare($a, $b)
<?php

//$Id: index.php,v 1.1 2009/03/10 10:01:56 argentum Exp $
/**
* script for downloading of user lists
*/
require_once '../../../../config.php';
require_once $CFG->libdir . '/adminlib.php';
require_once $CFG->dirroot . '/' . $CFG->admin . '/user/lib.php';
$format = optional_param('format', '', PARAM_ALPHA);
admin_externalpage_setup('userbulk');
check_action_capabilities('download', true);
$return = $CFG->wwwroot . '/' . $CFG->admin . '/user/user_bulk.php';
if (empty($SESSION->bulk_users)) {
    redirect($return);
}
if ($format) {
    $fields = array('id' => 'id', 'username' => 'username', 'email' => 'email', 'firstname' => 'firstname', 'lastname' => 'lastname', 'idnumber' => 'idnumber', 'institution' => 'institution', 'department' => 'department', 'phone1' => 'phone1', 'phone2' => 'phone2', 'city' => 'city', 'url' => 'url', 'icq' => 'icq', 'skype' => 'skype', 'aim' => 'aim', 'yahoo' => 'yahoo', 'msn' => 'msn', 'country' => 'country');
    if ($extrafields = get_records_select('user_info_field')) {
        foreach ($extrafields as $n => $v) {
            $fields['profile_field_' . $v->shortname] = 'profile_field_' . $v->shortname;
        }
    }
    switch ($format) {
        case 'csv':
            user_download_csv($fields);
        case 'ods':
            user_download_ods($fields);
        case 'xls':
            user_download_xls($fields);
    }
*/
require_once '../../../../config.php';
require_once $CFG->libdir . '/adminlib.php';
require_once $CFG->dirroot . '/' . $CFG->admin . '/user/lib.php';
$allcourses = optional_param('allcourses', '', PARAM_CLEAN);
$selcourses = optional_param('selcourses', '', PARAM_CLEAN);
$accept = optional_param('accept', 0, PARAM_BOOL);
$confirm = optional_param('confirm', 0, PARAM_BOOL);
$cancel = optional_param('cancel', 0, PARAM_BOOL);
$searchtext = optional_param('searchtext', '', PARAM_RAW);
$showall = optional_param('showall', 0, PARAM_BOOL);
$listadd = optional_param('add', 0, PARAM_BOOL);
$listremove = optional_param('remove', 0, PARAM_BOOL);
$removeall = optional_param('removeall', 0, PARAM_BOOL);
admin_externalpage_setup('userbulk');
check_action_capabilities('removefromcourses', true);
$return = $CFG->wwwroot . '/' . $CFG->admin . '/user/user_bulk.php';
if ($showall) {
    $searchtext = '';
}
$strsearch = get_string('search');
$langdir = $CFG->dirroot . '/admin/user/actions/removefromcourses/lang/';
$pluginname = 'bulkuseractions_removefromcourses';
if (empty($SESSION->bulk_users) || $cancel) {
    redirect($return);
}
if (!isset($SESSION->bulk_courses) || $removeall) {
    $SESSION->bulk_courses = array();
}
// course selection add/remove actions
if ($listadd && !empty($allcourses)) {