original_string: private static function get_attempt_questions_data(quiz_attempt $attemptobj, $review, $page = 'all') {
          global $PAGE;
  
          $questions = array();
          $contextid = $attemptobj->get_quizobj()->get_context()->id;
          $displayoptions = $attemptobj->get_display_options($review);
          $renderer = $PAGE->get_renderer('mod_quiz');
  
          foreach ($attemptobj->get_slots($page) as $slot) {
  
              $question = array(
                  'slot' => $slot,
                  'type' => $attemptobj->get_question_type_name($slot),
                  'page' => $attemptobj->get_question_page($slot),
                  'flagged' => $attemptobj->is_question_flagged($slot),
                  'html' => $attemptobj->render_question($slot, $review, $renderer) . $PAGE->requires->get_end_code(),
                  'sequencecheck' => $attemptobj->get_question_attempt($slot)->get_sequence_check_count(),
                  'lastactiontime' => $attemptobj->get_question_attempt($slot)->get_last_step()->get_timecreated(),
                  'hasautosavedstep' => $attemptobj->get_question_attempt($slot)->has_autosaved_step()
              );
  
              if ($attemptobj->is_real_question($slot)) {
                  $question['number'] = $attemptobj->get_question_number($slot);
                  $showcorrectness = $displayoptions->correctness && $attemptobj->get_question_attempt($slot)->has_marks();
                  if ($showcorrectness) {
                      $question['state'] = (string) $attemptobj->get_question_state($slot);
                  }
                  $question['status'] = $attemptobj->get_question_status($slot, $displayoptions->correctness);
                  $question['blockedbyprevious'] = $attemptobj->is_blocked_by_previous_question($slot);
              }
              if ($displayoptions->marks >= question_display_options::MAX_ONLY) {
                  $question['maxmark'] = $attemptobj->get_question_attempt($slot)->get_max_mark();
              }
              if ($displayoptions->marks >= question_display_options::MARK_AND_MAX) {
                  $question['mark'] = $attemptobj->get_question_mark($slot);
              }
  
              $questions[] = $question;
          }
          return $questions;
      }
code: private static function get_attempt_questions_data(quiz_attempt $attemptobj, $review, $page = 'all') {
          global $PAGE;
  
          $questions = array();
          $contextid = $attemptobj->get_quizobj()->get_context()->id;
          $displayoptions = $attemptobj->get_display_options($review);
          $renderer = $PAGE->get_renderer('mod_quiz');
  
          foreach ($attemptobj->get_slots($page) as $slot) {
  
              $question = array(
                  'slot' => $slot,
                  'type' => $attemptobj->get_question_type_name($slot),
                  'page' => $attemptobj->get_question_page($slot),
                  'flagged' => $attemptobj->is_question_flagged($slot),
                  'html' => $attemptobj->render_question($slot, $review, $renderer) . $PAGE->requires->get_end_code(),
                  'sequencecheck' => $attemptobj->get_question_attempt($slot)->get_sequence_check_count(),
                  'lastactiontime' => $attemptobj->get_question_attempt($slot)->get_last_step()->get_timecreated(),
                  'hasautosavedstep' => $attemptobj->get_question_attempt($slot)->has_autosaved_step()
              );
  
              if ($attemptobj->is_real_question($slot)) {
                  $question['number'] = $attemptobj->get_question_number($slot);
                  $showcorrectness = $displayoptions->correctness && $attemptobj->get_question_attempt($slot)->has_marks();
                  if ($showcorrectness) {
                      $question['state'] = (string) $attemptobj->get_question_state($slot);
                  }
                  $question['status'] = $attemptobj->get_question_status($slot, $displayoptions->correctness);
                  $question['blockedbyprevious'] = $attemptobj->is_blocked_by_previous_question($slot);
              }
              if ($displayoptions->marks >= question_display_options::MAX_ONLY) {
                  $question['maxmark'] = $attemptobj->get_question_attempt($slot)->get_max_mark();
              }
              if ($displayoptions->marks >= question_display_options::MARK_AND_MAX) {
                  $question['mark'] = $attemptobj->get_question_mark($slot);
              }
  
              $questions[] = $question;
          }
          return $questions;
      }
code_tokens: private static function get_attempt_questions_data ( quiz_attempt $ attemptobj , $ review , $ page = 'all' ) { global $ PAGE ; $ questions = array ( ) ; $ contextid = $ attemptobj -> get_quizobj ( ) -> get_context ( ) -> id ; $ displayoptions = $ attemptobj -> get_display_options ( $ review ) ; $ renderer = $ PAGE -> get_renderer ( 'mod_quiz' ) ; foreach ( $ attemptobj -> get_slots ( $ page ) as $ slot ) { $ question = array ( 'slot' => $ slot , 'type' => $ attemptobj -> get_question_type_name ( $ slot ) , 'page' => $ attemptobj -> get_question_page ( $ slot ) , 'flagged' => $ attemptobj -> is_question_flagged ( $ slot ) , 'html' => $ attemptobj -> render_question ( $ slot , $ review , $ renderer ) . $ PAGE -> requires -> get_end_code ( ) , 'sequencecheck' => $ attemptobj -> get_question_attempt ( $ slot ) -> get_sequence_check_count ( ) , 'lastactiontime' => $ attemptobj -> get_question_attempt ( $ slot ) -> get_last_step ( ) -> get_timecreated ( ) , 'hasautosavedstep' => $ attemptobj -> get_question_attempt ( $ slot ) -> has_autosaved_step ( ) ) ; if ( $ attemptobj -> is_real_question ( $ slot ) ) { $ question [ 'number' ] = $ attemptobj -> get_question_number ( $ slot ) ; $ showcorrectness = $ displayoptions -> correctness && $ attemptobj -> get_question_attempt ( $ slot ) -> has_marks ( ) ; if ( $ showcorrectness ) { $ question [ 'state' ] = ( string ) $ attemptobj -> get_question_state ( $ slot ) ; } $ question [ 'status' ] = $ attemptobj -> get_question_status ( $ slot , $ displayoptions -> correctness ) ; $ question [ 'blockedbyprevious' ] = $ attemptobj -> is_blocked_by_previous_question ( $ slot ) ; } if ( $ displayoptions -> marks >= question_display_options :: MAX_ONLY ) { $ question [ 'maxmark' ] = $ attemptobj -> get_question_attempt ( $ slot ) -> get_max_mark ( ) ; } if ( $ displayoptions -> marks >= question_display_options :: MARK_AND_MAX ) { $ question [ 'mark' ] = $ attemptobj -> get_question_mark ( $ slot ) ; } $ questions [ ] = $ question ; } return $ questions ; }
docstring: Return questions information for a given attempt.
  
  @param  quiz_attempt  $attemptobj  the quiz attempt object
  @param  bool  $review  whether if we are in review mode or not
  @param  mixed  $page  string 'all' or integer page number
  @return array array of questions including data
docstring_tokens: Return questions information for a given attempt .