Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.3.x will end 7 October 2024 (12 months).
  • Bug fixes for security issues in 4.3.x will end 21 April 2025 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.2.x is supported too.
   1  <?php
   2  // This file is part of Moodle - http://moodle.org/
   3  //
   4  // Moodle is free software: you can redistribute it and/or modify
   5  // it under the terms of the GNU General Public License as published by
   6  // the Free Software Foundation, either version 3 of the License, or
   7  // (at your option) any later version.
   8  //
   9  // Moodle is distributed in the hope that it will be useful,
  10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  // GNU General Public License for more details.
  13  //
  14  // You should have received a copy of the GNU General Public License
  15  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
  16  
  17  namespace mod_quiz\output;
  18  
  19  use html_writer;
  20  
  21  /**
  22   * Specialisation of {@see navigation_panel_base} for the attempt quiz page.
  23   *
  24   * This class is not currently renderable or templatable, but it probably should be in the future,
  25   * which is why it is already in the output namespace.
  26   *
  27   * @package   mod_quiz
  28   * @category  output
  29   * @copyright 2008 Tim Hunt
  30   * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  31   */
  32  class navigation_panel_attempt extends navigation_panel_base {
  33      public function get_question_url($slot) {
  34          if ($this->attemptobj->can_navigate_to($slot)) {
  35              return $this->attemptobj->attempt_url($slot, -1, $this->page);
  36          } else {
  37              return null;
  38          }
  39      }
  40  
  41      public function render_before_button_bits(renderer $output) {
  42          return html_writer::tag('div', get_string('navnojswarning', 'quiz'),
  43                  ['id' => 'quiznojswarning']);
  44      }
  45  
  46      public function render_end_bits(renderer $output) {
  47          if ($this->page == -1) {
  48              // Don't link from the summary page to itself.
  49              return '';
  50          }
  51          return html_writer::link($this->attemptobj->summary_url(),
  52                  get_string('endtest', 'quiz'), ['class' => 'endtestlink aalink']) .
  53                  $this->render_restart_preview_link($output);
  54      }
  55  }