Merge branch 'MDL-40297_24' of git://github.com/stronk7/moodle into MOODLE_24_STABLE
This commit is contained in:
+41
-7
@@ -2880,20 +2880,49 @@ class global_navigation_for_ajax extends global_navigation {
|
||||
$this->add_category($category, $this, $nodetype);
|
||||
$basecategory = $this->addedcategories[$category->id];
|
||||
} else {
|
||||
$subcategories[] = $category;
|
||||
$subcategories[$category->id] = $category;
|
||||
}
|
||||
}
|
||||
$categories->close();
|
||||
|
||||
if (!is_null($basecategory)) {
|
||||
foreach ($subcategories as $category) {
|
||||
$this->add_category($category, $basecategory, $nodetype);
|
||||
}
|
||||
}
|
||||
|
||||
// If category is shown in MyHome then only show enrolled courses, else show all courses.
|
||||
// If category is shown in MyHome then only show enrolled courses and hide empty subcategories,
|
||||
// else show all courses.
|
||||
if ($nodetype === self::TYPE_MY_CATEGORY) {
|
||||
$courses = enrol_get_my_courses();
|
||||
$categoryids = array();
|
||||
|
||||
// Only search for categories if basecategory was found.
|
||||
if (!is_null($basecategory)) {
|
||||
// Get course parent category ids.
|
||||
foreach ($courses as $course) {
|
||||
$categoryids[] = $course->category;
|
||||
}
|
||||
|
||||
// Get a unique list of category ids which a part of the path
|
||||
// to user's courses.
|
||||
$coursesubcategories = array();
|
||||
$addedsubcategories = array();
|
||||
|
||||
list($sql, $params) = $DB->get_in_or_equal($categoryids);
|
||||
$categories = $DB->get_recordset_select('course_categories', 'id '.$sql, $params, 'sortorder, id', 'id, path');
|
||||
|
||||
foreach ($categories as $category){
|
||||
$coursesubcategories = array_merge($coursesubcategories, explode('/', trim($category->path, "/")));
|
||||
}
|
||||
$coursesubcategories = array_unique($coursesubcategories);
|
||||
|
||||
// Only add a subcategory if it is part of the path to user's course and
|
||||
// wasn't already added.
|
||||
foreach ($subcategories as $subid => $subcategory) {
|
||||
if (in_array($subid, $coursesubcategories) &&
|
||||
!in_array($subid, $addedsubcategories)) {
|
||||
$this->add_category($subcategory, $basecategory, $nodetype);
|
||||
$addedsubcategories[] = $subid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($courses as $course) {
|
||||
// Add course if it's in category.
|
||||
if (in_array($course->category, $categorylist)) {
|
||||
@@ -2901,6 +2930,11 @@ class global_navigation_for_ajax extends global_navigation {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!is_null($basecategory)) {
|
||||
foreach ($subcategories as $key=>$category) {
|
||||
$this->add_category($category, $basecategory, $nodetype);
|
||||
}
|
||||
}
|
||||
$courses = $DB->get_recordset('course', array('category' => $categoryid), 'sortorder', '*' , 0, $limit);
|
||||
foreach ($courses as $course) {
|
||||
$this->add_course($course);
|
||||
|
||||
Reference in New Issue
Block a user