moodle/admin/user/user_bulk.php

74 lines
3.1 KiB
PHP
Executable File

<?php //$Id$
require_once('../../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/dmllib.php');
require_once($CFG->dirroot.'/user/filters/text.php');
require_once($CFG->dirroot.'/user/filters/select.php');
require_once($CFG->dirroot.'/user/filters/courserole.php');
require_once($CFG->dirroot.'/user/filters/globalrole.php');
require_once($CFG->dirroot.'/user/filters/profilefield.php');
require_once($CFG->dirroot.'/user/filters/yesno.php');
require_once($CFG->dirroot.'/admin/user/user_bulk_form.php');
define("MAX_USERS_PER_PAGE", 5000);
$sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
// array of bulk operations
$actions = array();
$actions[1] = get_string('confirm');
if (has_capability('moodle/site:readallmessages', $sitecontext) && !empty($CFG->messaging)) {
$actions[2] = get_string('messageselectadd');
}
$actions[3] = get_string('delete');
$actions[4] = get_string('displayonpage');
// create the bulk operations form
$user_bulk_form =& new user_bulk_form(null, $actions);
// check if an action should be performed and do so
switch ($user_bulk_form->getAction()) {
case 1:
redirect($CFG->wwwroot . '/admin/user/user_bulk_confirm.php');
case 2:
redirect($CFG->wwwroot . '/admin/user/user_bulk_message.php');
case 3:
redirect($CFG->wwwroot . '/admin/user/user_bulk_delete.php');
case 4:
redirect($CFG->wwwroot . '/admin/user/user_bulk_display.php');
}
// prepare user filter types
$filters[] = new user_filter_text('username', get_string('username'), 'username');
$filters[] = new user_filter_text('realname', get_string('fullname'), sql_fullname());
$filters[] = new user_filter_text('email', get_string('email'), 'email');
$filters[] = new user_filter_text('city', get_string('city'), 'city');
$filters[] = new user_filter_select('country', get_string('country'), 'country', get_list_of_countries());
$filters[] = new user_filter_yesno('confirmed', get_string('confirm'), 'confirmed');
$filters[] = new user_filter_profilefield('profile', get_string('profile'));
$filters[] = new user_filter_courserole('course', get_string('courserole', 'filters'));
$filters[] = new user_filter_globalrole('system', get_string('globalrole', 'role'));
// create the user filter form
$user_filter_form =& new user_filter_form(null, $filters);
// do output
admin_externalpage_setup('userbulk');
admin_externalpage_print_header();
// put the user filter form first
$user_filter_form->display();
// get the SQL filter
$where =& $user_filter_form->getSQLFilter('id<>1 AND NOT deleted');
$ausercount = count_records_select('user', $where);
// limit the number of options
$comment = null;
if($ausercount <= MAX_USERS_PER_PAGE) {
$user_bulk_form->setAvailableUsersSQL($where);
} else {
$comment = get_string('toomanytoshow');
}
$user_bulk_form->setUserCount($ausercount, $comment);
// display the bulk user form
$user_bulk_form->display();
admin_externalpage_print_footer();