From 49d85b7cfab1062acde26a490389c65d2454cfcd Mon Sep 17 00:00:00 2001 From: Sam Hemelryk Date: Wed, 13 Jul 2011 13:39:29 +0800 Subject: [PATCH] MDL-28184 navigation: Tidied up handling of coursenode when adding course essentials --- lib/navigationlib.php | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/navigationlib.php b/lib/navigationlib.php index a33ea6d75db..568dc2a7e79 100644 --- a/lib/navigationlib.php +++ b/lib/navigationlib.php @@ -1040,13 +1040,17 @@ class global_navigation extends navigation_node { // Load the course associated with the page into the navigation $coursenode = $this->load_course($course); + // If the course wasn't added then don't try going any further. + if (!$coursenode) { + $canviewcourseprofile = false; + break; + } + // If the user is not enrolled then we only want to show the // course node and not populate it. $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id); if (!can_access_course($coursecontext)) { - if ($coursenode) { - $coursenode->make_active(); - } + $coursenode->make_active(); $canviewcourseprofile = false; break; } @@ -1099,6 +1103,13 @@ class global_navigation extends navigation_node { if ($course->id != SITEID) { // Load the course associated with the user into the navigation $coursenode = $this->load_course($course); + + // If the course wasn't added then don't try going any further. + if (!$coursenode) { + $canviewcourseprofile = false; + break; + } + // If the user is not enrolled then we only want to show the // course node and not populate it. $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id); @@ -1994,14 +2005,14 @@ class global_navigation extends navigation_node { * @param stdClass $course * @return bool */ - public function add_course_essentials(navigation_node $coursenode, stdClass $course) { + public function add_course_essentials($coursenode, stdClass $course) { global $CFG; if ($course->id == SITEID) { return $this->add_front_page_course_essentials($coursenode, $course); } - if ($coursenode == false || $coursenode->get('participants', navigation_node::TYPE_CONTAINER)) { + if ($coursenode == false || !($coursenode instanceof navigation_node) || $coursenode->get('participants', navigation_node::TYPE_CONTAINER)) { return true; }