From bb900d139cc1f183cd9ea46aaa1be71e816dae2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20S=CC=8Ckoda?= Date: Thu, 27 Dec 2012 13:52:14 +0100 Subject: [PATCH] MDL-37105 prevent fatal error when category limit reached --- lib/navigationlib.php | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/navigationlib.php b/lib/navigationlib.php index 450f2664d71..e57b22c2e68 100644 --- a/lib/navigationlib.php +++ b/lib/navigationlib.php @@ -1663,19 +1663,21 @@ class global_navigation extends navigation_node { $categoryids[] = $category->key; } } - list($categoriessql, $params) = $DB->get_in_or_equal($categoryids, SQL_PARAMS_NAMED); - $params['limit'] = (!empty($CFG->navcourselimit))?$CFG->navcourselimit:20; - $sql = "SELECT cc.id, COUNT(c.id) AS coursecount - FROM {course_categories} cc - JOIN {course} c ON c.category = cc.id - WHERE cc.id {$categoriessql} - GROUP BY cc.id - HAVING COUNT(c.id) > :limit"; - $excessivecategories = $DB->get_records_sql($sql, $params); - foreach ($categories as &$category) { - if (array_key_exists($category->key, $excessivecategories) && !$this->can_add_more_courses_to_category($category)) { - $url = new moodle_url('/course/category.php', array('id'=>$category->key)); - $category->add(get_string('viewallcourses'), $url, self::TYPE_SETTING); + if ($categoryids) { + list($categoriessql, $params) = $DB->get_in_or_equal($categoryids, SQL_PARAMS_NAMED); + $params['limit'] = (!empty($CFG->navcourselimit))?$CFG->navcourselimit:20; + $sql = "SELECT cc.id, COUNT(c.id) AS coursecount + FROM {course_categories} cc + JOIN {course} c ON c.category = cc.id + WHERE cc.id {$categoriessql} + GROUP BY cc.id + HAVING COUNT(c.id) > :limit"; + $excessivecategories = $DB->get_records_sql($sql, $params); + foreach ($categories as &$category) { + if (array_key_exists($category->key, $excessivecategories) && !$this->can_add_more_courses_to_category($category)) { + $url = new moodle_url('/course/category.php', array('id'=>$category->key)); + $category->add(get_string('viewallcourses'), $url, self::TYPE_SETTING); + } } } }