original_string: public static function build_tree($user, $iscurrentuser, $course = null) {
          global $CFG;
          $tree = new tree();
  
          // Add core nodes.
  
          require_once($CFG->libdir . "/myprofilelib.php");
          core_myprofile_navigation($tree, $user, $iscurrentuser, $course);
  
          // Core components.
          $components = \core_component::get_core_subsystems();
          foreach ($components as $component => $directory) {
              if (empty($directory)) {
                  continue;
              }
              $file = $directory . "/lib.php";
              if (is_readable($file)) {
                  require_once($file);
                  $function = "core_" . $component . "_myprofile_navigation";
                  if (function_exists($function)) {
                      $function($tree, $user, $iscurrentuser, $course);
                  }
              }
          }
  
          // Plugins.
          $pluginswithfunction = get_plugins_with_function('myprofile_navigation', 'lib.php');
          foreach ($pluginswithfunction as $plugins) {
              foreach ($plugins as $function) {
                  $function($tree, $user, $iscurrentuser, $course);
              }
          }
  
          $tree->sort_categories();
          return $tree;
      }
code: public static function build_tree($user, $iscurrentuser, $course = null) {
          global $CFG;
          $tree = new tree();
  
          // Add core nodes.
  
          require_once($CFG->libdir . "/myprofilelib.php");
          core_myprofile_navigation($tree, $user, $iscurrentuser, $course);
  
          // Core components.
          $components = \core_component::get_core_subsystems();
          foreach ($components as $component => $directory) {
              if (empty($directory)) {
                  continue;
              }
              $file = $directory . "/lib.php";
              if (is_readable($file)) {
                  require_once($file);
                  $function = "core_" . $component . "_myprofile_navigation";
                  if (function_exists($function)) {
                      $function($tree, $user, $iscurrentuser, $course);
                  }
              }
          }
  
          // Plugins.
          $pluginswithfunction = get_plugins_with_function('myprofile_navigation', 'lib.php');
          foreach ($pluginswithfunction as $plugins) {
              foreach ($plugins as $function) {
                  $function($tree, $user, $iscurrentuser, $course);
              }
          }
  
          $tree->sort_categories();
          return $tree;
      }
code_tokens: public static function build_tree ( $ user , $ iscurrentuser , $ course = null ) { global $ CFG ; $ tree = new tree ( ) ; // Add core nodes. require_once ( $ CFG -> libdir . "/myprofilelib.php" ) ; core_myprofile_navigation ( $ tree , $ user , $ iscurrentuser , $ course ) ; // Core components. $ components = \ core_component :: get_core_subsystems ( ) ; foreach ( $ components as $ component => $ directory ) { if ( empty ( $ directory ) ) { continue ; } $ file = $ directory . "/lib.php" ; if ( is_readable ( $ file ) ) { require_once ( $ file ) ; $ function = "core_" . $ component . "_myprofile_navigation" ; if ( function_exists ( $ function ) ) { $ function ( $ tree , $ user , $ iscurrentuser , $ course ) ; } } } // Plugins. $ pluginswithfunction = get_plugins_with_function ( 'myprofile_navigation' , 'lib.php' ) ; foreach ( $ pluginswithfunction as $ plugins ) { foreach ( $ plugins as $ function ) { $ function ( $ tree , $ user , $ iscurrentuser , $ course ) ; } } $ tree -> sort_categories ( ) ; return $ tree ; }
docstring: Parse all callbacks and builds the tree.
  
  @param integer   $user ID of the user for which the profile is displayed.
  @param bool      $iscurrentuser true if the profile being viewed is of current user, else false.
  @param \stdClass $course Course object
  
  @return tree Fully build tree to be rendered on my profile page.
docstring_tokens: Parse all callbacks and builds the tree .