From: martinlanghoff Date: Wed, 19 Sep 2007 07:04:10 +0000 (+0000) Subject: datalib: get_my_courses() - some fixes to the data we return X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=aeb3916b7a0e0470d9492e5a9bbeecb9bc82cfc4;p=moodle.git 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 ;-) --- diff --git a/lib/accesslib.php b/lib/accesslib.php index 903266c6bd..95bda1938f 100755 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -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; diff --git a/lib/datalib.php b/lib/datalib.php index c8f3370563..ec610478df 100644 --- a/lib/datalib.php +++ b/lib/datalib.php @@ -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; } /**