original_string: protected function load_section_activities(navigation_node $sectionnode, $sectionnumber, array $activities, $course = null) {
          global $CFG, $SITE;
          // A static counter for JS function naming
          static $legacyonclickcounter = 0;
  
          $activitynodes = array();
          if (empty($activities)) {
              return $activitynodes;
          }
  
          if (!is_object($course)) {
              $activity = reset($activities);
              $courseid = $activity->course;
          } else {
              $courseid = $course->id;
          }
          $showactivities = ($courseid != $SITE->id || !empty($CFG->navshowfrontpagemods));
  
          foreach ($activities as $activity) {
              if ($activity->section != $sectionnumber) {
                  continue;
              }
              if ($activity->icon) {
                  $icon = new pix_icon($activity->icon, get_string('modulename', $activity->modname), $activity->iconcomponent);
              } else {
                  $icon = new pix_icon('icon', get_string('modulename', $activity->modname), $activity->modname);
              }
  
              // Prepare the default name and url for the node
              $activityname = format_string($activity->name, true, array('context' => context_module::instance($activity->id)));
              $action = new moodle_url($activity->url);
  
              // Check if the onclick property is set (puke!)
              if (!empty($activity->onclick)) {
                  // Increment the counter so that we have a unique number.
                  $legacyonclickcounter++;
                  // Generate the function name we will use
                  $functionname = 'legacy_activity_onclick_handler_'.$legacyonclickcounter;
                  $propogrationhandler = '';
                  // Check if we need to cancel propogation. Remember inline onclick
                  // events would return false if they wanted to prevent propogation and the
                  // default action.
                  if (strpos($activity->onclick, 'return false')) {
                      $propogrationhandler = 'e.halt();';
                  }
                  // Decode the onclick - it has already been encoded for display (puke)
                  $onclick = htmlspecialchars_decode($activity->onclick, ENT_QUOTES);
                  // Build the JS function the click event will call
                  $jscode = "function {$functionname}(e) { $propogrationhandler $onclick }";
                  $this->page->requires->js_amd_inline($jscode);
                  // Override the default url with the new action link
                  $action = new action_link($action, $activityname, new component_action('click', $functionname));
              }
  
              $activitynode = $sectionnode->add($activityname, $action, navigation_node::TYPE_ACTIVITY, null, $activity->id, $icon);
              $activitynode->title(get_string('modulename', $activity->modname));
              $activitynode->hidden = $activity->hidden;
              $activitynode->display = $showactivities && $activity->display;
              $activitynode->nodetype = $activity->nodetype;
              $activitynodes[$activity->id] = $activitynode;
          }
  
          return $activitynodes;
      }
code: protected function load_section_activities(navigation_node $sectionnode, $sectionnumber, array $activities, $course = null) {
          global $CFG, $SITE;
          // A static counter for JS function naming
          static $legacyonclickcounter = 0;
  
          $activitynodes = array();
          if (empty($activities)) {
              return $activitynodes;
          }
  
          if (!is_object($course)) {
              $activity = reset($activities);
              $courseid = $activity->course;
          } else {
              $courseid = $course->id;
          }
          $showactivities = ($courseid != $SITE->id || !empty($CFG->navshowfrontpagemods));
  
          foreach ($activities as $activity) {
              if ($activity->section != $sectionnumber) {
                  continue;
              }
              if ($activity->icon) {
                  $icon = new pix_icon($activity->icon, get_string('modulename', $activity->modname), $activity->iconcomponent);
              } else {
                  $icon = new pix_icon('icon', get_string('modulename', $activity->modname), $activity->modname);
              }
  
              // Prepare the default name and url for the node
              $activityname = format_string($activity->name, true, array('context' => context_module::instance($activity->id)));
              $action = new moodle_url($activity->url);
  
              // Check if the onclick property is set (puke!)
              if (!empty($activity->onclick)) {
                  // Increment the counter so that we have a unique number.
                  $legacyonclickcounter++;
                  // Generate the function name we will use
                  $functionname = 'legacy_activity_onclick_handler_'.$legacyonclickcounter;
                  $propogrationhandler = '';
                  // Check if we need to cancel propogation. Remember inline onclick
                  // events would return false if they wanted to prevent propogation and the
                  // default action.
                  if (strpos($activity->onclick, 'return false')) {
                      $propogrationhandler = 'e.halt();';
                  }
                  // Decode the onclick - it has already been encoded for display (puke)
                  $onclick = htmlspecialchars_decode($activity->onclick, ENT_QUOTES);
                  // Build the JS function the click event will call
                  $jscode = "function {$functionname}(e) { $propogrationhandler $onclick }";
                  $this->page->requires->js_amd_inline($jscode);
                  // Override the default url with the new action link
                  $action = new action_link($action, $activityname, new component_action('click', $functionname));
              }
  
              $activitynode = $sectionnode->add($activityname, $action, navigation_node::TYPE_ACTIVITY, null, $activity->id, $icon);
              $activitynode->title(get_string('modulename', $activity->modname));
              $activitynode->hidden = $activity->hidden;
              $activitynode->display = $showactivities && $activity->display;
              $activitynode->nodetype = $activity->nodetype;
              $activitynodes[$activity->id] = $activitynode;
          }
  
          return $activitynodes;
      }
code_tokens: protected function load_section_activities ( navigation_node $ sectionnode , $ sectionnumber , array $ activities , $ course = null ) { global $ CFG , $ SITE ; // A static counter for JS function naming static $ legacyonclickcounter = 0 ; $ activitynodes = array ( ) ; if ( empty ( $ activities ) ) { return $ activitynodes ; } if ( ! is_object ( $ course ) ) { $ activity = reset ( $ activities ) ; $ courseid = $ activity -> course ; } else { $ courseid = $ course -> id ; } $ showactivities = ( $ courseid != $ SITE -> id || ! empty ( $ CFG -> navshowfrontpagemods ) ) ; foreach ( $ activities as $ activity ) { if ( $ activity -> section != $ sectionnumber ) { continue ; } if ( $ activity -> icon ) { $ icon = new pix_icon ( $ activity -> icon , get_string ( 'modulename' , $ activity -> modname ) , $ activity -> iconcomponent ) ; } else { $ icon = new pix_icon ( 'icon' , get_string ( 'modulename' , $ activity -> modname ) , $ activity -> modname ) ; } // Prepare the default name and url for the node $ activityname = format_string ( $ activity -> name , true , array ( 'context' => context_module :: instance ( $ activity -> id ) ) ) ; $ action = new moodle_url ( $ activity -> url ) ; // Check if the onclick property is set (puke!) if ( ! empty ( $ activity -> onclick ) ) { // Increment the counter so that we have a unique number. $ legacyonclickcounter ++ ; // Generate the function name we will use $ functionname = 'legacy_activity_onclick_handler_' . $ legacyonclickcounter ; $ propogrationhandler = '' ; // Check if we need to cancel propogation. Remember inline onclick // events would return false if they wanted to prevent propogation and the // default action. if ( strpos ( $ activity -> onclick , 'return false' ) ) { $ propogrationhandler = 'e.halt();' ; } // Decode the onclick - it has already been encoded for display (puke) $ onclick = htmlspecialchars_decode ( $ activity -> onclick , ENT_QUOTES ) ; // Build the JS function the click event will call $ jscode = "function {$functionname}(e) { $propogrationhandler $onclick }" ; $ this -> page -> requires -> js_amd_inline ( $ jscode ) ; // Override the default url with the new action link $ action = new action_link ( $ action , $ activityname , new component_action ( 'click' , $ functionname ) ) ; } $ activitynode = $ sectionnode -> add ( $ activityname , $ action , navigation_node :: TYPE_ACTIVITY , null , $ activity -> id , $ icon ) ; $ activitynode -> title ( get_string ( 'modulename' , $ activity -> modname ) ) ; $ activitynode -> hidden = $ activity -> hidden ; $ activitynode -> display = $ showactivities && $ activity -> display ; $ activitynode -> nodetype = $ activity -> nodetype ; $ activitynodes [ $ activity -> id ] = $ activitynode ; } return $ activitynodes ; }
docstring: Loads all of the activities for a section into the navigation structure.
  
  @param navigation_node $sectionnode
  @param int $sectionnumber
  @param array $activities An array of activites as returned by {@link global_navigation::generate_sections_and_activities()}
  @param stdClass $course The course object the section and activities relate to.
  @return array Array of activity nodes
docstring_tokens: Loads all of the activities for a section into the navigation structure .