original_string: public function course_section_cm_list($course, $section, $sectionreturn = null, $displayoptions = array()) {
          global $USER;
  
          $output = '';
          $modinfo = get_fast_modinfo($course);
          if (is_object($section)) {
              $section = $modinfo->get_section_info($section->section);
          } else {
              $section = $modinfo->get_section_info($section);
          }
          $completioninfo = new completion_info($course);
  
          // check if we are currently in the process of moving a module with JavaScript disabled
          $ismoving = $this->page->user_is_editing() && ismoving($course->id);
          if ($ismoving) {
              $movingpix = new pix_icon('movehere', get_string('movehere'), 'moodle', array('class' => 'movetarget'));
              $strmovefull = strip_tags(get_string("movefull", "", "'$USER->activitycopyname'"));
          }
  
          // Get the list of modules visible to user (excluding the module being moved if there is one)
          $moduleshtml = array();
          if (!empty($modinfo->sections[$section->section])) {
              foreach ($modinfo->sections[$section->section] as $modnumber) {
                  $mod = $modinfo->cms[$modnumber];
  
                  if ($ismoving and $mod->id == $USER->activitycopy) {
                      // do not display moving mod
                      continue;
                  }
  
                  if ($modulehtml = $this->course_section_cm_list_item($course,
                          $completioninfo, $mod, $sectionreturn, $displayoptions)) {
                      $moduleshtml[$modnumber] = $modulehtml;
                  }
              }
          }
  
          $sectionoutput = '';
          if (!empty($moduleshtml) || $ismoving) {
              foreach ($moduleshtml as $modnumber => $modulehtml) {
                  if ($ismoving) {
                      $movingurl = new moodle_url('/course/mod.php', array('moveto' => $modnumber, 'sesskey' => sesskey()));
                      $sectionoutput .= html_writer::tag('li',
                              html_writer::link($movingurl, $this->output->render($movingpix), array('title' => $strmovefull)),
                              array('class' => 'movehere'));
                  }
  
                  $sectionoutput .= $modulehtml;
              }
  
              if ($ismoving) {
                  $movingurl = new moodle_url('/course/mod.php', array('movetosection' => $section->id, 'sesskey' => sesskey()));
                  $sectionoutput .= html_writer::tag('li',
                          html_writer::link($movingurl, $this->output->render($movingpix), array('title' => $strmovefull)),
                          array('class' => 'movehere'));
              }
          }
  
          // Always output the section module list.
          $output .= html_writer::tag('ul', $sectionoutput, array('class' => 'section img-text'));
  
          return $output;
      }
code: public function course_section_cm_list($course, $section, $sectionreturn = null, $displayoptions = array()) {
          global $USER;
  
          $output = '';
          $modinfo = get_fast_modinfo($course);
          if (is_object($section)) {
              $section = $modinfo->get_section_info($section->section);
          } else {
              $section = $modinfo->get_section_info($section);
          }
          $completioninfo = new completion_info($course);
  
          // check if we are currently in the process of moving a module with JavaScript disabled
          $ismoving = $this->page->user_is_editing() && ismoving($course->id);
          if ($ismoving) {
              $movingpix = new pix_icon('movehere', get_string('movehere'), 'moodle', array('class' => 'movetarget'));
              $strmovefull = strip_tags(get_string("movefull", "", "'$USER->activitycopyname'"));
          }
  
          // Get the list of modules visible to user (excluding the module being moved if there is one)
          $moduleshtml = array();
          if (!empty($modinfo->sections[$section->section])) {
              foreach ($modinfo->sections[$section->section] as $modnumber) {
                  $mod = $modinfo->cms[$modnumber];
  
                  if ($ismoving and $mod->id == $USER->activitycopy) {
                      // do not display moving mod
                      continue;
                  }
  
                  if ($modulehtml = $this->course_section_cm_list_item($course,
                          $completioninfo, $mod, $sectionreturn, $displayoptions)) {
                      $moduleshtml[$modnumber] = $modulehtml;
                  }
              }
          }
  
          $sectionoutput = '';
          if (!empty($moduleshtml) || $ismoving) {
              foreach ($moduleshtml as $modnumber => $modulehtml) {
                  if ($ismoving) {
                      $movingurl = new moodle_url('/course/mod.php', array('moveto' => $modnumber, 'sesskey' => sesskey()));
                      $sectionoutput .= html_writer::tag('li',
                              html_writer::link($movingurl, $this->output->render($movingpix), array('title' => $strmovefull)),
                              array('class' => 'movehere'));
                  }
  
                  $sectionoutput .= $modulehtml;
              }
  
              if ($ismoving) {
                  $movingurl = new moodle_url('/course/mod.php', array('movetosection' => $section->id, 'sesskey' => sesskey()));
                  $sectionoutput .= html_writer::tag('li',
                          html_writer::link($movingurl, $this->output->render($movingpix), array('title' => $strmovefull)),
                          array('class' => 'movehere'));
              }
          }
  
          // Always output the section module list.
          $output .= html_writer::tag('ul', $sectionoutput, array('class' => 'section img-text'));
  
          return $output;
      }
code_tokens: public function course_section_cm_list ( $ course , $ section , $ sectionreturn = null , $ displayoptions = array ( ) ) { global $ USER ; $ output = '' ; $ modinfo = get_fast_modinfo ( $ course ) ; if ( is_object ( $ section ) ) { $ section = $ modinfo -> get_section_info ( $ section -> section ) ; } else { $ section = $ modinfo -> get_section_info ( $ section ) ; } $ completioninfo = new completion_info ( $ course ) ; // check if we are currently in the process of moving a module with JavaScript disabled $ ismoving = $ this -> page -> user_is_editing ( ) && ismoving ( $ course -> id ) ; if ( $ ismoving ) { $ movingpix = new pix_icon ( 'movehere' , get_string ( 'movehere' ) , 'moodle' , array ( 'class' => 'movetarget' ) ) ; $ strmovefull = strip_tags ( get_string ( "movefull" , "" , "'$USER->activitycopyname'" ) ) ; } // Get the list of modules visible to user (excluding the module being moved if there is one) $ moduleshtml = array ( ) ; if ( ! empty ( $ modinfo -> sections [ $ section -> section ] ) ) { foreach ( $ modinfo -> sections [ $ section -> section ] as $ modnumber ) { $ mod = $ modinfo -> cms [ $ modnumber ] ; if ( $ ismoving and $ mod -> id == $ USER -> activitycopy ) { // do not display moving mod continue ; } if ( $ modulehtml = $ this -> course_section_cm_list_item ( $ course , $ completioninfo , $ mod , $ sectionreturn , $ displayoptions ) ) { $ moduleshtml [ $ modnumber ] = $ modulehtml ; } } } $ sectionoutput = '' ; if ( ! empty ( $ moduleshtml ) || $ ismoving ) { foreach ( $ moduleshtml as $ modnumber => $ modulehtml ) { if ( $ ismoving ) { $ movingurl = new moodle_url ( '/course/mod.php' , array ( 'moveto' => $ modnumber , 'sesskey' => sesskey ( ) ) ) ; $ sectionoutput .= html_writer :: tag ( 'li' , html_writer :: link ( $ movingurl , $ this -> output -> render ( $ movingpix ) , array ( 'title' => $ strmovefull ) ) , array ( 'class' => 'movehere' ) ) ; } $ sectionoutput .= $ modulehtml ; } if ( $ ismoving ) { $ movingurl = new moodle_url ( '/course/mod.php' , array ( 'movetosection' => $ section -> id , 'sesskey' => sesskey ( ) ) ) ; $ sectionoutput .= html_writer :: tag ( 'li' , html_writer :: link ( $ movingurl , $ this -> output -> render ( $ movingpix ) , array ( 'title' => $ strmovefull ) ) , array ( 'class' => 'movehere' ) ) ; } } // Always output the section module list. $ output .= html_writer :: tag ( 'ul' , $ sectionoutput , array ( 'class' => 'section img-text' ) ) ; return $ output ; }
docstring: Renders HTML to display a list of course modules in a course section
  Also displays "move here" controls in Javascript-disabled mode
  
  This function calls {@link core_course_renderer::course_section_cm()}
  
  @param stdClass $course course object
  @param int|stdClass|section_info $section relative section number or section object
  @param int $sectionreturn section number to return to
  @param int $displayoptions
  @return void
docstring_tokens: Renders HTML to display a list of course modules in a course section Also displays move here controls in Javascript - disabled mode