original_string: private function get_move_discussion_html() : ?string {
          global $DB;
  
          $forum = $this->forum;
          $discussion = $this->discussion;
          $courseid = $forum->get_course_id();
  
          // Popup menu to move discussions to other forums. The discussion in a
          // single discussion forum can't be moved.
          $modinfo = get_fast_modinfo($courseid);
          if (isset($modinfo->instances['forum'])) {
              $forummenu = [];
              // Check forum types and eliminate simple discussions.
              $forumcheck = $DB->get_records('forum', ['course' => $courseid], '', 'id, type');
              foreach ($modinfo->instances['forum'] as $forumcm) {
                  if (!$forumcm->uservisible || !has_capability('mod/forum:startdiscussion',
                      context_module::instance($forumcm->id))) {
                      continue;
                  }
                  $section = $forumcm->sectionnum;
                  $sectionname = get_section_name($courseid, $section);
                  if (empty($forummenu[$section])) {
                      $forummenu[$section] = [$sectionname => []];
                  }
                  $forumidcompare = $forumcm->instance != $forum->get_id();
                  $forumtypecheck = $forumcheck[$forumcm->instance]->type !== 'single';
  
                  if ($forumidcompare and $forumtypecheck) {
                      $url = "/mod/forum/discuss.php?d={$discussion->get_id()}&move=$forumcm->instance&sesskey=".sesskey();
                      $forummenu[$section][$sectionname][$url] = format_string($forumcm->name);
                  }
              }
              if (!empty($forummenu)) {
                  $html = '<div class="movediscussionoption">';
                  $select = new url_select($forummenu, '',
                          ['/mod/forum/discuss.php?d=' . $discussion->get_id() => get_string("movethisdiscussionto", "forum")],
                          'forummenu', get_string('move'));
                  $html .= $this->renderer->render($select);
                  $html .= "</div>";
                  return $html;
              }
          }
  
          return null;
      }
code: private function get_move_discussion_html() : ?string {
          global $DB;
  
          $forum = $this->forum;
          $discussion = $this->discussion;
          $courseid = $forum->get_course_id();
  
          // Popup menu to move discussions to other forums. The discussion in a
          // single discussion forum can't be moved.
          $modinfo = get_fast_modinfo($courseid);
          if (isset($modinfo->instances['forum'])) {
              $forummenu = [];
              // Check forum types and eliminate simple discussions.
              $forumcheck = $DB->get_records('forum', ['course' => $courseid], '', 'id, type');
              foreach ($modinfo->instances['forum'] as $forumcm) {
                  if (!$forumcm->uservisible || !has_capability('mod/forum:startdiscussion',
                      context_module::instance($forumcm->id))) {
                      continue;
                  }
                  $section = $forumcm->sectionnum;
                  $sectionname = get_section_name($courseid, $section);
                  if (empty($forummenu[$section])) {
                      $forummenu[$section] = [$sectionname => []];
                  }
                  $forumidcompare = $forumcm->instance != $forum->get_id();
                  $forumtypecheck = $forumcheck[$forumcm->instance]->type !== 'single';
  
                  if ($forumidcompare and $forumtypecheck) {
                      $url = "/mod/forum/discuss.php?d={$discussion->get_id()}&move=$forumcm->instance&sesskey=".sesskey();
                      $forummenu[$section][$sectionname][$url] = format_string($forumcm->name);
                  }
              }
              if (!empty($forummenu)) {
                  $html = '<div class="movediscussionoption">';
                  $select = new url_select($forummenu, '',
                          ['/mod/forum/discuss.php?d=' . $discussion->get_id() => get_string("movethisdiscussionto", "forum")],
                          'forummenu', get_string('move'));
                  $html .= $this->renderer->render($select);
                  $html .= "</div>";
                  return $html;
              }
          }
  
          return null;
      }
code_tokens: private function get_move_discussion_html ( ) : ? string { global $ DB ; $ forum = $ this -> forum ; $ discussion = $ this -> discussion ; $ courseid = $ forum -> get_course_id ( ) ; // Popup menu to move discussions to other forums. The discussion in a // single discussion forum can't be moved. $ modinfo = get_fast_modinfo ( $ courseid ) ; if ( isset ( $ modinfo -> instances [ 'forum' ] ) ) { $ forummenu = [ ] ; // Check forum types and eliminate simple discussions. $ forumcheck = $ DB -> get_records ( 'forum' , [ 'course' => $ courseid ] , '' , 'id, type' ) ; foreach ( $ modinfo -> instances [ 'forum' ] as $ forumcm ) { if ( ! $ forumcm -> uservisible || ! has_capability ( 'mod/forum:startdiscussion' , context_module :: instance ( $ forumcm -> id ) ) ) { continue ; } $ section = $ forumcm -> sectionnum ; $ sectionname = get_section_name ( $ courseid , $ section ) ; if ( empty ( $ forummenu [ $ section ] ) ) { $ forummenu [ $ section ] = [ $ sectionname => [ ] ] ; } $ forumidcompare = $ forumcm -> instance != $ forum -> get_id ( ) ; $ forumtypecheck = $ forumcheck [ $ forumcm -> instance ] -> type !== 'single' ; if ( $ forumidcompare and $ forumtypecheck ) { $ url = "/mod/forum/discuss.php?d={$discussion->get_id()}&move=$forumcm->instance&sesskey=" . sesskey ( ) ; $ forummenu [ $ section ] [ $ sectionname ] [ $ url ] = format_string ( $ forumcm -> name ) ; } } if ( ! empty ( $ forummenu ) ) { $ html = '<div class="movediscussionoption">' ; $ select = new url_select ( $ forummenu , '' , [ '/mod/forum/discuss.php?d=' . $ discussion -> get_id ( ) => get_string ( "movethisdiscussionto" , "forum" ) ] , 'forummenu' , get_string ( 'move' ) ) ; $ html .= $ this -> renderer -> render ( $ select ) ; $ html .= "</div>" ; return $ html ; } } return null ; }
docstring: Get the HTML to render the move discussion selector and button.
  
  @return string
docstring_tokens: Get the HTML to render the move discussion selector and button .