Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.x is supported too.

Differences Between: [Versions 310 and 402] [Versions 311 and 402] [Versions 39 and 402] [Versions 400 and 402] [Versions 401 and 402] [Versions 402 and 403]

   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  /**
  18   * Quiz external functions and service definitions.
  19   *
  20   * @package    mod_quiz
  21   * @category   external
  22   * @copyright  2016 Juan Leyva <juan@moodle.com>
  23   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  24   * @since      Moodle 3.1
  25   */
  26  
  27  defined('MOODLE_INTERNAL') || die;
  28  
  29  $functions = [
  30  
  31      'mod_quiz_get_quizzes_by_courses' => [
  32          'classname'     => 'mod_quiz_external',
  33          'methodname'    => 'get_quizzes_by_courses',
  34          'description'   => 'Returns a list of quizzes in a provided list of courses,
  35                              if no list is provided all quizzes that the user can view will be returned.',
  36          'type'          => 'read',
  37          'capabilities'  => 'mod/quiz:view',
  38          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
  39      ],
  40  
  41      'mod_quiz_view_quiz' => [
  42          'classname'     => 'mod_quiz_external',
  43          'methodname'    => 'view_quiz',
  44          'description'   => 'Trigger the course module viewed event and update the module completion status.',
  45          'type'          => 'write',
  46          'capabilities'  => 'mod/quiz:view',
  47          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
  48      ],
  49  
  50      'mod_quiz_get_user_attempts' => [
  51          'classname'     => 'mod_quiz_external',
  52          'methodname'    => 'get_user_attempts',
  53          'description'   => 'Return a list of attempts for the given quiz and user.',
  54          'type'          => 'read',
  55          'capabilities'  => 'mod/quiz:view',
  56          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
  57      ],
  58  
  59      'mod_quiz_get_user_best_grade' => [
  60          'classname'     => 'mod_quiz_external',
  61          'methodname'    => 'get_user_best_grade',
  62          'description'   => 'Get the best current grade for the given user on a quiz.',
  63          'type'          => 'read',
  64          'capabilities'  => 'mod/quiz:view',
  65          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
  66      ],
  67  
  68      'mod_quiz_get_combined_review_options' => [
  69          'classname'     => 'mod_quiz_external',
  70          'methodname'    => 'get_combined_review_options',
  71          'description'   => 'Combines the review options from a number of different quiz attempts.',
  72          'type'          => 'read',
  73          'capabilities'  => 'mod/quiz:view',
  74          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
  75      ],
  76  
  77      'mod_quiz_start_attempt' => [
  78          'classname'     => 'mod_quiz_external',
  79          'methodname'    => 'start_attempt',
  80          'description'   => 'Starts a new attempt at a quiz.',
  81          'type'          => 'write',
  82          'capabilities'  => 'mod/quiz:attempt',
  83          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
  84      ],
  85  
  86      'mod_quiz_get_attempt_data' => [
  87          'classname'     => 'mod_quiz_external',
  88          'methodname'    => 'get_attempt_data',
  89          'description'   => 'Returns information for the given attempt page for a quiz attempt in progress.',
  90          'type'          => 'read',
  91          'capabilities'  => 'mod/quiz:attempt',
  92          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
  93      ],
  94  
  95      'mod_quiz_get_attempt_summary' => [
  96          'classname'     => 'mod_quiz_external',
  97          'methodname'    => 'get_attempt_summary',
  98          'description'   => 'Returns a summary of a quiz attempt before it is submitted.',
  99          'type'          => 'read',
 100          'capabilities'  => 'mod/quiz:attempt',
 101          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
 102      ],
 103  
 104      'mod_quiz_save_attempt' => [
 105          'classname'     => 'mod_quiz_external',
 106          'methodname'    => 'save_attempt',
 107          'description'   => 'Processes save requests during the quiz.
 108                              This function is intended for the quiz auto-save feature.',
 109          'type'          => 'write',
 110          'capabilities'  => 'mod/quiz:attempt',
 111          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
 112      ],
 113  
 114      'mod_quiz_process_attempt' => [
 115          'classname'     => 'mod_quiz_external',
 116          'methodname'    => 'process_attempt',
 117          'description'   => 'Process responses during an attempt at a quiz and also deals with attempts finishing.',
 118          'type'          => 'write',
 119          'capabilities'  => 'mod/quiz:attempt',
 120          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
 121      ],
 122  
 123      'mod_quiz_get_attempt_review' => [
 124          'classname'     => 'mod_quiz_external',
 125          'methodname'    => 'get_attempt_review',
 126          'description'   => 'Returns review information for the given finished attempt, can be used by users or teachers.',
 127          'type'          => 'read',
 128          'capabilities'  => 'mod/quiz:reviewmyattempts',
 129          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
 130      ],
 131  
 132      'mod_quiz_view_attempt' => [
 133          'classname'     => 'mod_quiz_external',
 134          'methodname'    => 'view_attempt',
 135          'description'   => 'Trigger the attempt viewed event.',
 136          'type'          => 'write',
 137          'capabilities'  => 'mod/quiz:attempt',
 138          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
 139      ],
 140  
 141      'mod_quiz_view_attempt_summary' => [
 142          'classname'     => 'mod_quiz_external',
 143          'methodname'    => 'view_attempt_summary',
 144          'description'   => 'Trigger the attempt summary viewed event.',
 145          'type'          => 'write',
 146          'capabilities'  => 'mod/quiz:attempt',
 147          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
 148      ],
 149  
 150      'mod_quiz_view_attempt_review' => [
 151          'classname'     => 'mod_quiz_external',
 152          'methodname'    => 'view_attempt_review',
 153          'description'   => 'Trigger the attempt reviewed event.',
 154          'type'          => 'write',
 155          'capabilities'  => 'mod/quiz:reviewmyattempts',
 156          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
 157      ],
 158  
 159      'mod_quiz_get_quiz_feedback_for_grade' => [
 160          'classname'     => 'mod_quiz_external',
 161          'methodname'    => 'get_quiz_feedback_for_grade',
 162          'description'   => 'Get the feedback text that should be show to a student who got the given grade in the given quiz.',
 163          'type'          => 'read',
 164          'capabilities'  => 'mod/quiz:view',
 165          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
 166      ],
 167  
 168      'mod_quiz_get_quiz_access_information' => [
 169          'classname'     => 'mod_quiz_external',
 170          'methodname'    => 'get_quiz_access_information',
 171          'description'   => 'Return access information for a given quiz.',
 172          'type'          => 'read',
 173          'capabilities'  => 'mod/quiz:view',
 174          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
 175      ],
 176  
 177      'mod_quiz_get_attempt_access_information' => [
 178          'classname'     => 'mod_quiz_external',
 179          'methodname'    => 'get_attempt_access_information',
 180          'description'   => 'Return access information for a given attempt in a quiz.',
 181          'type'          => 'read',
 182          'capabilities'  => 'mod/quiz:view',
 183          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
 184      ],
 185  
 186      'mod_quiz_get_quiz_required_qtypes' => [
 187          'classname'     => 'mod_quiz_external',
 188          'methodname'    => 'get_quiz_required_qtypes',
 189          'description'   => 'Return the potential question types that would be required for a given quiz.',
 190          'type'          => 'read',
 191          'capabilities'  => 'mod/quiz:view',
 192          'services'      => [MOODLE_OFFICIAL_MOBILE_SERVICE]
 193      ],
 194  
 195      'mod_quiz_set_question_version' => [
 196          'classname'     => 'mod_quiz\external\submit_question_version',
 197          'description'   => 'Set the version of question that would be required for a given quiz.',
 198          'type'          => 'write',
 199          'capabilities'  => 'mod/quiz:view',
 200          'ajax'          => true,
 201      ],
 202  
 203      'mod_quiz_reopen_attempt' => [
 204          'classname' => 'mod_quiz\external\reopen_attempt',
 205          'description' => 'Re-open an attempt that is currently in the never submitted state.',
 206          'type' => 'write',
 207          'capabilities' => 'mod/quiz:reopenattempts',
 208          'ajax' => true,
 209      ],
 210  
 211      'mod_quiz_get_reopen_attempt_confirmation' => [
 212          'classname' => 'mod_quiz\external\get_reopen_attempt_confirmation',
 213          'description' => 'Verify it is OK to re-open a given quiz attempt, and if so, return a suitable confirmation message.',
 214          'type' => 'read',
 215          'capabilities' => 'mod/quiz:reopenattempts',
 216          'ajax' => true,
 217      ],
 218  ];