commit e5c8d4d137eb6a34fdba05a6e93c34e6a9c19b15
Author: Jonathon Fowler <fowlerj@usq.edu.au>
Date:   Tue Nov 29 17:00:26 2011 +1000

    add a hook for local plugins to extend the course settings navigation tree

diff --git a/lib/navigationlib.php b/lib/navigationlib.php
index 82a672e..a7b37f2 100644
--- a/lib/navigationlib.php
+++ b/lib/navigationlib.php
@@ -3237,6 +3237,18 @@ class settings_navigation extends navigation_node {
             $coursenode->add(get_string('courselegacyfiles'), $url, self::TYPE_SETTING, null, 'coursefiles', new pix_icon('i/files', ''));
         }
 
+        // Give the local plugins a chance to include some navigation if they want.
+        foreach (get_list_of_plugins('local') as $plugin) {
+            if (!file_exists($CFG->dirroot.'/local/'.$plugin.'/lib.php')) {
+                continue;
+            }
+            require_once($CFG->dirroot.'/local/'.$plugin.'/lib.php');
+            $function = $plugin.'_extends_course_settings_navigation';
+            if (function_exists($function)) {
+                $function($coursenode, $coursecontext);
+            }
+        }
+
         // Switch roles
         $roles = array();
         $assumedrole = $this->in_alternative_role();
