original_string: public static function get_page_items($feedbackid, $page, $courseid = 0) {
          global $PAGE;
  
          $params = array('feedbackid' => $feedbackid, 'page' => $page, 'courseid' => $courseid);
          $params = self::validate_parameters(self::get_page_items_parameters(), $params);
          $warnings = array();
  
          list($feedback, $course, $cm, $context, $completioncourse) = self::validate_feedback($params['feedbackid'],
              $params['courseid']);
  
          $feedbackcompletion = new mod_feedback_completion($feedback, $cm, $completioncourse->id);
  
          $page = $params['page'];
          $pages = $feedbackcompletion->get_pages();
          $pageitems = $pages[$page];
          $hasnextpage = $page < count($pages) - 1; // Until we complete this page we can not trust get_next_page().
          $hasprevpage = $page && ($feedbackcompletion->get_previous_page($page, false) !== null);
  
          $returneditems = array();
          foreach ($pageitems as $item) {
              $itemnumber = empty($item->itemnr) ? null : $item->itemnr;
              unset($item->itemnr);   // Added by the function, not part of the record.
              $exporter = new feedback_item_exporter($item, array('context' => $context, 'itemnumber' => $itemnumber));
              $returneditems[] = $exporter->export($PAGE->get_renderer('core'));
          }
  
          $result = array(
              'items' => $returneditems,
              'hasprevpage' => $hasprevpage,
              'hasnextpage' => $hasnextpage,
              'warnings' => $warnings
          );
          return $result;
      }
code: public static function get_page_items($feedbackid, $page, $courseid = 0) {
          global $PAGE;
  
          $params = array('feedbackid' => $feedbackid, 'page' => $page, 'courseid' => $courseid);
          $params = self::validate_parameters(self::get_page_items_parameters(), $params);
          $warnings = array();
  
          list($feedback, $course, $cm, $context, $completioncourse) = self::validate_feedback($params['feedbackid'],
              $params['courseid']);
  
          $feedbackcompletion = new mod_feedback_completion($feedback, $cm, $completioncourse->id);
  
          $page = $params['page'];
          $pages = $feedbackcompletion->get_pages();
          $pageitems = $pages[$page];
          $hasnextpage = $page < count($pages) - 1; // Until we complete this page we can not trust get_next_page().
          $hasprevpage = $page && ($feedbackcompletion->get_previous_page($page, false) !== null);
  
          $returneditems = array();
          foreach ($pageitems as $item) {
              $itemnumber = empty($item->itemnr) ? null : $item->itemnr;
              unset($item->itemnr);   // Added by the function, not part of the record.
              $exporter = new feedback_item_exporter($item, array('context' => $context, 'itemnumber' => $itemnumber));
              $returneditems[] = $exporter->export($PAGE->get_renderer('core'));
          }
  
          $result = array(
              'items' => $returneditems,
              'hasprevpage' => $hasprevpage,
              'hasnextpage' => $hasnextpage,
              'warnings' => $warnings
          );
          return $result;
      }
code_tokens: public static function get_page_items ( $ feedbackid , $ page , $ courseid = 0 ) { global $ PAGE ; $ params = array ( 'feedbackid' => $ feedbackid , 'page' => $ page , 'courseid' => $ courseid ) ; $ params = self :: validate_parameters ( self :: get_page_items_parameters ( ) , $ params ) ; $ warnings = array ( ) ; list ( $ feedback , $ course , $ cm , $ context , $ completioncourse ) = self :: validate_feedback ( $ params [ 'feedbackid' ] , $ params [ 'courseid' ] ) ; $ feedbackcompletion = new mod_feedback_completion ( $ feedback , $ cm , $ completioncourse -> id ) ; $ page = $ params [ 'page' ] ; $ pages = $ feedbackcompletion -> get_pages ( ) ; $ pageitems = $ pages [ $ page ] ; $ hasnextpage = $ page < count ( $ pages ) - 1 ; // Until we complete this page we can not trust get_next_page(). $ hasprevpage = $ page && ( $ feedbackcompletion -> get_previous_page ( $ page , false ) !== null ) ; $ returneditems = array ( ) ; foreach ( $ pageitems as $ item ) { $ itemnumber = empty ( $ item -> itemnr ) ? null : $ item -> itemnr ; unset ( $ item -> itemnr ) ; // Added by the function, not part of the record. $ exporter = new feedback_item_exporter ( $ item , array ( 'context' => $ context , 'itemnumber' => $ itemnumber ) ) ; $ returneditems [ ] = $ exporter -> export ( $ PAGE -> get_renderer ( 'core' ) ) ; } $ result = array ( 'items' => $ returneditems , 'hasprevpage' => $ hasprevpage , 'hasnextpage' => $ hasnextpage , 'warnings' => $ warnings ) ; return $ result ; }
docstring: Get a single feedback page items.
  
  @param int $feedbackid feedback instance id
  @param int $page the page to get starting by 0
  @param int $courseid course where user completes the feedback (for site feedbacks only)
  @return array of warnings and launch information
  @since Moodle 3.3
docstring_tokens: Get a single feedback page items .