datalib: get_my_courses() - some fixes to the data we return

strangely, get_my_courses() is expected to return the
array keyed on id, which messes up the sorting

So let's do it ;-)
This commit is contained in:
martinlanghoff 2007-09-19 07:04:10 +00:00
parent e1d5e5c181
commit aeb3916b7a
2 changed files with 10 additions and 6 deletions

View File

@ -1796,8 +1796,6 @@ function get_user_access_bycontext($userid, $context, $acc=NULL) {
function load_all_capabilities() {
global $USER,$CFG;
unset($USER->mycourses); // Reset a cache used by get_my_courses
static $defcaps;
$base = '/'.SYSCONTEXTID;

View File

@ -624,15 +624,21 @@ function get_my_courses($userid, $sort='visible DESC,sortorder ASC', $fields=NUL
}
if ($userid === $USER->id && isset($USER->access)) {
return get_courses_bycap_fromsess('moodle/course:view', $USER->access,
$doanything, $sort, $fields,
$limit);
$accessinfo = $USER->access;
} else {
$accessinfo = get_user_access_sitewide($userid);
return get_courses_bycap_fromsess('moodle/course:view', $accessinfo,
}
$courses = get_courses_bycap_fromsess('moodle/course:view', $accessinfo,
$doanything, $sort, $fields,
$limit);
// strangely, get_my_courses() is expected to return the
// array keyed on id, which messes up the sorting
$kcourses = array();
$cc = count($courses);
for ($n=0; $n<$cc; $n++) {
$kcourses[$courses[$n]->id] = $courses[$n];
}
return $kcourses;
}
/**