Moodle APIs
3.8
Moodle 3.8.6 (Build: 20201109)
|
Files | |
file | access.php |
Capability definitions for the quiz module. | |
file | accessmanager.php |
Classes to enforce the various access rules that can apply to a quiz. | |
file | accessmanager_form.php |
Defines the form that limits student's access to attempt a quiz. | |
file | accessrulebase.php |
Base class for rules that restrict the ability to attempt a quiz. | |
file | activity.php |
Search area for mod_quiz activities. | |
file | activity_base.php |
Activity base class. | |
file | add_action_column.php |
A column type for the add this question to the quiz action. | |
file | addrandomform.php |
Defines the Moodle forum used to add random questions to the quiz. | |
file | admin_review_setting.php |
Admin settings class for the quiz review options. | |
file | admin_setting_browsersecurity.php |
Admin settings class for the quiz browser security option. | |
file | admin_setting_grademethod.php |
Admin settings class for the quiz grading method. | |
file | admin_setting_overduehandling.php |
Admin settings class for the quiz overdue attempt handling method. | |
file | admin_setting_user_image.php |
Admin settings class for the choices for how to display the user's image. | |
file | attempt_abandoned.php |
The mod_quiz attempt abandoned event. | |
file | attempt_becameoverdue.php |
The mod_quiz attempt became overdue event. | |
file | attempt_deleted.php |
The mod_quiz attempt deleted event. | |
file | attempt_preview_started.php |
The mod_quiz attempt preview started event. | |
file | attempt_regraded.php |
The mod_quiz attempt regraded event. | |
file | attempt_reviewed.php |
The mod_quiz attempt reviewed event. | |
file | attempt_started.php |
The mod_quiz attempt started event. | |
file | attempt_submitted.php |
The mod_quiz attempt submitted event. | |
file | attempt_summary_viewed.php |
The mod_quiz attempt summary viewed event. | |
file | attempt_viewed.php |
The mod_quiz attempt viewed event. | |
file | attemptlib.php |
Back-end code for handling data about quizzes and the current user's attempt. | |
file | attemptsreport.php |
The file defines a base class that can be used to build a report like the overview or responses report, that has one row per attempt. | |
file | attemptsreport_form.php |
Base class for the settings form for . | |
file | attemptsreport_options.php |
Base class for the options that control what is visible in an quiz_attempts_report. | |
file | attemptsreport_table.php |
Base class for the table used by a quiz_attempts_report. | |
file | backup_mod_quiz_access_subplugin.class.php |
Defines the base class for quiz access plugins backup code. | |
file | backup_quiz_activity_task.class.php |
Defines backup_quiz_activity_task class. | |
file | backup_quiz_stepslib.php |
@subpackage backup-moodle2 | |
file | behat_mod_quiz.php |
Steps definitions related to mod_quiz. | |
file | behat_mod_quiz_generator.php |
Behat data generator for mod_quiz. | |
file | cognitive_depth.php |
Cognitive depth indicator - quiz. | |
file | course_module_instance_list_viewed.php |
The mod_quiz instance list viewed event. | |
file | course_module_viewed.php |
The mod_quiz course module viewed event. | |
file | cronlib.php |
Library code used by quiz cron. | |
file | custom_view.php |
Defines the custom question bank view used on the Edit quiz page. | |
file | default.php |
Base class for quiz report plugins. | |
file | edit_page_viewed.php |
The mod_quiz edit page viewed event. | |
file | edit_renderer.php |
Renderer outputting the quiz editing UI. | |
file | events.php |
Add event handlers for the quiz. | |
file | external.php |
Quiz external API. | |
file | group_observers.php |
Group observers. | |
file | group_override_created.php |
The mod_quiz group override created event. | |
file | group_override_deleted.php |
The mod_quiz group override deleted event. | |
file | group_override_updated.php |
The mod_quiz group override updated event. | |
file | helper.php |
Privacy Subsystem helper for mod_quiz. | |
file | legacy_quiz_accessrules_cron.php |
Legacy Cron Quiz Access Rules Task. | |
file | legacy_quiz_reports_cron.php |
Legacy Cron Quiz Reports Task. | |
file | legacy_quizaccess_polyfill.php |
This file contains the polyfil to allow a plugin to operate with Moodle 3.3 up. | |
file | lib.php |
Quiz module test data generator class. | |
file | lib.php |
Library of functions for the quiz module. | |
file | lib.php |
Provides support for the conversion of moodle1 backup to the moodle2 format Based off of a template @ http://docs.moodle.org/dev/Backup_1.9_conversion_for_developers. | |
file | locallib.php |
Library of functions used by the quiz module. | |
file | log.php |
Definition of log events for the quiz module. | |
file | mod_form.php |
Defines the quiz module ettings form. | |
file | override_form.php |
Settings form for overrides in the quiz module. | |
file | provider.php |
Privacy Subsystem implementation for mod_quiz. | |
file | qubaids_for_users_attempts.php |
A qubaid_condition representing all the attempts by one user at a given quiz. | |
file | question_chooser.php |
The question_chooser renderable. | |
file | question_name_text_column.php |
A column type for the name followed by the start of the question text. | |
file | quiz.php |
Subplugin info class. | |
file | quizaccess.php |
Subplugin info class. | |
file | quizaccess_provider.php |
The quizaccess_provider interface provides the expected interface for all 'quizaccess' quizaccesss. | |
file | quizaccess_user_provider.php |
The quizaccess_user_provider interface provides the expected interface for all 'quizaccess' quizaccesss. | |
file | randomquestion_form.php |
Defines the editing form for random questions. | |
file | renderer.php |
Defines the renderer for the quiz module. | |
file | repaginate.php |
Defines the quiz repaginate class. | |
file | report_viewed.php |
The mod_quiz report viewed event. | |
file | reportlib.php |
Helper functions for the quiz reports. | |
file | restore_mod_quiz_access_subplugin.class.php |
Restore code for the quizaccess_honestycheck plugin. | |
file | restore_quiz_activity_task.class.php |
@subpackage backup-moodle2 | |
file | restore_quiz_stepslib.php |
@subpackage backup-moodle2 | |
file | services.php |
Quiz external functions and service definitions. | |
file | settings.php |
Administration settings definitions for the quiz module. | |
file | slot_random.php |
Defines the mod_quiz\local\structure\slot_random class. | |
file | social_breadth.php |
Social breadth indicator - quiz. | |
file | structure.php |
Defines the mod_quiz\structure class. | |
file | tasks.php |
Definition of Quiz scheduled tasks. | |
file | update_overdue_attempts.php |
Update Overdue Attempts Task. | |
file | upgrade.php |
Upgrade script for the quiz module. | |
file | user_override_created.php |
The mod_quiz user override created event. | |
file | user_override_deleted.php |
The mod_quiz user override deleted event. | |
file | user_override_updated.php |
The mod_quiz user override updated event. | |
file | version.php |
Quiz activity version information. | |
Classes | |
class | backup_mod_quiz_access_subplugin |
Base class for backing up all the quiz settings and attempt data for an access rule quiz sub-plugin. More... | |
class | backup_quiz_activity_structure_step |
Define all the backup steps that will be used by the backup_quiz_activity_task. More... | |
class | backup_quiz_activity_task |
Provides the steps to perform one complete backup of the Quiz instance. More... | |
class | behat_mod_quiz |
Steps definitions related to mod_quiz. More... | |
class | behat_mod_quiz_generator |
Behat data generator for mod_quiz. More... | |
class | mod_quiz\analytics\indicator\activity_base |
Activity base class. More... | |
class | mod_quiz\analytics\indicator\cognitive_depth |
Cognitive depth indicator - quiz. More... | |
class | mod_quiz\analytics\indicator\social_breadth |
Social breadth indicator - quiz. More... | |
class | mod_quiz\event\attempt_abandoned |
class | mod_quiz\event\attempt_becameoverdue |
class | mod_quiz\event\attempt_deleted |
class | mod_quiz\event\attempt_preview_started |
class | mod_quiz\event\attempt_regraded |
class | mod_quiz\event\attempt_reviewed |
class | mod_quiz\event\attempt_started |
class | mod_quiz\event\attempt_submitted |
class | mod_quiz\event\attempt_summary_viewed |
class | mod_quiz\event\attempt_viewed |
class | mod_quiz\event\course_module_instance_list_viewed |
The mod_quiz instance list viewed event class. More... | |
class | mod_quiz\event\course_module_viewed |
The mod_quiz course module viewed event class. More... | |
class | mod_quiz\event\edit_page_viewed |
class | mod_quiz\event\group_override_created |
class | mod_quiz\event\group_override_deleted |
class | mod_quiz\event\group_override_updated |
class | mod_quiz\event\report_viewed |
class | mod_quiz\event\user_override_created |
class | mod_quiz\event\user_override_deleted |
class | mod_quiz\event\user_override_updated |
class | mod_quiz\form\randomquestion_form |
Class randomquestion_form. More... | |
class | mod_quiz\group_observers |
Group observers class. More... | |
class | mod_quiz\local\structure\slot_random |
Class slot_random, represents a random question slot type. More... | |
class | mod_quiz\output\edit_renderer |
Renderer outputting the quiz editing UI. More... | |
class | mod_quiz\output\question_chooser |
The question_chooser renderable class. More... | |
class | mod_quiz\plugininfo\quiz |
class | mod_quiz\plugininfo\quizaccess |
class | mod_quiz\privacy\helper |
Privacy Subsystem implementation for mod_quiz. More... | |
class | mod_quiz\privacy\provider |
Privacy Subsystem implementation for mod_quiz. More... | |
interface | mod_quiz\privacy\quizaccess_provider |
The quizaccess_provider interface provides the expected interface for all 'quizaccess' quizaccesss. More... | |
interface | mod_quiz\privacy\quizaccess_user_provider |
class | mod_quiz\question\bank\add_action_column |
A column type for the add this question to the quiz action. More... | |
class | mod_quiz\question\bank\custom_view |
Subclass to customise the view of the question bank for the quiz editing screen. More... | |
class | mod_quiz\question\bank\question_name_text_column |
A column type for the name followed by the start of the question text. More... | |
class | mod_quiz\question\qubaids_for_users_attempts |
A qubaid_condition representing all the attempts by one user at a given quiz. More... | |
class | mod_quiz\repaginate |
The repaginate class will rearrange questions in pages. More... | |
class | mod_quiz\search\activity |
Search area for mod_quiz activities. More... | |
class | mod_quiz\structure |
Quiz structure class. More... | |
class | mod_quiz\task\legacy_quiz_accessrules_cron |
Legacy Cron Quiz Access Rules Task. More... | |
class | mod_quiz\task\legacy_quiz_reports_cron |
Legacy Cron Quiz Reports Task. More... | |
class | mod_quiz\task\update_overdue_attempts |
Update Overdue Attempts Task. More... | |
class | mod_quiz_admin_review_setting |
Admin settings class for the quiz review options. More... | |
class | mod_quiz_admin_setting_browsersecurity |
Admin settings class for the quiz browser security option. More... | |
class | mod_quiz_admin_setting_grademethod |
Admin settings class for the quiz grading method. More... | |
class | mod_quiz_admin_setting_overduehandling |
Admin settings class for the quiz overdue attempt handling method. More... | |
class | mod_quiz_admin_setting_user_image |
Admin settings class for the choices for how to display the user's image. More... | |
class | mod_quiz_attempts_report_form |
Base class for the settings form for . More... | |
class | mod_quiz_attempts_report_options |
Base class for the options that control what is visible in an quiz_attempts_report. More... | |
class | mod_quiz_display_options |
An extension of question_display_options that includes the extra options used by the quiz. More... | |
class | mod_quiz_external |
class | mod_quiz_generator |
class | mod_quiz_links_to_other_attempts |
class | mod_quiz_mod_form |
Settings form for the quiz module. More... | |
class | mod_quiz_overdue_attempt_updater |
This class holds all the code for automatically updating all attempts that have gone over their time limit. More... | |
class | mod_quiz_preflight_check_form |
A form that limits student's access to attempt a quiz. More... | |
class | mod_quiz_renderer |
The renderer for the quiz module. More... | |
class | mod_quiz_view_object |
class | moodle1_mod_quiz_handler |
Quiz conversion handler. More... | |
class | moodle_quiz_exception |
Class for quiz exceptions. More... | |
class | qubaids_for_quiz |
A qubaid_condition for finding all the question usages belonging to a particular quiz. More... | |
class | qubaids_for_quiz_user |
A qubaid_condition for finding all the question usages belonging to a particular user and quiz combination. More... | |
class | quiz |
A class encapsulating a quiz and the questions it contains, and making the information available to scripts like view.php. More... | |
class | quiz_access_manager |
This class keeps track of the various access rules that apply to a particular quiz, with convinient methods for seeing whether access is allowed. More... | |
class | quiz_access_rule_base |
A base class that defines the interface for the various quiz access rules. More... | |
class | quiz_add_random_form |
The add random questions form. More... | |
class | quiz_attempt |
This class extends the quiz class to hold data about the state of a particular attempt, in addition to the data about the quiz. More... | |
class | quiz_attempt_nav_panel |
Specialisation of quiz_nav_panel_base for the attempt quiz page. More... | |
class | quiz_attempts_report |
Base class for quiz reports that are basically a table with one row for each attempt. More... | |
class | quiz_attempts_report_table |
Base class for the table used by a quiz_attempts_report. More... | |
class | quiz_default_report |
Base class for quiz report plugins. More... | |
class | quiz_nav_panel_base |
Represents the navigation panel, and builds a block_contents to allow it to be output. More... | |
class | quiz_nav_question_button |
Represents a single link in the navigation panel. More... | |
class | quiz_nav_section_heading |
Represents a heading in the navigation panel. More... | |
class | quiz_override_form |
Form for editing settings overrides. More... | |
class | quiz_review_nav_panel |
Specialisation of quiz_nav_panel_base for the review quiz page. More... | |
class | restore_mod_quiz_access_subplugin |
Base class for restoring up all the quiz settings and attempt data for an access rule quiz sub-plugin. More... | |
class | restore_quiz_activity_task |
quiz restore task that provides all the settings and steps to perform one complete restore of the activity More... | |
Functions | |
mod_quiz_core_calendar_event_timestart_updated (\calendar_event $event, stdClass $quiz) | |
This function will update the quiz module according to the event that has been modified. More... | |
mod_quiz_core_calendar_get_valid_event_timestart_range (\calendar_event $event, stdClass $quiz) | |
Returns the min and max values for the timestart property of a quiz activity event. More... | |
mod_quiz_core_calendar_provide_event_action (calendar_event $event, core_calendar\action_factory $factory, int $userid=0) | |
This function receives a calendar event and returns the action associated with it, or null if there is none. More... | |
mod_quiz_get_completion_active_rule_descriptions ($cm) | |
Callback which returns human-readable strings describing the active completion custom rules for the module instance. More... | |
mod_quiz_get_fontawesome_icon_map () | |
Get icon mapping for font-awesome. | |
mod_quiz_output_fragment_add_random_question_form ($args) | |
Generates the add random question in a fragment output. More... | |
mod_quiz_output_fragment_quiz_question_bank ($args) | |
Generates the question bank in a fragment output. More... | |
quiz_add_instance ($quiz) | |
Given an object containing all the necessary data, (defined by the form in mod_form.php) this function will create a new instance and return the id number of the new instance. More... | |
quiz_add_quiz_question ($questionid, $quiz, $page=0, $maxmark=null) | |
Add a question to a quiz. More... | |
quiz_add_random_questions ($quiz, $addonpage, $categoryid, $number, $includesubcategories, $tagids=[]) | |
Add a random question to the quiz at a given point. More... | |
quiz_after_add_or_update ($quiz) | |
This function is called at the end of quiz_add_instance and quiz_update_instance, to do the common processing. More... | |
quiz_allows_multiple_tries ($quiz) | |
Does this quiz allow multiple tries? More... | |
quiz_attempt_save_started ($quizobj, $quba, $attempt) | |
The save started question usage and quiz attempt in db and log the started attempt. More... | |
quiz_attempt_state ($quiz, $attempt) | |
Work out what state this quiz attempt is in - in the sense used by quiz_get_review_options, not in the sense of $attempt->state. More... | |
quiz_attempt_state_name ($state) | |
Get the human-readable name for a quiz attempt state. More... | |
quiz_attempt_submitted_handler ($event) | |
Handle the quiz_attempt_submitted event. More... | |
quiz_attempt_summary_link_to_reports ($quiz, $cm, $context, $returnzero=false, $currentgroup=0) | |
Returns the same as quiz_num_attempt_summary() but wrapped in a link to the quiz reports. More... | |
quiz_calculate_best_attempt ($quiz, $attempts) | |
Return the attempt with the best grade for a quiz. More... | |
quiz_calculate_best_grade ($quiz, $attempts) | |
Calculate the overall grade for a quiz given a number of attempts by a particular user. More... | |
quiz_check_updates_since (cm_info $cm, $from, $filter=array()) | |
Check if the module has any update that affects the current user since a given time. More... | |
quiz_create_attempt (quiz $quizobj, $attemptnumber, $lastattempt, $timenow, $ispreview=false, $userid=null) | |
Creates an object to represent a new attempt at a quiz. More... | |
quiz_create_attempt_handling_errors ($attemptid, $cmid=null) | |
Get quiz attempt and handling error. More... | |
quiz_delete_all_attempts ($quiz) | |
Delete all the attempts belonging to a quiz. More... | |
quiz_delete_all_overrides ($quiz, $log=true) | |
Deletes all quiz overrides from the database and clears any corresponding calendar events. More... | |
quiz_delete_attempt ($attempt, $quiz) | |
Delete a quiz attempt. More... | |
quiz_delete_instance ($id) | |
Given an ID of an instance of this module, this function will permanently delete the instance and any data that depends on it. More... | |
quiz_delete_override ($quiz, $overrideid, $log=true) | |
Deletes a quiz override from the database and clears any corresponding calendar events. More... | |
quiz_delete_previews ($quiz, $userid=null) | |
Delete all the preview attempts at a quiz, or possibly all the attempts belonging to one user. More... | |
quiz_delete_user_attempts ($quiz, $user) | |
Delete all the attempts belonging to a user in a particular quiz. More... | |
quiz_extend_settings_navigation ($settings, $quiznode) | |
This function extends the settings navigation block for the site. More... | |
quiz_feedback_for_grade ($grade, $quiz, $context) | |
Get the feedback text that should be show to a student who got this grade on this quiz. More... | |
quiz_feedback_record_for_grade ($grade, $quiz) | |
Get the feedback object for this grade on this quiz. More... | |
quiz_format_grade ($quiz, $grade) | |
Round a grade to to the correct number of decimal places, and format it for display. More... | |
quiz_format_question_grade ($quiz, $grade) | |
Round a grade to the correct number of decimal places, and format it for display. More... | |
quiz_get_attempt_usertime_sql ($redundantwhereclauses='') | |
Returns SQL to compute timeclose and timelimit for every attempt, taking into account user and group overrides. More... | |
quiz_get_best_grade ($quiz, $userid) | |
Get the best current grade for a particular user in a quiz. More... | |
quiz_get_combined_reviewoptions ($quiz, $attempts) | |
Combines the review options from a number of different quiz attempts. More... | |
quiz_get_completion_state ($course, $cm, $userid, $type) | |
Obtains the automatic completion state for this quiz on any conditions in quiz settings, such as if all attempts are used or a certain grade is achieved. More... | |
quiz_get_coursemodule_info ($coursemodule) | |
Add a get_coursemodule_info function in case any quiz type wants to add 'extra' information for the course (see resource). More... | |
quiz_get_extra_capabilities () | |
quiz_get_flag_option ($attempt, $context) | |
quiz_get_grade_format ($quiz) | |
Determine the correct number of decimal places required to format a grade. More... | |
quiz_get_grading_option_name ($option) | |
quiz_get_grading_options () | |
quiz_get_group_override_priorities ($quizid) | |
Calculates the priorities of timeopen and timeclose values for group overrides for a quiz. More... | |
quiz_get_js_module () | |
Get the information about the standard quiz JavaScript module. More... | |
quiz_get_navigation_options () | |
quiz_get_overdue_handling_options () | |
quiz_get_post_actions () | |
List the actions that correspond to a post of this module. More... | |
quiz_get_recent_mod_activity (&$activities, &$index, $timestart, $courseid, $cmid, $userid=0, $groupid=0) | |
Returns all quiz graded users since a given time for specified quiz. | |
quiz_get_review_options ($quiz, $attempt, $context) | |
The the appropraite mod_quiz_display_options object for this attempt at this quiz right now. More... | |
quiz_get_user_attempt_unfinished ($quizid, $userid) | |
Returns an unfinished attempt (if there is one) for the given user on the given quiz. More... | |
quiz_get_user_attempts ($quizids, $userid, $status='finished', $includepreviews=false) | |
quiz_get_user_grades ($quiz, $userid=0) | |
Return grade for given user or all users. More... | |
quiz_get_user_image_options () | |
Get the choices for what size user picture to show. More... | |
quiz_get_user_timeclose ($courseid) | |
Return an user's timeclose for all quizzes in a course, hereby taking into account group and user overrides. More... | |
quiz_get_view_actions () | |
List the actions that correspond to a view of this module. More... | |
quiz_grade_item_delete ($quiz) | |
quiz_grade_item_update ($quiz, $grades=null) | |
quiz_groups_group_deleted_handler ($event) | |
Handle groups_group_deleted event. More... | |
quiz_groups_member_added_handler ($event) | |
Handle groups_member_added event. More... | |
quiz_groups_member_removed_handler ($event) | |
Handle groups_member_removed event. More... | |
quiz_groups_members_removed_handler ($event) | |
Handle groups_members_removed event. More... | |
quiz_has_attempts ($quizid) | |
quiz_has_feedback ($quiz) | |
quiz_has_grades ($quiz) | |
Is this a graded quiz? If this method returns true, you can assume that $quiz->grade and $quiz->sumgrades are non-zero (for example, if you want to divide by them). More... | |
quiz_has_question_use ($quiz, $slot) | |
Verify that the question exists, and the user has permission to use it. More... | |
quiz_has_questions ($quizid) | |
Are there any questions in this quiz? More... | |
quiz_is_overriden_calendar_event (\calendar_event $event) | |
Check if the given calendar_event is either a user or group override event for quiz. More... | |
quiz_no_questions_message ($quiz, $cm, $context) | |
Generate a message saying that this quiz has no questions, with a button to go to the edit page, if the user has the right capability. More... | |
quiz_num_attempt_summary ($quiz, $cm, $returnzero=false, $currentgroup=0) | |
Return a textual summary of the number of attempts that have been made at a particular quiz, returns '' if no attempts have been made yet, unless $returnzero is passed as true. More... | |
quiz_page_type_list ($pagetype, $parentcontext, $currentcontext) | |
Return a list of page types. More... | |
quiz_pluginfile ($course, $cm, $context, $filearea, $args, $forcedownload, array $options=array()) | |
quiz_prepare_and_start_new_attempt (quiz $quizobj, $attemptnumber, $lastattempt, $offlineattempt=false, $forcedrandomquestions=[], $forcedvariants=[], $userid=null) | |
Prepare and start a new attempt deleting the previous preview attempts. More... | |
quiz_print_overview () | |
quiz_print_recent_mod_activity ($activity, $courseid, $detail, $modnames) | |
quiz_process_group_deleted_in_course ($courseid) | |
Logic to happen when a/some group(s) has/have been deleted in a course. More... | |
quiz_process_options ($quiz) | |
Pre-process the quiz options form data, making any necessary adjustments. More... | |
quiz_question_action_icons ($quiz, $cmid, $question, $returnurl, $variant=null) | |
quiz_question_edit_button ($cmid, $question, $returnurl, $contentaftericon='') | |
quiz_question_pluginfile ($course, $context, $component, $filearea, $qubaid, $slot, $args, $forcedownload, array $options=array()) | |
quiz_question_preview_button ($quiz, $question, $label=false, $variant=null) | |
quiz_question_preview_url ($quiz, $question, $variant=null) | |
quiz_question_tostring ($question, $showicon=false, $showquestiontext=true, $showidnumber=false, $showtags=false) | |
Creates a textual representation of a question for display. More... | |
quiz_questions_in_use ($questionids) | |
quiz_questions_per_page_options () | |
Get the choices to offer for the 'Questions per page' option. More... | |
quiz_refresh_events ($courseid=0, $instance=null, $cm=null) | |
This standard function will check all instances of this module and make sure there are up-to-date events created for each of them. More... | |
quiz_repaginate_questions ($quizid, $slotsperpage) | |
Repaginate the questions in a quiz. More... | |
quiz_report_can_filter_only_graded ($quiz) | |
quiz_report_default_report ($context) | |
Get the default report for the current user. More... | |
quiz_report_download_filename ($report, $courseshortname, $quizname) | |
Create a filename for use when downloading data from a quiz report. More... | |
quiz_report_feedback_for_grade ($grade, $quizid, $context) | |
Get the feedback text for a grade on this quiz. More... | |
quiz_report_get_significant_questions ($quiz) | |
Get the slots of real questions (not descriptions) in this quiz, in order. More... | |
quiz_report_grade_bands ($bandwidth, $bands, $quizid, core\dml\sql_join $usersjoins=null) | |
Get the number of students whose score was in a particular band for this quiz. More... | |
quiz_report_grade_method_sql ($grademethod, $quizattemptsalias='quiza') | |
Given a quiz grading method return sql to test if this is an attempt that will be contribute towards the grade of the user. More... | |
quiz_report_highlighting_grading_method ($quiz, $qmsubselect, $qmfilter) | |
quiz_report_index_by_keys ($datum, $keys, $keysunique=true) | |
Takes an array of objects and constructs a multidimensional array keyed by the keys it finds on the object. More... | |
quiz_report_list ($context) | |
Returns an array of reports to which the current user has access to. More... | |
quiz_report_qm_filter_select ($quiz, $quizattemptsalias='quiza') | |
This is a wrapper for } that takes the whole quiz object instead of just the grading method * as a param. More... | |
quiz_report_scale_summarks_as_percentage ($rawmark, $quiz, $round=true) | |
Format a number as a percentage out of $quiz->sumgrades. More... | |
quiz_report_should_show_grades ($quiz, context $context) | |
Should the grades be displayed in this report. More... | |
quiz_report_unindex ($datum) | |
quiz_require_question_use ($questionid) | |
Verify that the question exists, and the user has permission to use it. More... | |
quiz_rescale_grade ($rawgrade, $quiz, $format=true) | |
Convert the raw grade stored in $attempt into a grade out of the maximum grade for this quiz. More... | |
quiz_reset_course_form_defaults ($course) | |
Course reset form defaults. More... | |
quiz_reset_course_form_definition ($mform) | |
Implementation of the function for printing the form elements that control whether the course reset functionality affects the quiz. More... | |
quiz_reset_gradebook ($courseid, $type='') | |
Removes all grades from gradebook. More... | |
quiz_reset_userdata ($data) | |
Actual implementation of the reset course functionality, delete all the quiz attempts for course $data->courseid, if $data->reset_quiz_attempts is set and true. More... | |
quiz_retrieve_slot_tag_ids ($slotid) | |
Retrieves tag ids for the given quiz slot. More... | |
quiz_retrieve_slot_tags ($slotid) | |
Retrieves tag information for the given quiz slot. More... | |
quiz_retrieve_tags_for_slot_ids ($slotids) | |
Retrieves tag information for the given list of quiz slot ids. More... | |
quiz_review_option_form_to_db ($fromform, $field) | |
Helper function for quiz_process_options(). More... | |
quiz_save_best_grade ($quiz, $userid=null, $attempts=array()) | |
Save the overall grade for a user at a quiz in the quiz_grades table. More... | |
quiz_send_confirmation ($recipient, $a) | |
Sends a confirmation message to the student confirming that the attempt was processed. More... | |
quiz_send_notification ($recipient, $submitter, $a) | |
Sends notification messages to the interested parties that assign the role capability. More... | |
quiz_send_notification_messages ($course, $quiz, $attempt, $context, $cm) | |
Send all the requried messages when a quiz attempt is submitted. More... | |
quiz_send_overdue_message ($attemptobj) | |
Send the notification message when a quiz attempt becomes overdue. More... | |
quiz_set_grade ($newgrade, $quiz) | |
The quiz grade is the maximum that student's results are marked out of. More... | |
quiz_start_attempt_built_on_last ($quba, $attempt, $lastattempt) | |
Start a subsequent new attempt, in each attempt builds on last mode. More... | |
quiz_start_new_attempt ($quizobj, $quba, $attempt, $attemptnumber, $timenow, $questionids=array(), $forcedvariantsbyslot=array()) | |
Start a normal, new, quiz attempt. More... | |
quiz_supports ($feature) | |
quiz_update_all_attempt_sumgrades ($quiz) | |
Update the sumgrades field of the attempts at a quiz. More... | |
quiz_update_all_final_grades ($quiz) | |
Update the final grade at this quiz for all students. More... | |
quiz_update_effective_access ($quiz, $userid) | |
Updates a quiz object with override information for a user. More... | |
quiz_update_events ($quiz, $override=null) | |
This function updates the events associated to the quiz. More... | |
quiz_update_grades ($quiz, $userid=0, $nullifnone=true) | |
quiz_update_instance ($quiz, $mform) | |
Given an object containing all the necessary data, (defined by the form in mod_form.php) this function will update an existing instance with new data. More... | |
quiz_update_open_attempts (array $conditions) | |
Efficiently update check state time on all open attempts. More... | |
quiz_update_section_firstslots ($quizid, $direction, $afterslot, $beforeslot=null) | |
Move all the section headings in a certain slot range by a certain offset. More... | |
quiz_update_sumgrades ($quiz) | |
Update the sumgrades field of the quiz. More... | |
quiz_user_complete ($course, $user, $mod, $quiz) | |
Print a detailed representation of what a user has done with a given particular instance of this module, for user activity reports. More... | |
quiz_user_outline ($course, $user, $mod, $quiz) | |
Return a small object with summary information about what a user has done with a given particular instance of this module Used for user activity reports. More... | |
quiz_validate_new_attempt (quiz $quizobj, quiz_access_manager $accessmanager, $forcenew, $page, $redirect) | |
Validate permissions for creating a new attempt and start a new preview attempt if required. More... | |
quiz_view ($quiz, $course, $cm, $context) | |
Mark the activity completed (if required) and trigger the course_module_viewed event. More... | |
xmldb_quiz_upgrade ($oldversion) | |
Quiz module upgrade function. More... | |
Variables | |
$capabilities | |
$functions | |
$logs | |
$messageproviders | |
$observers | |
$quizsettings = new admin_settingpage('modsettingquiz', $pagetitle, 'moodle/site:config') | |
$reports = core_component::get_plugin_list_with_file('quiz', 'settings.php', false) | |
$reportsbyname = array() | |
$rules = core_component::get_plugin_list_with_file('quizaccess', 'settings.php', false) | |
$rulesbyname = array() | |
foreach($reportsbyname as $strreportname=> $report) foreach($rulesbyname as $strrulename=> $rule) | $settings = null |
$tasks | |
$plugin | component = 'mod_quiz' |
if(empty($reportsbyname) &&empty($rulesbyname)) | else |
const | QUIZ_ATTEMPTFIRST '3' |
const | QUIZ_ATTEMPTLAST '4' |
const | QUIZ_EVENT_TYPE_CLOSE 'close' |
const | QUIZ_EVENT_TYPE_OPEN 'open' |
#- More... | |
const | QUIZ_GRADEAVERAGE '2' |
const | QUIZ_GRADEHIGHEST '1' |
#- More... | |
const | QUIZ_MAX_ATTEMPT_OPTION 10 |
#+ Option controlling what options are offered on the quiz settings form. | |
const | QUIZ_MAX_DECIMAL_OPTION 5 |
const | QUIZ_MAX_EVENT_LENGTH 5*24*60*60 |
#- More... | |
const | QUIZ_MAX_Q_DECIMAL_OPTION 7 |
const | QUIZ_MAX_QPP_OPTION 50 |
const | QUIZ_MIN_TIME_TO_CONTINUE '2' |
If there are fewer than this many seconds left when the student submits a page of the quiz, then do not take them to the next page of the quiz. More... | |
const | QUIZ_NAVMETHOD_FREE 'free' |
#+ Options for navigation method within quizzes. | |
const | QUIZ_NAVMETHOD_SEQ 'sequential' |
const | QUIZ_SHOW_TIME_BEFORE_DEADLINE '3600' |
We show the countdown timer if there is less than this amount of time left before the the quiz close date. More... | |
const | QUIZ_SHOWIMAGE_LARGE 2 |
We show Large image when user selects Large image from dropdown menu in quiz settings. | |
const | QUIZ_SHOWIMAGE_NONE 0 |
We show no image when user selects No image from dropdown menu in quiz settings. | |
const | QUIZ_SHOWIMAGE_SMALL 1 |
We show small image when user selects small image from dropdown menu in quiz settings. | |
$plugin | requires = 2019111200 |
$plugin | version = 2019111800 |
mod_quiz_core_calendar_event_timestart_updated | ( | \calendar_event | $event, |
stdClass | $quiz | ||
) |
This function will update the quiz module according to the event that has been modified.
It will set the timeopen or timeclose value of the quiz instance according to the type of event provided.
moodle_exception |
calendar_event | $event | A quiz activity calendar event |
stdClass | $quiz | A quiz activity instance |
mod_quiz_core_calendar_get_valid_event_timestart_range | ( | \calendar_event | $event, |
stdClass | $quiz | ||
) |
Returns the min and max values for the timestart property of a quiz activity event.
The min and max values will be the timeopen and timeclose properties of the quiz, respectively, if they are set.
If either value isn't set then null will be returned instead to indicate that there is no cutoff for that value.
If the vent has no valid timestart range then [false, false] will be returned. This is the case for overriden events.
A minimum and maximum cutoff return value will look like: [ [1505704373, 'The date must be after this date'], [1506741172, 'The date must be before this date'] ]
moodle_exception |
calendar_event | $event | The calendar event to get the time range for |
stdClass | $quiz | The module instance to get the range from |
array |
mod_quiz_core_calendar_provide_event_action | ( | calendar_event | $event, |
core_calendar\action_factory | $factory, | ||
int | $userid = 0 |
||
) |
This function receives a calendar event and returns the action associated with it, or null if there is none.
This is used by block_myoverview in order to display the event appropriately. If null is returned then the event is not displayed on the block.
calendar_event | $event | |
core_calendar\action_factory | $factory | |
int | $userid | User id to use for all capability checks, etc. Set to 0 for current user (default). |
core_calendar |
mod_quiz_get_completion_active_rule_descriptions | ( | $cm | ) |
Callback which returns human-readable strings describing the active completion custom rules for the module instance.
cm_info | stdClass | $cm | object with fields ->completion and ->customdata['customcompletionrules'] |
array::$descriptions | the array of descriptions for the custom rules. |
mod_quiz_output_fragment_add_random_question_form | ( | $args | ) |
Generates the add random question in a fragment output.
This allows the form to be rendered in javascript, for example inside a modal.
The required arguments as keys in the $args array are: cat {string} The category and category context ids comma separated. addonpage {int} The page id to add this question to. returnurl {string} URL to return to after form submission. cmid {int} The course module id the questions are being added to.
array | $args | The fragment arguments. |
string | The rendered mform fragment. |
mod_quiz_output_fragment_quiz_question_bank | ( | $args | ) |
Generates the question bank in a fragment output.
This allows the question bank to be displayed in a modal.
The only expected argument provided in the $args array is 'querystring'. The value should be the list of parameters URL encoded and used to build the question bank page.
The individual list of parameters expected can be found in question_build_edit_resources.
array | $args | The fragment arguments. |
string | The rendered mform fragment. |
quiz_add_instance | ( | $quiz | ) |
Given an object containing all the necessary data, (defined by the form in mod_form.php) this function will create a new instance and return the id number of the new instance.
object | $quiz | the data that came from the form. |
mixed | the id of the new instance on success, false or a string error message on failure. |
quiz_add_quiz_question | ( | $questionid, | |
$quiz, | |||
$page = 0 , |
|||
$maxmark = null |
|||
) |
Add a question to a quiz.
Adds a question to a quiz by updating $quiz as well as the quiz and quiz_slots tables. It also adds a page break if required.
int | $questionid | The id of the question to be added |
object | $quiz | The extended quiz object as used by edit.php This is updated by this function |
int | $page | Which page in quiz to add the question on. If 0 (default), add at the end |
float | $maxmark | The maximum mark to set for this question. (Optional, defaults to question.defaultmark. |
bool | false if the question was already in the quiz |
quiz_add_random_questions | ( | $quiz, | |
$addonpage, | |||
$categoryid, | |||
$number, | |||
$includesubcategories, | |||
$tagids = [] |
|||
) |
Add a random question to the quiz at a given point.
stdClass | $quiz | the quiz settings. |
int | $addonpage | the page on which to add the question. |
int | $categoryid | the question category to add the question from. |
int | $number | the number of random questions to add. |
bool | $includesubcategories | whether to include questoins from subcategories. |
int[] | $tagids | Array of tagids. The question that will be picked randomly should be tagged with all these tags. |
quiz_after_add_or_update | ( | $quiz | ) |
This function is called at the end of quiz_add_instance and quiz_update_instance, to do the common processing.
object | $quiz | the quiz object. |
quiz_allows_multiple_tries | ( | $quiz | ) |
Does this quiz allow multiple tries?
bool |
quiz_attempt_save_started | ( | $quizobj, | |
$quba, | |||
$attempt | |||
) |
The save started question usage and quiz attempt in db and log the started attempt.
quiz | $quizobj | |
question_usage_by_activity | $quba | |
object | $attempt |
object | attempt object with uniqueid and id set. |
quiz_attempt_state | ( | $quiz, | |
$attempt | |||
) |
Work out what state this quiz attempt is in - in the sense used by quiz_get_review_options, not in the sense of $attempt->state.
object | $quiz | the quiz settings |
object | $attempt | the quiz_attempt database row. |
int | one of the mod_quiz_display_options::DURING, IMMEDIATELY_AFTER, LATER_WHILE_OPEN or AFTER_CLOSE constants. |
quiz_attempt_state_name | ( | $state | ) |
Get the human-readable name for a quiz attempt state.
string | $state | one of the state constants like quiz_attempt::IN_PROGRESS. |
string | The lang string to describe that state. |
quiz_attempt_submitted_handler | ( | $event | ) |
Handle the quiz_attempt_submitted event.
This sends the confirmation and notification messages, if required.
object | $event | the event object. |
quiz_attempt_summary_link_to_reports | ( | $quiz, | |
$cm, | |||
$context, | |||
$returnzero = false , |
|||
$currentgroup = 0 |
|||
) |
Returns the same as quiz_num_attempt_summary() but wrapped in a link to the quiz reports.
object | $quiz | the quiz object. Only $quiz->id is used at the moment. |
object | $cm | the cm object. Only $cm->course, $cm->groupmode and $cm->groupingid fields are used at the moment. |
object | $context | the quiz context. |
bool | $returnzero | if false (default), when no attempts have been made '' is returned instead of 'Attempts: 0'. |
int | $currentgroup | if there is a concept of current group where this method is being called (e.g. a report) pass it in here. Default 0 which means no current group. |
string | HTML fragment for the link. |
quiz_calculate_best_attempt | ( | $quiz, | |
$attempts | |||
) |
Return the attempt with the best grade for a quiz.
Which attempt is the best depends on $quiz->grademethod. If the grade method is GRADEAVERAGE then this function simply returns the last attempt.
object | The attempt with the best grade |
object | $quiz | The quiz for which the best grade is to be calculated |
array | $attempts | An array of all the attempts of the user at the quiz |
quiz_calculate_best_grade | ( | $quiz, | |
$attempts | |||
) |
Calculate the overall grade for a quiz given a number of attempts by a particular user.
object | $quiz | the quiz settings object. |
array | $attempts | an array of all the user's attempts at this quiz in order. |
float | the overall grade |
quiz_check_updates_since | ( | cm_info | $cm, |
$from, | |||
$filter = array() |
|||
) |
Check if the module has any update that affects the current user since a given time.
cm_info | $cm | course module data |
int | $from | the time to check updates from |
array | $filter | if we need to check only specific updates |
stdClass | an object with the different type of areas indicating if they were updated or not |
quiz_create_attempt | ( | quiz | $quizobj, |
$attemptnumber, | |||
$lastattempt, | |||
$timenow, | |||
$ispreview = false , |
|||
$userid = null |
|||
) |
Creates an object to represent a new attempt at a quiz.
Creates an attempt object to represent an attempt at the quiz by the current user starting at the current time. The ->id field is not set. The object is NOT written to the database.
object | $quizobj | the quiz object to create an attempt for. |
int | $attemptnumber | the sequence number for the attempt. |
object | $lastattempt | the previous attempt by this user, if any. Only needed if $attemptnumber > 1 and $quiz->attemptonlast is true. |
int | $timenow | the time the attempt was started at. |
bool | $ispreview | whether this new attempt is a preview. |
int | $userid | the id of the user attempting this quiz. |
object | the newly created attempt object. |
quiz_create_attempt_handling_errors | ( | $attemptid, | |
$cmid = null |
|||
) |
Get quiz attempt and handling error.
int | $attemptid | the id of the current attempt. |
int | null | $cmid | the course_module id for this quiz. |
quiz_attempt::$attemptobj | all the data about the quiz attempt. |
moodle_exception |
quiz_delete_all_attempts | ( | $quiz | ) |
Delete all the attempts belonging to a quiz.
object | $quiz | The quiz object. |
quiz_delete_all_overrides | ( | $quiz, | |
$log = true |
|||
) |
Deletes all quiz overrides from the database and clears any corresponding calendar events.
object | $quiz | The quiz object. |
bool | $log | Whether to trigger logs. |
quiz_delete_attempt | ( | $attempt, | |
$quiz | |||
) |
Delete a quiz attempt.
mixed | $attempt | an integer attempt id or an attempt object (row of the quiz_attempts table). |
object | $quiz | the quiz object. |
quiz_delete_instance | ( | $id | ) |
Given an ID of an instance of this module, this function will permanently delete the instance and any data that depends on it.
int | $id | the id of the quiz to delete. |
bool | success or failure. |
quiz_delete_override | ( | $quiz, | |
$overrideid, | |||
$log = true |
|||
) |
Deletes a quiz override from the database and clears any corresponding calendar events.
object | $quiz | The quiz object. |
int | $overrideid | The id of the override being deleted |
bool | $log | Whether to trigger logs. |
bool | true on success |
quiz_delete_previews | ( | $quiz, | |
$userid = null |
|||
) |
Delete all the preview attempts at a quiz, or possibly all the attempts belonging to one user.
object | $quiz | the quiz object. |
int | $userid | (optional) if given, only delete the previews belonging to this user. |
quiz_delete_user_attempts | ( | $quiz, | |
$user | |||
) |
Delete all the attempts belonging to a user in a particular quiz.
object | $quiz | The quiz object. |
object | $user | The user object. |
quiz_extend_settings_navigation | ( | $settings, | |
$quiznode | |||
) |
This function extends the settings navigation block for the site.
It is safe to rely on PAGE here as we will only ever be within the module context when this is called
settings_navigation | $settings | |
navigation_node | $quiznode |
void |
quiz_feedback_for_grade | ( | $grade, | |
$quiz, | |||
$context | |||
) |
Get the feedback text that should be show to a student who got this grade on this quiz.
The feedback is processed ready for diplay.
float | $grade | a grade on this quiz. |
object | $quiz | the quiz settings. |
object | $context | the quiz context. |
string | the comment that corresponds to this grade (empty string if there is not one. |
quiz_feedback_record_for_grade | ( | $grade, | |
$quiz | |||
) |
Get the feedback object for this grade on this quiz.
float | $grade | a grade on this quiz. |
object | $quiz | the quiz settings. |
false|stdClass | the record object or false if there is not feedback for the given grade |
quiz_format_grade | ( | $quiz, | |
$grade | |||
) |
Round a grade to to the correct number of decimal places, and format it for display.
object | $quiz | The quiz table row, only $quiz->decimalpoints is used. |
float | $grade | The grade to round. |
float |
quiz_format_question_grade | ( | $quiz, | |
$grade | |||
) |
Round a grade to the correct number of decimal places, and format it for display.
object | $quiz | The quiz table row, only $quiz->decimalpoints is used. |
float | $grade | The grade to round. |
float |
quiz_get_attempt_usertime_sql | ( | $redundantwhereclauses = '' | ) |
Returns SQL to compute timeclose and timelimit for every attempt, taking into account user and group overrides.
The query used herein is very similar to the one in function quiz_get_user_timeclose, so, in case you would change either one of them, make sure to apply your changes to both.
string | $redundantwhereclauses | extra where clauses to add to the subquery for performance. These can use the table alias iquiza for the quiz attempts table. |
string | SQL select with columns attempt.id, usertimeclose, usertimelimit. |
quiz_get_best_grade | ( | $quiz, | |
$userid | |||
) |
Get the best current grade for a particular user in a quiz.
object | $quiz | the quiz settings. |
int | $userid | the id of the user. |
float | the user's current grade for this quiz, or null if this user does not have a grade on this quiz. |
quiz_get_combined_reviewoptions | ( | $quiz, | |
$attempts | |||
) |
Combines the review options from a number of different quiz attempts.
Returns an array of two ojects, so the suggested way of calling this funciton is: list($someoptions, $alloptions) = quiz_get_combined_reviewoptions(...)
object | $quiz | the quiz instance. |
array | $attempts | an array of attempt objects. |
array | of two options objects, one showing which options are true for at least one of the attempts, the other showing which options are true for all attempts. |
quiz_get_completion_state | ( | $course, | |
$cm, | |||
$userid, | |||
$type | |||
) |
Obtains the automatic completion state for this quiz on any conditions in quiz settings, such as if all attempts are used or a certain grade is achieved.
object | $course | Course |
object | $cm | Course-module |
int | $userid | User ID |
bool | $type | Type of comparison (or/and; can be used as return value if no conditions) |
bool | True if completed, false if not. (If no conditions, then return value depends on comparison type) |
quiz_get_coursemodule_info | ( | $coursemodule | ) |
Add a get_coursemodule_info function in case any quiz type wants to add 'extra' information for the course (see resource).
Given a course_module object, this function returns any "extra" information that may be needed when printing this activity in a course listing. See get_array_of_activities() in course/lib.php.
stdClass | $coursemodule | The coursemodule object (record). |
cached_cm_info | An object on information that the courses will know about (most noticeably, an icon). |
quiz_get_extra_capabilities | ( | ) |
array | all other caps used in module |
quiz_get_flag_option | ( | $attempt, | |
$context | |||
) |
object | $attempt | the attempt. |
object | $context | the quiz context. |
int | whether flags should be shown/editable to the current user for this attempt. |
quiz_get_grade_format | ( | $quiz | ) |
Determine the correct number of decimal places required to format a grade.
object | $quiz | The quiz table row, only $quiz->decimalpoints is used. |
integer |
quiz_get_grading_option_name | ( | $option | ) |
int | $option | one of the values QUIZ_GRADEHIGHEST, QUIZ_GRADEAVERAGE, QUIZ_ATTEMPTFIRST or QUIZ_ATTEMPTLAST. |
the | lang string for that option. |
quiz_get_grading_options | ( | ) |
array | int => lang string the options for calculating the quiz grade from the individual attempt grades. |
quiz_get_group_override_priorities | ( | $quizid | ) |
Calculates the priorities of timeopen and timeclose values for group overrides for a quiz.
int | $quizid | The quiz ID. |
array|null | Array of group override priorities for open and close times. Null if there are no group overrides. |
quiz_get_js_module | ( | ) |
Get the information about the standard quiz JavaScript module.
array | a standard jsmodule structure. |
quiz_get_navigation_options | ( | ) |
the | options for quiz navigation. |
quiz_get_overdue_handling_options | ( | ) |
array | string => lang string the options for handling overdue quiz attempts. |
quiz_get_post_actions | ( | ) |
List the actions that correspond to a post of this module.
This is used by the participation report.
Note: This is not used by new logging system. Event with crud = ('c' || 'u' || 'd') and edulevel = LEVEL_PARTICIPATING will be considered as post action.
array |
quiz_get_review_options | ( | $quiz, | |
$attempt, | |||
$context | |||
) |
The the appropraite mod_quiz_display_options object for this attempt at this quiz right now.
stdClass | $quiz | the quiz instance. |
stdClass | $attempt | the attempt in question. |
context | $context | the quiz context. |
mod_quiz_display_options |
quiz_get_user_attempt_unfinished | ( | $quizid, | |
$userid | |||
) |
Returns an unfinished attempt (if there is one) for the given user on the given quiz.
This function does not return preview attempts.
int | $quizid | the id of the quiz. |
int | $userid | the id of the user. |
mixed | the unfinished attempt if there is one, false if not. |
quiz_get_user_attempts | ( | $quizids, | |
$userid, | |||
$status = 'finished' , |
|||
$includepreviews = false |
|||
) |
int | array | $quizids | A quiz ID, or an array of quiz IDs. |
int | $userid | the userid. |
string | $status | 'all', 'finished' or 'unfinished' to control |
bool | $includepreviews |
an | array of all the user's attempts at this quiz. Returns an empty array if there are none. |
quiz_get_user_grades | ( | $quiz, | |
$userid = 0 |
|||
) |
Return grade for given user or all users.
int | $quizid | id of quiz |
int | $userid | optional user id, 0 means all users |
array | array of grades, false if none. These are raw grades. They should be processed with quiz_format_grade for display. |
quiz_get_user_image_options | ( | ) |
Get the choices for what size user picture to show.
array | string => lang string the options for whether to display the user's picture. |
quiz_get_user_timeclose | ( | $courseid | ) |
Return an user's timeclose for all quizzes in a course, hereby taking into account group and user overrides.
int | $courseid | the course id. |
object | An object with of all quizids and close unixdates in this course, taking into account the most lenient overrides, if existing and 0 if no close date is set. |
quiz_get_view_actions | ( | ) |
List the actions that correspond to a view of this module.
This is used by the participation report.
Note: This is not used by new logging system. Event with crud = 'r' and edulevel = LEVEL_PARTICIPATING will be considered as view action.
array |
quiz_groups_group_deleted_handler | ( | $event | ) |
Handle groups_group_deleted event.
object | $event | the event object. |
quiz_groups_member_added_handler | ( | $event | ) |
Handle groups_member_added event.
object | $event | the event object. |
quiz_groups_member_removed_handler | ( | $event | ) |
Handle groups_member_removed event.
object | $event | the event object. |
quiz_groups_members_removed_handler | ( | $event | ) |
Handle groups_members_removed event.
object | $event | the event object. |
quiz_has_attempts | ( | $quizid | ) |
int | $quizid | The quiz id. |
bool | whether this quiz has any (non-preview) attempts. |
quiz_has_feedback | ( | $quiz | ) |
object | $quiz | the quiz database row. |
bool | Whether this quiz has any non-blank feedback text. |
quiz_has_grades | ( | $quiz | ) |
Is this a graded quiz? If this method returns true, you can assume that $quiz->grade and $quiz->sumgrades are non-zero (for example, if you want to divide by them).
object | $quiz | a row from the quiz table. |
bool | whether this is a graded quiz. |
quiz_has_question_use | ( | $quiz, | |
$slot | |||
) |
Verify that the question exists, and the user has permission to use it.
object | $quiz | the quiz settings. |
int | $slot | which question in the quiz to test. |
bool | whether the user can use this question. |
quiz_has_questions | ( | $quizid | ) |
Are there any questions in this quiz?
int | $quizid | the quiz id. |
quiz_is_overriden_calendar_event | ( | \calendar_event | $event | ) |
Check if the given calendar_event is either a user or group override event for quiz.
calendar_event | $event | The calendar event to check |
bool |
quiz_no_questions_message | ( | $quiz, | |
$cm, | |||
$context | |||
) |
Generate a message saying that this quiz has no questions, with a button to go to the edit page, if the user has the right capability.
object | $quiz | the quiz settings. |
object | $cm | the course_module object. |
object | $context | the quiz context. |
string | HTML to output. |
quiz_num_attempt_summary | ( | $quiz, | |
$cm, | |||
$returnzero = false , |
|||
$currentgroup = 0 |
|||
) |
Return a textual summary of the number of attempts that have been made at a particular quiz, returns '' if no attempts have been made yet, unless $returnzero is passed as true.
object | $quiz | the quiz object. Only $quiz->id is used at the moment. |
object | $cm | the cm object. Only $cm->course, $cm->groupmode and $cm->groupingid fields are used at the moment. |
bool | $returnzero | if false (default), when no attempts have been made '' is returned instead of 'Attempts: 0'. |
int | $currentgroup | if there is a concept of current group where this method is being called (e.g. a report) pass it in here. Default 0 which means no current group. |
string | a string like "Attempts: 123", "Attemtps 123 (45 from your groups)" or "Attemtps 123 (45 from this group)". |
quiz_page_type_list | ( | $pagetype, | |
$parentcontext, | |||
$currentcontext | |||
) |
Return a list of page types.
string | $pagetype | current page type |
stdClass | $parentcontext | Block's parent context |
stdClass | $currentcontext | Current context of block |
quiz_prepare_and_start_new_attempt | ( | quiz | $quizobj, |
$attemptnumber, | |||
$lastattempt, | |||
$offlineattempt = false , |
|||
$forcedrandomquestions = [] , |
|||
$forcedvariants = [] , |
|||
$userid = null |
|||
) |
Prepare and start a new attempt deleting the previous preview attempts.
quiz | $quizobj | quiz object |
int | $attemptnumber | the attempt number |
object | $lastattempt | last attempt object |
bool | $offlineattempt | whether is an offline attempt or not |
array | $forcedrandomquestions | slot number => question id. Used for random questions, to force the choice of a particular actual question. Intended for testing purposes only. |
array | $forcedvariants | slot number => variant. Used for questions with variants, to force the choice of a particular variant. Intended for testing purposes only. |
int | $userid | Specific user id to create an attempt for that user, null for current logged in user |
object | the new attempt |
quiz_print_overview | ( | ) |
quiz_process_group_deleted_in_course | ( | $courseid | ) |
Logic to happen when a/some group(s) has/have been deleted in a course.
int | $courseid | The course ID. |
void |
quiz_process_options | ( | $quiz | ) |
Pre-process the quiz options form data, making any necessary adjustments.
Called by add/update instance in this file.
object | $quiz | The variables set on the form. |
quiz_question_action_icons | ( | $quiz, | |
$cmid, | |||
$question, | |||
$returnurl, | |||
$variant = null |
|||
) |
object | $quiz | the quiz. |
int | $cmid | the course_module object for this quiz. |
object | $question | the question. |
string | $returnurl | url to return to after action is done. |
int | $variant | which question variant to preview (optional). |
string | html for a number of icons linked to action pages for a question - preview and edit / view icons depending on user capabilities. |
quiz_question_edit_button | ( | $cmid, | |
$question, | |||
$returnurl, | |||
$contentaftericon = '' |
|||
) |
int | $cmid | the course_module.id for this quiz. |
object | $question | the question. |
string | $returnurl | url to return to after action is done. |
string | $contentbeforeicon | some HTML content to be added inside the link, before the icon. |
the | HTML for an edit icon, view icon, or nothing for a question (depending on permissions). |
quiz_question_preview_button | ( | $quiz, | |
$question, | |||
$label = false , |
|||
$variant = null |
|||
) |
object | $quiz | the quiz settings |
object | $question | the question |
bool | $label | if true, show the preview question label after the icon |
int | $variant | which question variant to preview (optional). |
the | HTML for a preview question icon. |
quiz_question_preview_url | ( | $quiz, | |
$question, | |||
$variant = null |
|||
) |
object | $quiz | the quiz settings |
object | $question | the question |
int | $variant | which question variant to preview (optional). |
moodle_url | to preview this question with the options from this quiz. |
quiz_question_tostring | ( | $question, | |
$showicon = false , |
|||
$showquestiontext = true , |
|||
$showidnumber = false , |
|||
$showtags = false |
|||
) |
Creates a textual representation of a question for display.
object | $question | A question object from the database questions table |
bool | $showicon | If true, show the question's icon with the question. False by default. |
bool | $showquestiontext | If true (default), show question text after question name. If false, show only question name. |
bool | $showidnumber | If true, show the question's idnumber, if any. False by default. |
core_tag_tag[] | bool | $showtags | if array passed, show those tags. Else, if true, get and show tags, else, don't show tags (which is the default). |
string | HTML fragment. |
quiz_questions_in_use | ( | $questionids | ) |
array | $questionids | of question ids. |
bool | whether any of these questions are used by any instance of this module. |
quiz_questions_per_page_options | ( | ) |
Get the choices to offer for the 'Questions per page' option.
array | int => string. |
quiz_refresh_events | ( | $courseid = 0 , |
|
$instance = null , |
|||
$cm = null |
|||
) |
This standard function will check all instances of this module and make sure there are up-to-date events created for each of them.
If courseid = 0, then every quiz event in the site is checked, else only quiz events belonging to the course specified are checked. This function is used, in its new format, by restore_refresh_events()
int | $courseid | |
int | stdClass | $instance | Quiz module instance or ID. |
int | stdClass | $cm | Course module object or ID (not used in this module). |
bool |
quiz_repaginate_questions | ( | $quizid, | |
$slotsperpage | |||
) |
Repaginate the questions in a quiz.
int | $quizid | the id of the quiz to repaginate. |
int | $slotsperpage | number of items to put on each page. 0 means unlimited. |
quiz_report_can_filter_only_graded | ( | $quiz | ) |
object | $quiz | the quiz settings. |
bool | whether, for this quiz, it is possible to filter attempts to show only those that gave the final grade. |
quiz_report_default_report | ( | $context | ) |
Get the default report for the current user.
object | $context | the quiz context. |
quiz_report_download_filename | ( | $report, | |
$courseshortname, | |||
$quizname | |||
) |
Create a filename for use when downloading data from a quiz report.
It is expected that this will be passed to flexible_table::is_downloading, which cleans the filename of bad characters and adds the file extension.
string | $report | the type of report. |
string | $courseshortname | the course shortname. |
string | $quizname | the quiz name. |
string | the filename. |
quiz_report_feedback_for_grade | ( | $grade, | |
$quizid, | |||
$context | |||
) |
Get the feedback text for a grade on this quiz.
The feedback is processed ready for display.
float | $grade | a grade on this quiz. |
int | $quizid | the id of the quiz object. |
string | the comment that corresponds to this grade (empty string if there is not one. |
quiz_report_get_significant_questions | ( | $quiz | ) |
Get the slots of real questions (not descriptions) in this quiz, in order.
object | $quiz | the quiz. |
array | of slot => $question object with fields ->slot, ->id, ->maxmark, ->number, ->length. |
quiz_report_grade_bands | ( | $bandwidth, | |
$bands, | |||
$quizid, | |||
core\dml\sql_join | $usersjoins = null |
||
) |
Get the number of students whose score was in a particular band for this quiz.
number | $bandwidth | the width of each band. |
int | $bands | the number of bands |
int | $quizid | the quiz id. |
core\dml\sql_join | $usersjoins | (joins, wheres, params) to get enrolled users |
array | band number => number of users with scores in that band. |
quiz_report_grade_method_sql | ( | $grademethod, | |
$quizattemptsalias = 'quiza' |
|||
) |
Given a quiz grading method return sql to test if this is an attempt that will be contribute towards the grade of the user.
Or return an empty string if the grading method is QUIZ_GRADEAVERAGE and thus all attempts contribute to final grade.
string | $grademethod | quiz grading method. |
string | $quizattemptsalias | sql alias for 'quiz_attempts' table |
string | sql to test if this is an attempt that will contribute towards the graded of the user |
quiz_report_index_by_keys | ( | $datum, | |
$keys, | |||
$keysunique = true |
|||
) |
Takes an array of objects and constructs a multidimensional array keyed by the keys it finds on the object.
array | $datum | an array of objects with properties on the object including the keys passed as the next param. |
array | $keys | Array of strings with the names of the properties on the objects in datum that you want to index the multidimensional array by. |
bool | $keysunique | If there is not only one object for each combination of keys you are using you should set $keysunique to true. Otherwise all the object will be added to a zero based array. So the array returned will have count($keys) + 1 indexs. |
array | multidimensional array properly indexed. |
quiz_report_list | ( | $context | ) |
Returns an array of reports to which the current user has access to.
array | reports are ordered as they should be for display in tabs. |
quiz_report_qm_filter_select | ( | $quiz, | |
$quizattemptsalias = 'quiza' |
|||
) |
This is a wrapper for } that takes the whole quiz object instead of just the grading method * as a param.
See definition for quiz_report_grade_method_sql below.
object | $quiz | |
string | $quizattemptsalias | sql alias for 'quiz_attempts' table |
string | sql to test if this is an attempt that will contribute towards the grade of the user |
quiz_report_scale_summarks_as_percentage | ( | $rawmark, | |
$quiz, | |||
$round = true |
|||
) |
Format a number as a percentage out of $quiz->sumgrades.
number | $rawgrade | the mark to format. |
object | $quiz | the quiz settings |
bool | $round | whether to round the results ot $quiz->decimalpoints. |
quiz_report_should_show_grades | ( | $quiz, | |
context | $context | ||
) |
Should the grades be displayed in this report.
That depends on the quiz display options, and whether the quiz is graded.
object | $quiz | the quiz settings. |
context | $context | the quiz context. |
bool |
quiz_require_question_use | ( | $questionid | ) |
Verify that the question exists, and the user has permission to use it.
Does not return. Throws an exception if the question cannot be used.
int | $questionid | The id of the question. |
quiz_rescale_grade | ( | $rawgrade, | |
$quiz, | |||
$format = true |
|||
) |
Convert the raw grade stored in $attempt into a grade out of the maximum grade for this quiz.
float | $rawgrade | the unadjusted grade, fof example $attempt->sumgrades |
object | $quiz | the quiz object. Only the fields grade, sumgrades and decimalpoints are used. |
bool | string | $format | whether to format the results for display or 'question' to format a question grade (different number of decimal places. |
float|string | the rescaled grade, or null/the lang string 'notyetgraded' if the $grade is null. |
quiz_reset_course_form_defaults | ( | $course | ) |
Course reset form defaults.
array | the defaults. |
quiz_reset_course_form_definition | ( | $mform | ) |
Implementation of the function for printing the form elements that control whether the course reset functionality affects the quiz.
$mform | the course reset form that is being built. |
quiz_reset_gradebook | ( | $courseid, | |
$type = '' |
|||
) |
Removes all grades from gradebook.
int | $courseid | |
string | optional type |
quiz_reset_userdata | ( | $data | ) |
Actual implementation of the reset course functionality, delete all the quiz attempts for course $data->courseid, if $data->reset_quiz_attempts is set and true.
Also, move the quiz open and close dates, if the course start date is changing.
object | $data | the data submitted from the reset course. |
array | status array |
quiz_retrieve_slot_tag_ids | ( | $slotid | ) |
Retrieves tag ids for the given quiz slot.
A quiz slot have some tags if and only if it is representing a random question by tags.
int | $slotid | The id of the quiz slot. |
int[] |
quiz_retrieve_slot_tags | ( | $slotid | ) |
Retrieves tag information for the given quiz slot.
A quiz slot have some tags if and only if it is representing a random question by tags.
int | $slotid | The id of the quiz slot. |
stdClass[] | List of quiz_slot_tags records. |
quiz_retrieve_tags_for_slot_ids | ( | $slotids | ) |
Retrieves tag information for the given list of quiz slot ids.
Currently the only slots that have tags are random question slots.
Example: If we have 3 slots with id 1, 2, and 3. The first slot has two tags, the second has one tag, and the third has zero tags. The return structure will look like: [ 1 => [ quiz_slot_tags.id => { ...tag data... }, quiz_slot_tags.id => { ...tag data... }, ], 2 => [ quiz_slot_tags.id => { ...tag data... }, ], 3 => [], ]
int[] | $slotids | The list of id for the quiz slots. |
array[] | List of quiz_slot_tags records indexed by slot id. |
quiz_review_option_form_to_db | ( | $fromform, | |
$field | |||
) |
Helper function for quiz_process_options().
object | $fromform | the sumbitted form date. |
string | $field | one of the review option field names. |
quiz_save_best_grade | ( | $quiz, | |
$userid = null , |
|||
$attempts = array() |
|||
) |
Save the overall grade for a user at a quiz in the quiz_grades table.
object | $quiz | The quiz for which the best grade is to be calculated and then saved. |
int | $userid | The userid to calculate the grade for. Defaults to the current user. |
array | $attempts | The attempts of this user. Useful if you are looping through many users. Attempts can be fetched in one master query to avoid repeated querying. |
bool | Indicates success or failure. |
quiz_send_confirmation | ( | $recipient, | |
$a | |||
) |
Sends a confirmation message to the student confirming that the attempt was processed.
object | $a | lots of useful information that can be used in the message subject and body. |
int|false | as for message_send(). |
quiz_send_notification | ( | $recipient, | |
$submitter, | |||
$a | |||
) |
Sends notification messages to the interested parties that assign the role capability.
object | $recipient | user object of the intended recipient |
object | $a | associative array of replaceable fields for the templates |
int|false | as for message_send(). |
quiz_send_notification_messages | ( | $course, | |
$quiz, | |||
$attempt, | |||
$context, | |||
$cm | |||
) |
Send all the requried messages when a quiz attempt is submitted.
object | $course | the course |
object | $quiz | the quiz |
object | $attempt | this attempt just finished |
object | $context | the quiz context |
object | $cm | the coursemodule for this quiz |
bool | true if all necessary messages were sent successfully, else false. |
quiz_send_overdue_message | ( | $attemptobj | ) |
Send the notification message when a quiz attempt becomes overdue.
quiz_attempt | $attemptobj | all the data about the quiz attempt. |
quiz_set_grade | ( | $newgrade, | |
$quiz | |||
) |
The quiz grade is the maximum that student's results are marked out of.
When it changes, the corresponding data in quiz_grades and quiz_feedback needs to be rescaled. After calling this function, you probably need to call quiz_update_all_attempt_sumgrades, quiz_update_all_final_grades and quiz_update_grades.
float | $newgrade | the new maximum grade for the quiz. |
object | $quiz | the quiz we are updating. Passed by reference so its grade field can be updated too. |
bool | indicating success or failure. |
quiz_start_attempt_built_on_last | ( | $quba, | |
$attempt, | |||
$lastattempt | |||
) |
Start a subsequent new attempt, in each attempt builds on last mode.
question_usage_by_activity | $quba | this question usage |
object | $attempt | this attempt |
object | $lastattempt | last attempt |
object | modified attempt object |
quiz_start_new_attempt | ( | $quizobj, | |
$quba, | |||
$attempt, | |||
$attemptnumber, | |||
$timenow, | |||
$questionids = array() , |
|||
$forcedvariantsbyslot = array() |
|||
) |
Start a normal, new, quiz attempt.
quiz | $quizobj | the quiz object to start an attempt for. |
question_usage_by_activity | $quba | |
object | $attempt | |
integer | $attemptnumber | starting from 1 |
integer | $timenow | the attempt start time |
array | $questionids | slot number => question id. Used for random questions, to force the choice of a particular actual question. Intended for testing purposes only. |
array | $forcedvariantsbyslot | slot number => variant. Used for questions with variants, to force the choice of a particular variant. Intended for testing purposes only. |
moodle_exception |
object | modified attempt object |
quiz_supports | ( | $feature | ) |
string | $feature | FEATURE_xx constant for requested feature |
bool | True if quiz supports feature |
quiz_update_all_attempt_sumgrades | ( | $quiz | ) |
Update the sumgrades field of the attempts at a quiz.
object | $quiz | a quiz. |
quiz_update_all_final_grades | ( | $quiz | ) |
Update the final grade at this quiz for all students.
This function is equivalent to calling quiz_save_best_grade for all users, but much more efficient.
object | $quiz | the quiz settings. |
quiz_update_effective_access | ( | $quiz, | |
$userid | |||
) |
Updates a quiz object with override information for a user.
Algorithm: For each quiz setting, if there is a matching user-specific override, then use that otherwise, if there are group-specific overrides, return the most lenient combination of them. If neither applies, leave the quiz setting unchanged.
Special case: if there is more than one password that applies to the user, then quiz->extrapasswords will contain an array of strings giving the remaining passwords.
object | $quiz | The quiz object. |
int | $userid | The userid. |
object::$quiz | The updated quiz object. |
quiz_update_events | ( | $quiz, | |
$override = null |
|||
) |
This function updates the events associated to the quiz.
If $override is non-zero, then it updates only the events associated with the specified override.
@uses QUIZ_MAX_EVENT_LENGTH
object | $quiz | the quiz object. |
object | optional $override limit to a specific override |
quiz_update_instance | ( | $quiz, | |
$mform | |||
) |
Given an object containing all the necessary data, (defined by the form in mod_form.php) this function will update an existing instance with new data.
object | $quiz | the data that came from the form. |
mixed | true on success, false or a string error message on failure. |
quiz_update_open_attempts | ( | array | $conditions | ) |
Efficiently update check state time on all open attempts.
array | $conditions | optional restrictions on which attempts to update Allowed conditions: courseid => (array|int) attempts in given course(s) userid => (array|int) attempts for given user(s) quizid => (array|int) attempts in given quiz(s) groupid => (array|int) quizzes with some override for given group(s) |
quiz_update_section_firstslots | ( | $quizid, | |
$direction, | |||
$afterslot, | |||
$beforeslot = null |
|||
) |
Move all the section headings in a certain slot range by a certain offset.
int | $quizid | the id of a quiz |
int | $direction | amount to adjust section heading positions. Normally +1 or -1. |
int | $afterslot | adjust headings that start after this slot. |
int | null | $beforeslot | optionally, only adjust headings before this slot. |
quiz_update_sumgrades | ( | $quiz | ) |
Update the sumgrades field of the quiz.
This needs to be called whenever the grading structure of the quiz is changed. For example if a question is added or removed, or a question weight is changed.
You should call quiz_delete_previews() before you call this function.
object | $quiz | a quiz. |
quiz_user_complete | ( | $course, | |
$user, | |||
$mod, | |||
$quiz | |||
) |
Print a detailed representation of what a user has done with a given particular instance of this module, for user activity reports.
object | $course | |
object | $user | |
object | $mod | |
object | $quiz |
bool |
quiz_user_outline | ( | $course, | |
$user, | |||
$mod, | |||
$quiz | |||
) |
Return a small object with summary information about what a user has done with a given particular instance of this module Used for user activity reports.
$return->time = the time they did it $return->info = a short text description
object | $course | |
object | $user | |
object | $mod | |
object | $quiz |
object|null |
quiz_validate_new_attempt | ( | quiz | $quizobj, |
quiz_access_manager | $accessmanager, | ||
$forcenew, | |||
$page, | |||
$redirect | |||
) |
Validate permissions for creating a new attempt and start a new preview attempt if required.
quiz | $quizobj | quiz object |
quiz_access_manager | $accessmanager | quiz access manager |
bool | $forcenew | whether was required to start a new preview attempt |
int | $page | page to jump to in the attempt |
bool | $redirect | whether to redirect or throw exceptions (for web or ws usage) |
array | an array containing the attempt information, access error messages and the page to jump to in the attempt |
moodle_quiz_exception |
quiz_view | ( | $quiz, | |
$course, | |||
$cm, | |||
$context | |||
) |
Mark the activity completed (if required) and trigger the course_module_viewed event.
stdClass | $quiz | quiz object |
stdClass | $course | course object |
stdClass | $cm | course module object |
stdClass | $context | context object |
xmldb_quiz_upgrade | ( | $oldversion | ) |
Quiz module upgrade function.
string | $oldversion | the version we are upgrading from. |
$logs |
$messageproviders |
$tasks |
const QUIZ_EVENT_TYPE_OPEN 'open' |
#-
Event types.
const QUIZ_GRADEHIGHEST '1' |
#-
#+ Options determining how the grades from individual attempts are combined to give the overall grade for a user
const QUIZ_MAX_EVENT_LENGTH 5*24*60*60 |
#-
If start and end date for the quiz are more than this many seconds apart they will be represented by two separate events in the calendar
const QUIZ_MIN_TIME_TO_CONTINUE '2' |
If there are fewer than this many seconds left when the student submits a page of the quiz, then do not take them to the next page of the quiz.
Instead close the quiz immediately.
const QUIZ_SHOW_TIME_BEFORE_DEADLINE '3600' |
We show the countdown timer if there is less than this amount of time left before the the quiz close date.
(1 hour)