From 956e2e8a8c20870b928aad9923f28a47088f822b Mon Sep 17 00:00:00 2001 From: Sam Hemelryk Date: Tue, 14 Jan 2014 12:29:36 +1300 Subject: [PATCH] MDL-43675 navigation: courses branch is now recognised as expandable --- lib/ajax/getnavbranch.php | 8 ++++---- lib/navigationlib.php | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/ajax/getnavbranch.php b/lib/ajax/getnavbranch.php index 957d0a9bc70..457f8d98cac 100644 --- a/lib/ajax/getnavbranch.php +++ b/lib/ajax/getnavbranch.php @@ -112,16 +112,16 @@ try { $html = ob_get_contents(); ob_end_clean(); } catch (Exception $e) { - die('Error: '.$e->getMessage()); + throw new coding_exception('Error: '.$e->getMessage()); } // Check if the buffer contianed anything if it did ERROR! if (trim($html) !== '') { - die('Errors were encountered while producing the navigation branch'."\n\n\n".$html); + throw new coding_exception('Errors were encountered while producing the navigation branch'."\n\n\n".$html); } // Check that branch isn't empty... if it is ERROR! -if (empty($branch) || $branch->nodetype !== navigation_node::NODETYPE_BRANCH) { - die('No further information available for this branch'); +if (empty($branch) || ($branch->nodetype !== navigation_node::NODETYPE_BRANCH && !$branch->isexpandable)) { + throw new coding_exception('No further information available for this branch'); } // Prepare an XML converter for the branch diff --git a/lib/navigationlib.php b/lib/navigationlib.php index 4ae18b2cfed..06081c06d2e 100644 --- a/lib/navigationlib.php +++ b/lib/navigationlib.php @@ -2748,6 +2748,9 @@ class global_navigation_for_ajax extends global_navigation { $this->rootnodes['site'] = $this->add_course($SITE); $this->rootnodes['mycourses'] = $this->add(get_string('mycourses'), new moodle_url('/my'), self::TYPE_ROOTNODE, null, 'mycourses'); $this->rootnodes['courses'] = $this->add(get_string('courses'), null, self::TYPE_ROOTNODE, null, 'courses'); + // The courses branch is always displayed, and is always expandable (although may be empty). + // This mimicks what is done during {@link global_navigation::initialise()}. + $this->rootnodes['courses']->isexpandable = true; // Branchtype will be one of navigation_node::TYPE_* switch ($this->branchtype) {