From: mjollnir_ Date: Mon, 22 Nov 2004 05:22:20 +0000 (+0000) Subject: Merged from MOODLE_14_STABLE: Recent course/scale optimisations X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=ed040b1f2df79744e40892742fe7faa72a0b466a;p=moodle.git Merged from MOODLE_14_STABLE: Recent course/scale optimisations --- diff --git a/course/scales.php b/course/scales.php index e4c2a90d2c..88ff5c2129 100644 --- a/course/scales.php +++ b/course/scales.php @@ -39,6 +39,9 @@ $stroptions = get_string("action"); $strtype = get_string("group"); + /// init this here so we can pass it by reference to every call to site_scale_used to avoid getting the courses out of the db over and over again + $courses = array(); + /// If scale data is being submitted, then save it and continue $errors = NULL; @@ -98,8 +101,8 @@ error("Scale ID was incorrect"); } - $scales_course_uses = course_scale_used($course->id,$scale->id); - $scales_site_uses = site_scale_used($scale->id); + // $scales_course_uses = course_scale_used($course->id,$scale->id); + // $scales_site_uses = site_scale_used($scale->id,$courses); $scalemenu = make_menu_from_list($scale->scale); print_header("$course->shortname: $strscales", "$course->fullname", @@ -146,7 +149,7 @@ //Calculate the uses if ($scale->courseid == 0) { - $scale_uses = site_scale_used($scale->id); + $scale_uses = site_scale_used($scale->id,$courses); } else { $scale_uses = course_scale_used($course->id,$scale->id); } @@ -246,7 +249,7 @@ //Calculate the uses if ($scale->courseid == 0) { - $scale_uses = site_scale_used($scale->id); + $scale_uses = site_scale_used($scale->id,$courses); } else { $scale_uses = course_scale_used($course->id,$scale->id); } @@ -279,7 +282,7 @@ //Calculate the uses if ($scale->courseid == 0) { - $scale_uses = site_scale_used($scale->id); + $scale_uses = site_scale_used($scale->id,$courses); } else { $scale_uses = course_scale_used($course->id,$scale->id); } @@ -440,7 +443,7 @@ if (!empty($scale->courseid)) { $scales_uses = course_scale_used($course->id,$scale->id); } else { - $scales_uses = site_scale_used($scale->id); + $scales_uses = site_scale_used($scale->id,$courses); } $line[] = $scales_uses; if ($incustom) { diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 2d43ecfdaa..fc0218d83e 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -4185,14 +4185,18 @@ function course_scale_used($courseid, $scaleid) { * @return int * @todo Finish documenting this function. Is return type correct? */ -function site_scale_used($scaleid) { +function site_scale_used($scaleid,&$courses) { global $CFG; $return = 0; + if (!is_array($courses) || count($courses) == 0) { + $courses = get_courses("all",false,"c.id,c.shortname"); + } + if (!empty($scaleid)) { - if ($courses = get_courses()) { + if (is_array($courses) && count($courses) > 0) { foreach ($courses as $course) { $return += course_scale_used($course->id,$scaleid); }