From efd6ef46659b9d4641a8058553c33b246c48e583 Mon Sep 17 00:00:00 2001 From: martinlanghoff Date: Fri, 19 Jan 2007 05:18:30 +0000 Subject: [PATCH] mnet: fixup remote enrolment handling pages - WIP part 2 --- admin/mnet/enr_course_enrol.html | 16 +++--- admin/mnet/enr_course_enrol.php | 86 ++++++++++++++++++++------------ 2 files changed, 61 insertions(+), 41 deletions(-) diff --git a/admin/mnet/enr_course_enrol.html b/admin/mnet/enr_course_enrol.html index 7941d204e4..8b92188ffd 100755 --- a/admin/mnet/enr_course_enrol.html +++ b/admin/mnet/enr_course_enrol.html @@ -21,11 +21,9 @@ getElementById('assignform').remove.disabled=false; getElementById('assignform').addselect.selectedIndex=-1;"> enroltype == 'mnet') { - $fullname = fullname($enrolleduser, true); - echo "\n"; - } + foreach ($mnetenrolledusers as $enrolleduser) { + $fullname = fullname($enrolleduser, true); + echo "\n"; } ?> @@ -93,11 +91,9 @@ :
enroltype != 'mnet') { - $fullname = fullname($enrolleduser, true); - echo $fullname.', '.$enrolleduser->email."
\n"; - } + foreach ($remtenrolledusers as $enrolleduser) { + $fullname = fullname($enrolleduser, true); + echo s($fullname) .', ('.s($enrolleduser->rolename) . ') '.s($enrolleduser->enroltype)."
\n"; } ?> diff --git a/admin/mnet/enr_course_enrol.php b/admin/mnet/enr_course_enrol.php index 93577125f1..c958434303 100644 --- a/admin/mnet/enr_course_enrol.php +++ b/admin/mnet/enr_course_enrol.php @@ -151,14 +151,18 @@ delete_record('mnet_enrol_assignments', 'id', $user->enrolid); } } + unset($enrolledusers); - + // Read about our remote enrolments in 2 sets + // first, get the remote enrolments done via enrol/mnet $mnetenrolledusers + // second, get the remote enrolments done with other plugins $remtenrolledusers + // NOTE: both arrays are keyed on the userid! $sql = " SELECT u.id, u.firstname, u.lastname, - u.email, + a.rolename, a.enroltype, a.courseid FROM @@ -167,6 +171,7 @@ WHERE a.userid = u.id AND a.courseid={$courseid} AND + a.enroltype = 'mnet' AND u.deleted = 0 AND u.confirmed = 1 AND u.mnethostid = {$CFG->mnet_localhost_id} @@ -174,18 +179,42 @@ u.firstname ASC, u.lastname ASC"; - if (!$enrolledusers = get_records_sql($sql)) { - $enrolledusers = array(); + if (!$mnetenrolledusers = get_records_sql($sql)) { + $mnetenrolledusers = array(); } + $sql = " + SELECT + u.id, + u.firstname, + u.lastname, + a.rolename, + a.enroltype, + a.courseid + FROM + {$CFG->prefix}user u, + {$CFG->prefix}mnet_enrol_assignments a + WHERE + a.userid = u.id AND + a.courseid={$courseid} AND + a.enroltype != 'mnet' AND + u.deleted = 0 AND + u.confirmed = 1 AND + u.mnethostid = {$CFG->mnet_localhost_id} + ORDER BY + u.firstname ASC, + u.lastname ASC"; - $excludeids = ' '; - foreach($enrolledusers as $user) { - $excludeids .= "$user->id, "; + if (!$remtenrolledusers = get_records_sql($sql)) { + $remtenrolledusers = array(); } - $select = 'AND u.id NOT IN ( 0, ' .substr($excludeids, 0, -2) .') '; - $searchtext = trim($searchtext); $select = ''; + $exclude = array_merge(array_keys($mnetenrolledusers), array_keys($remtenrolledusers)); + $exclude[] = 0; + $select = 'AND u.username!=\'guest\' AND u.id NOT IN ('. join(',',$exclude) .') '; + unset($exclude); + + $searchtext = trim($searchtext); if ($searchtext !== '') { // Search for a subset of remaining users $LIKE = sql_ilike(); @@ -194,10 +223,14 @@ $select .= " AND ($FULLNAME $LIKE '%$searchtext%' OR email $LIKE '%$searchtext%') "; } - $availableusers = get_recordset_sql('SELECT id, firstname, lastname, email - FROM '.$CFG->prefix.'user - WHERE deleted = 0 AND confirmed = 1 AND mnethostid = '.$CFG->mnet_localhost_id.' '.$select.' - ORDER BY lastname ASC, firstname ASC', 0, MAX_USERS_PER_PAGE); + $sql = ('SELECT id, firstname, lastname, email + FROM '.$CFG->prefix.'user u + WHERE deleted = 0 AND confirmed = 1 + AND mnethostid = '.$CFG->mnet_localhost_id.' ' + .$select + .'ORDER BY lastname ASC, firstname ASC'); + + $availableusers = get_recordset_sql($sql, 0, MAX_USERS_PER_PAGE); @@ -220,32 +253,23 @@ $strsearchresults = get_string('searchresults'); admin_externalpage_print_header($adminroot); -print_simple_box_start("center", "80%"); - -print_simple_box_start("center", "60%", '', 5, 'informationbox'); print_string('enrollingincourse', 'mnet', array(s($course->shortname), s($mnet_peer->name))); print_string("description", "enrol_mnet"); -print_simple_box_end(); echo "
"; - print_simple_box_start('center'); - include(dirname(__FILE__).'/enr_course_enrol.html'); - print_simple_box_end(); +include(dirname(__FILE__).'/enr_course_enrol.html'); - if (!empty($errors)) { - $msg = '

'; - foreach ($errors as $e) { - $msg .= $e.'
'; - } - $msg .= '

'; - print_simple_box_start('center'); - notify($msg); - print_simple_box_end(); - } +if (!empty($errors)) { + $msg = '

'; + foreach ($errors as $e) { + $msg .= $e.'
'; + } + $msg .= '

'; + notify($msg); +} -print_simple_box_end(); admin_externalpage_print_footer($adminroot); ?> -- 2.39.5