original_string: public function edit_page(\quiz $quizobj, structure $structure,
              \question_edit_contexts $contexts, \moodle_url $pageurl, array $pagevars) {
          $output = '';
  
          // Page title.
          $output .= $this->heading_with_help(get_string('editingquizx', 'quiz',
                  format_string($quizobj->get_quiz_name())), 'editingquiz', 'quiz', '',
                  get_string('basicideasofquiz', 'quiz'), 2);
  
          // Information at the top.
          $output .= $this->quiz_state_warnings($structure);
  
          $output .= html_writer::start_div('mod_quiz-edit-top-controls');
          $output .= $this->quiz_information($structure);
          $output .= $this->maximum_grade_input($structure, $pageurl);
  
          $output .= html_writer::start_div('mod_quiz-edit-action-buttons btn-group edit-toolbar', ['role' => 'group']);
          $output .= $this->repaginate_button($structure, $pageurl);
          $output .= $this->selectmultiple_button($structure);
          $output .= html_writer::end_tag('div');
  
          $output .= $this->total_marks($quizobj->get_quiz());
  
          $output .= $this->selectmultiple_controls($structure);
          $output .= html_writer::end_tag('div');
  
          // Show the questions organised into sections and pages.
          $output .= $this->start_section_list($structure);
  
          foreach ($structure->get_sections() as $section) {
              $output .= $this->start_section($structure, $section);
              $output .= $this->questions_in_section($structure, $section, $contexts, $pagevars, $pageurl);
  
              if ($structure->is_last_section($section)) {
                  $output .= \html_writer::start_div('last-add-menu');
                  $output .= html_writer::tag('span', $this->add_menu_actions($structure, 0,
                          $pageurl, $contexts, $pagevars), array('class' => 'add-menu-outer'));
                  $output .= \html_writer::end_div();
              }
  
              $output .= $this->end_section();
          }
  
          $output .= $this->end_section_list();
  
          // Initialise the JavaScript.
          $this->initialise_editing_javascript($structure, $contexts, $pagevars, $pageurl);
  
          // Include the contents of any other popups required.
          if ($structure->can_be_edited()) {
              $thiscontext = $contexts->lowest();
              $this->page->requires->js_call_amd('mod_quiz/quizquestionbank', 'init', [
                  $thiscontext->id
              ]);
  
              $this->page->requires->js_call_amd('mod_quiz/add_random_question', 'init', [
                  $thiscontext->id,
                  $pagevars['cat'],
                  $pageurl->out_as_local_url(true),
                  $pageurl->param('cmid')
              ]);
  
              // Include the question chooser.
              $output .= $this->question_chooser();
          }
  
          return $output;
      }
code: public function edit_page(\quiz $quizobj, structure $structure,
              \question_edit_contexts $contexts, \moodle_url $pageurl, array $pagevars) {
          $output = '';
  
          // Page title.
          $output .= $this->heading_with_help(get_string('editingquizx', 'quiz',
                  format_string($quizobj->get_quiz_name())), 'editingquiz', 'quiz', '',
                  get_string('basicideasofquiz', 'quiz'), 2);
  
          // Information at the top.
          $output .= $this->quiz_state_warnings($structure);
  
          $output .= html_writer::start_div('mod_quiz-edit-top-controls');
          $output .= $this->quiz_information($structure);
          $output .= $this->maximum_grade_input($structure, $pageurl);
  
          $output .= html_writer::start_div('mod_quiz-edit-action-buttons btn-group edit-toolbar', ['role' => 'group']);
          $output .= $this->repaginate_button($structure, $pageurl);
          $output .= $this->selectmultiple_button($structure);
          $output .= html_writer::end_tag('div');
  
          $output .= $this->total_marks($quizobj->get_quiz());
  
          $output .= $this->selectmultiple_controls($structure);
          $output .= html_writer::end_tag('div');
  
          // Show the questions organised into sections and pages.
          $output .= $this->start_section_list($structure);
  
          foreach ($structure->get_sections() as $section) {
              $output .= $this->start_section($structure, $section);
              $output .= $this->questions_in_section($structure, $section, $contexts, $pagevars, $pageurl);
  
              if ($structure->is_last_section($section)) {
                  $output .= \html_writer::start_div('last-add-menu');
                  $output .= html_writer::tag('span', $this->add_menu_actions($structure, 0,
                          $pageurl, $contexts, $pagevars), array('class' => 'add-menu-outer'));
                  $output .= \html_writer::end_div();
              }
  
              $output .= $this->end_section();
          }
  
          $output .= $this->end_section_list();
  
          // Initialise the JavaScript.
          $this->initialise_editing_javascript($structure, $contexts, $pagevars, $pageurl);
  
          // Include the contents of any other popups required.
          if ($structure->can_be_edited()) {
              $thiscontext = $contexts->lowest();
              $this->page->requires->js_call_amd('mod_quiz/quizquestionbank', 'init', [
                  $thiscontext->id
              ]);
  
              $this->page->requires->js_call_amd('mod_quiz/add_random_question', 'init', [
                  $thiscontext->id,
                  $pagevars['cat'],
                  $pageurl->out_as_local_url(true),
                  $pageurl->param('cmid')
              ]);
  
              // Include the question chooser.
              $output .= $this->question_chooser();
          }
  
          return $output;
      }
code_tokens: public function edit_page ( \ quiz $ quizobj , structure $ structure , \ question_edit_contexts $ contexts , \ moodle_url $ pageurl , array $ pagevars ) { $ output = '' ; // Page title. $ output .= $ this -> heading_with_help ( get_string ( 'editingquizx' , 'quiz' , format_string ( $ quizobj -> get_quiz_name ( ) ) ) , 'editingquiz' , 'quiz' , '' , get_string ( 'basicideasofquiz' , 'quiz' ) , 2 ) ; // Information at the top. $ output .= $ this -> quiz_state_warnings ( $ structure ) ; $ output .= html_writer :: start_div ( 'mod_quiz-edit-top-controls' ) ; $ output .= $ this -> quiz_information ( $ structure ) ; $ output .= $ this -> maximum_grade_input ( $ structure , $ pageurl ) ; $ output .= html_writer :: start_div ( 'mod_quiz-edit-action-buttons btn-group edit-toolbar' , [ 'role' => 'group' ] ) ; $ output .= $ this -> repaginate_button ( $ structure , $ pageurl ) ; $ output .= $ this -> selectmultiple_button ( $ structure ) ; $ output .= html_writer :: end_tag ( 'div' ) ; $ output .= $ this -> total_marks ( $ quizobj -> get_quiz ( ) ) ; $ output .= $ this -> selectmultiple_controls ( $ structure ) ; $ output .= html_writer :: end_tag ( 'div' ) ; // Show the questions organised into sections and pages. $ output .= $ this -> start_section_list ( $ structure ) ; foreach ( $ structure -> get_sections ( ) as $ section ) { $ output .= $ this -> start_section ( $ structure , $ section ) ; $ output .= $ this -> questions_in_section ( $ structure , $ section , $ contexts , $ pagevars , $ pageurl ) ; if ( $ structure -> is_last_section ( $ section ) ) { $ output .= \ html_writer :: start_div ( 'last-add-menu' ) ; $ output .= html_writer :: tag ( 'span' , $ this -> add_menu_actions ( $ structure , 0 , $ pageurl , $ contexts , $ pagevars ) , array ( 'class' => 'add-menu-outer' ) ) ; $ output .= \ html_writer :: end_div ( ) ; } $ output .= $ this -> end_section ( ) ; } $ output .= $ this -> end_section_list ( ) ; // Initialise the JavaScript. $ this -> initialise_editing_javascript ( $ structure , $ contexts , $ pagevars , $ pageurl ) ; // Include the contents of any other popups required. if ( $ structure -> can_be_edited ( ) ) { $ thiscontext = $ contexts -> lowest ( ) ; $ this -> page -> requires -> js_call_amd ( 'mod_quiz/quizquestionbank' , 'init' , [ $ thiscontext -> id ] ) ; $ this -> page -> requires -> js_call_amd ( 'mod_quiz/add_random_question' , 'init' , [ $ thiscontext -> id , $ pagevars [ 'cat' ] , $ pageurl -> out_as_local_url ( true ) , $ pageurl -> param ( 'cmid' ) ] ) ; // Include the question chooser. $ output .= $ this -> question_chooser ( ) ; } return $ output ; }
docstring: Render the edit page
  
  @param \quiz $quizobj object containing all the quiz settings information.
  @param structure $structure object containing the structure of the quiz.
  @param \question_edit_contexts $contexts the relevant question bank contexts.
  @param \moodle_url $pageurl the canonical URL of this page.
  @param array $pagevars the variables from {@link question_edit_setup()}.
  @return string HTML to output.
docstring_tokens: Render the edit page