get_numusers
函式,增加參數 $context
傳入 course context object,若沒傳入,則使用目前的課程 context。
[root@dywang report]# diff -uN ../../../moodle23.bak/grade/report/lib.php lib.php --- ../../../moodle23.bak/grade/report/lib.php 2012-06-26 01:14:18.000000000 +0800 +++ lib.php 2019-06-24 20:29:46.146863831 +0800 @@ -270,9 +270,12 @@ * @param boolean $groups include groups limit * @return int Count of users */ - public function get_numusers($groups=true) { + public function get_numusers($groups=true,$context) { global $CFG, $DB; - + $arr = (array)$context; + if (empty($arr)) { + $context = clone $this->context; + } $groupsql = ""; $groupwheresql = ""; @@ -280,7 +283,7 @@ list($gradebookrolessql, $gradebookrolesparams) = $DB->get_in_or_equal(explode(',', $this->gradebookroles), SQL_PARAMS_NAMED, 'grbr0'); //limit to users with an active enrollment - list($enrolledsql, $enrolledparams) = get_enrolled_sql($this->context); + list($enrolledsql, $enrolledparams) = get_enrolled_sql($context); $params = array_merge($gradebookrolesparams, $enrolledparams); @@ -300,7 +303,7 @@ WHERE ra.roleid $gradebookrolessql AND u.deleted = 0 $groupwheresql - AND ra.contextid ".get_related_contexts_string($this->context); + AND ra.contextid ".get_related_contexts_string($context); return $DB->count_records_sql($countsql, $params); }
get_numusers
函式,且傳入課程的 $context
。
[root@dywang report]# diff -uN ../../../moodle23.bak/grade/report/overview/lib.php overview/lib.php --- ../../../moodle23.bak/grade/report/overview/lib.php 2012-06-26 01:14:18.000000000 +0800 +++ overview/lib.php 2019-06-24 20:33:38.035843359 +0800 @@ -115,7 +115,6 @@ // MDL-11679, only show user's courses instead of all courses if ($courses = enrol_get_users_courses($this->user->id, false, 'id, shortname, showgrades')) { - $numusers = $this->get_numusers(false); foreach ($courses as $course) { if (!$course->showgrades) { @@ -123,6 +122,7 @@ } $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id); + $numusers = $this->get_numusers(false, $coursecontext); if (!$course->visible && !has_capability('moodle/course:viewhiddencourses', $coursecontext)) { // The course is hidden and the user isn't allowed to see it