diff -Naur moodle-1.9.4/course/lib.php rev-6/course/lib.php --- moodle-1.9.4/course/lib.php 2009-01-14 15:06:51.000000000 -0800 +++ rev-6/course/lib.php 2009-02-13 11:33:48.000000000 -0800 @@ -1814,9 +1814,12 @@ } echo "\n\n".''; - - $courses = get_courses($category->id, 'c.sortorder ASC', 'c.id,c.sortorder,c.visible,c.fullname,c.shortname,c.password,c.summary,c.guest,c.cost,c.currency'); + if ($showcourses and $coursecount) { + + // Memory/speed optimization + $courses = get_courses($category->id, 'c.sortorder ASC', 'c.id,c.sortorder,c.visible,c.fullname,c.shortname,c.password,c.summary,c.guest,c.cost,c.currency'); + // End Mod echo ''; @@ -1870,6 +1873,10 @@ } } } else { + + // Memory/speed optimization + $coursecount = get_course_count($category->id); + // End Mod echo ''; @@ -1884,9 +1891,11 @@ echo ''. format_string($category->name).''; echo ''; echo ''; } echo '
'; - if (count($courses)) { - echo count($courses); + // Memory/speed optimization + if ($coursecount) { + echo($coursecount); } + // End Mod echo '
'; diff -Naur moodle-1.9.4/lib/datalib.php rev-6/lib/datalib.php --- moodle-1.9.4/lib/datalib.php 2009-01-14 15:06:56.000000000 -0800 +++ rev-6/lib/datalib.php 2009-02-13 11:33:48.000000000 -0800 @@ -469,6 +469,43 @@ } + + +/** + * Returns number of courses + * + * Returns number of courses, for whole site, or category + * + * @param mixed categoryid Id of category, or 'all' for whole site + * + */ +function get_course_count($categoryid="all") { + + global $USER, $CFG; + + if ($categoryid != "all" && is_numeric($categoryid)) { + $categoryselect = "WHERE c.category = '$categoryid'"; + } else { + $categoryselect = ""; + } + + // pull out all course matching the cat + if ($coursecount = get_records_sql("SELECT COUNT(c.id) AS count + FROM {$CFG->prefix}course c + JOIN {$CFG->prefix}context ctx + ON (c.id = ctx.instanceid + AND ctx.contextlevel=".CONTEXT_COURSE.") + $categoryselect")) { + + $coursecount = array_keys($coursecount); + return $coursecount[0]; + } + return false; +} + + + + /** * Returns list of courses, for whole site, or category *