MDLSITE-2455 Do not throw coding exception when the activity is not found
authorDavid Mudrák <david@moodle.com>
Tue, 27 Aug 2013 09:40:18 +0000 (11:40 +0200)
committerAparup Banerjee <aparup@moodle.com>
Fri, 8 Nov 2013 08:08:39 +0000 (16:08 +0800)
Under certain conditions, coding exception is thrown when fetching items from
the navigation bar. The patch prevents them. See more details in the tracker.

lib/navigationlib.php

index 79244ab..5320d8e 100644 (file)
@@ -1222,12 +1222,14 @@ class global_navigation extends navigation_node {
                 // Load the course sections into the page
                 $this->load_course_sections($course, $coursenode, null, $cm);
                 $activity = $coursenode->find($cm->id, navigation_node::TYPE_ACTIVITY);
-                // Finally load the cm specific navigaton information
-                $this->load_activity($cm, $course, $activity);
-                // Check if we have an active ndoe
-                if (!$activity->contains_active_node() && !$activity->search_for_active_node()) {
-                    // And make the activity node active.
-                    $activity->make_active();
+                if (!empty($activity)) {
+                    // Finally load the cm specific navigaton information
+                    $this->load_activity($cm, $course, $activity);
+                    // Check if we have an active ndoe
+                    if (!$activity->contains_active_node() && !$activity->search_for_active_node()) {
+                        // And make the activity node active.
+                        $activity->make_active();
+                    }
                 }
                 break;
             case CONTEXT_USER :