]> git.mjollnir.org Git - moodle.git/commitdiff
Merged from MOODLE_14_STABLE: Recent course/scale optimisations
authormjollnir_ <mjollnir_>
Mon, 22 Nov 2004 05:22:20 +0000 (05:22 +0000)
committermjollnir_ <mjollnir_>
Mon, 22 Nov 2004 05:22:20 +0000 (05:22 +0000)
course/scales.php
lib/moodlelib.php

index e4c2a90d2cd0e16dbff69b833d99e75eefcefda7..88ff5c2129a4be71c73804a830038f4ed50ce550 100644 (file)
@@ -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;
             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",
             
         //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);
         }
 
         //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);
         }
 
         //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);
         }
             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) {
index 2d43ecfdaadeab7d57694fa104f60a2bfba11e01..fc0218d83eb1484b29b9be71628d99c56b32b620 100644 (file)
@@ -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);
             }