A rule imposing the delay between attempts settings.
More...
|
| add_preflight_check_form_fields (mod_quiz_preflight_check_form $quizform, MoodleQuickForm $mform, $attemptid) |
| Add any field you want to pre-flight check form. More...
|
|
| attempt_must_be_in_popup () |
|
| current_attempt_finished () |
| This is called when the current attempt at the quiz is finished. More...
|
|
| description () |
| Information, such as might be shown on the quiz view page, relating to this restriction. More...
|
|
| end_time ($attempt) |
| If, because of this rule, the user has to finish their attempt by a certain time, you should override this method to return the attempt end time. More...
|
|
| get_popup_options () |
|
| get_superceded_rules () |
| It is possible for one rule to override other rules. More...
|
|
| is_finished ($numprevattempts, $lastattempt) |
| If this rule can determine that this user will never be allowed another attempt at this quiz, then return true. More...
|
|
| is_preflight_check_required ($attemptid) |
|
| notify_preflight_check_passed ($attemptid) |
| The pre-flight check has passed. More...
|
|
| prevent_access () |
| Whether the user should be blocked from starting a new attempt or continuing an attempt now. More...
|
|
| prevent_new_attempt ($numprevattempts, $lastattempt) |
| Whether or not a user should be allowed to start a new attempt at this quiz now. More...
|
|
| setup_attempt_page ($page) |
| Sets up the attempt (review or summary) page with any special extra properties required by this rule. More...
|
|
| time_left_display ($attempt, $timenow) |
| If the user should be shown a different amount of time than $timenow - $this->end_time(), then override this method. More...
|
|
| validate_preflight_check ($data, $files, $errors, $attemptid) |
| Validate the pre-flight check form submission. More...
|
|
|
| compute_next_start_time ($numprevattempts, $lastattempt) |
| Compute the next time a student would be allowed to start an attempt, according to this rule. More...
|
|
A rule imposing the delay between attempts settings.
- Copyright
- 2009 Tim Hunt
- License
- http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
◆ add_preflight_check_form_fields()
◆ add_settings_form_fields()
◆ attempt_must_be_in_popup()
quiz_access_rule_base::attempt_must_be_in_popup |
( |
| ) |
|
|
inherited |
- Return values
-
boolean | whether this rule requires that the attemp (and review) pages must be displayed in a pop-up window. |
Reimplemented in quizaccess_securewindow.
◆ compute_next_start_time()
quizaccess_delaybetweenattempts::compute_next_start_time |
( |
|
$numprevattempts, |
|
|
|
$lastattempt |
|
) |
| |
|
protected |
Compute the next time a student would be allowed to start an attempt, according to this rule.
- Parameters
-
int | $numprevattempts | number of previous attempts. |
object | $lastattempt | information about the previous attempt. |
- Return values
-
◆ current_attempt_finished()
quiz_access_rule_base::current_attempt_finished |
( |
| ) |
|
|
inherited |
◆ delete_settings()
static quiz_access_rule_base::delete_settings |
( |
|
$quiz | ) |
|
|
staticinherited |
Delete any rule-specific settings when the quiz is deleted.
This is called from quiz_delete_instance() in lib.php.
- Parameters
-
object | $quiz | the data from the database, including $quiz->id which is the id of the quiz being deleted. |
- Since
- Moodle 2.7.1, 2.6.4, 2.5.7
◆ description()
quiz_access_rule_base::description |
( |
| ) |
|
|
inherited |
◆ end_time()
quiz_access_rule_base::end_time |
( |
|
$attempt | ) |
|
|
inherited |
If, because of this rule, the user has to finish their attempt by a certain time, you should override this method to return the attempt end time.
- Parameters
-
object | $attempt | the current attempt |
- Return values
-
mixed | the attempt close time, or false if there is no close time. |
Reimplemented in quizaccess_timelimit, and quizaccess_openclosedate.
◆ get_browser_security_choices()
static quiz_access_rule_base::get_browser_security_choices |
( |
| ) |
|
|
staticinherited |
◆ get_extra_settings()
static quiz_access_rule_base::get_extra_settings |
( |
|
$quizid | ) |
|
|
staticinherited |
You can use this method to load any extra settings your plugin has that cannot be loaded efficiently with get_settings_sql().
- Parameters
-
- Return values
-
array | setting value name => value. The value names should all start with the name of your plugin to avoid collisions. |
◆ get_popup_options()
quiz_access_rule_base::get_popup_options |
( |
| ) |
|
|
inherited |
- Return values
-
array | any options that are required for showing the attempt page in a popup window. |
Reimplemented in quizaccess_securewindow.
◆ get_settings_sql()
static quiz_access_rule_base::get_settings_sql |
( |
|
$quizid | ) |
|
|
staticinherited |
Return the bits of SQL needed to load all the settings from all the access plugins in one DB query.
The easiest way to understand what you need to do here is probalby to read the code of quiz_access_manager::load_settings().
If you have some settings that cannot be loaded in this way, then you can use the get_extra_settings() method instead, but that has performance implications.
- Parameters
-
int | $quizid | the id of the quiz we are loading settings for. This can also be accessed as quiz.id in the SQL. (quiz is a table alisas for {quiz}.) |
- Return values
-
array | with three elements:
- fields: any fields to add to the select list. These should be alised if neccessary so that the field name starts the name of the plugin.
- joins: any joins (should probably be LEFT JOINS) with other tables that are needed.
- params: array of placeholder values that are needed by the SQL. You must used named placeholders, and the placeholder names should start with the plugin name, to avoid collisions.
|
◆ get_superceded_rules()
quiz_access_rule_base::get_superceded_rules |
( |
| ) |
|
|
inherited |
It is possible for one rule to override other rules.
The aim is that third-party rules should be able to replace sandard rules if they want. See, for example MDL-13592.
- Return values
-
array | plugin names of other rules that this one replaces. For example array('ipaddress', 'password'). |
◆ is_finished()
quizaccess_delaybetweenattempts::is_finished |
( |
|
$numprevattempts, |
|
|
|
$lastattempt |
|
) |
| |
If this rule can determine that this user will never be allowed another attempt at this quiz, then return true.
This is used so we can know whether to display a final grade on the view page. This will only be called if there is not a currently active attempt for this user.
- Parameters
-
int | $numattempts | the number of previous attempts this user has made. |
object | $lastattempt | information about the user's last completed attempt. |
- Return values
-
bool | true if this rule means that this user will never be allowed another attempt at this quiz. |
Reimplemented from quiz_access_rule_base.
◆ is_preflight_check_required()
quiz_access_rule_base::is_preflight_check_required |
( |
|
$attemptid | ) |
|
|
inherited |
◆ make()
static quizaccess_delaybetweenattempts::make |
( |
quiz |
$quizobj, |
|
|
|
$timenow, |
|
|
|
$canignoretimelimits |
|
) |
| |
|
static |
Return an appropriately configured instance of this rule, if it is applicable to the given quiz, otherwise return null.
- Parameters
-
quiz | $quizobj | information about the quiz in question. |
int | $timenow | the time that should be considered as 'now'. |
bool | $canignoretimelimits | whether the current user is exempt from time limits by the mod/quiz:ignoretimelimits capability. |
- Return values
-
quiz_access_rule_base|null | the rule, if applicable, else null. |
Reimplemented from quiz_access_rule_base.
◆ notify_preflight_check_passed()
quiz_access_rule_base::notify_preflight_check_passed |
( |
|
$attemptid | ) |
|
|
inherited |
The pre-flight check has passed.
This is a chance to record that fact in some way.
- Parameters
-
int | null | $attemptid | the id of the current attempt, if there is one, otherwise null. |
Reimplemented in quizaccess_password, and quizaccess_offlineattempts.
◆ prevent_access()
quiz_access_rule_base::prevent_access |
( |
| ) |
|
|
inherited |
◆ prevent_new_attempt()
quizaccess_delaybetweenattempts::prevent_new_attempt |
( |
|
$numprevattempts, |
|
|
|
$lastattempt |
|
) |
| |
Whether or not a user should be allowed to start a new attempt at this quiz now.
- Parameters
-
int | $numattempts | the number of previous attempts this user has made. |
object | $lastattempt | information about the user's last completed attempt. |
- Return values
-
string | false if access should be allowed, a message explaining the reason if access should be prevented. |
Reimplemented from quiz_access_rule_base.
◆ save_settings()
static quiz_access_rule_base::save_settings |
( |
|
$quiz | ) |
|
|
staticinherited |
Save any submitted settings when the quiz settings form is submitted.
This is called from quiz_after_add_or_update() in lib.php.
- Parameters
-
object | $quiz | the data from the quiz form, including $quiz->id which is the id of the quiz being saved. |
◆ setup_attempt_page()
quiz_access_rule_base::setup_attempt_page |
( |
|
$page | ) |
|
|
inherited |
Sets up the attempt (review or summary) page with any special extra properties required by this rule.
securewindow rule is an example of where this is used.
- Parameters
-
Reimplemented in quizaccess_securewindow, and quizaccess_safebrowser.
◆ time_left_display()
quiz_access_rule_base::time_left_display |
( |
|
$attempt, |
|
|
|
$timenow |
|
) |
| |
|
inherited |
If the user should be shown a different amount of time than $timenow - $this->end_time(), then override this method.
This is useful if the time remaining is large enough to be omitted.
- Parameters
-
object | $attempt | the current attempt |
int | $timenow | the time now. We don't use $this->timenow, so we can give the user a more accurate indication of how much time is left. |
- Return values
-
mixed | the time left in seconds (can be negative) or false if there is no limit. |
Reimplemented in quizaccess_timelimit, and quizaccess_openclosedate.
◆ validate_preflight_check()
quiz_access_rule_base::validate_preflight_check |
( |
|
$data, |
|
|
|
$files, |
|
|
|
$errors, |
|
|
|
$attemptid |
|
) |
| |
|
inherited |
Validate the pre-flight check form submission.
You should only do something here if is_preflight_check_required() returned true.
If the form validates, the user will be allowed to continue.
- Parameters
-
array | $data | the submitted form data. |
array | $files | any files in the submission. |
array | $errors | the list of validation errors that is being built up. |
int | null | $attemptid | the id of the current attempt, if there is one, otherwise null. |
- Return values
-
array | the update $errors array; |
Reimplemented in quizaccess_password, and quizaccess_offlineattempts.
◆ validate_settings_form_fields()
static quiz_access_rule_base::validate_settings_form_fields |
( |
array |
$errors, |
|
|
array |
$data, |
|
|
|
$files, |
|
|
mod_quiz_mod_form |
$quizform |
|
) |
| |
|
staticinherited |
Validate the data from any form fields added using add_settings_form_fields().
- Parameters
-
array | $errors | the errors found so far. |
array | $data | the submitted form data. |
array | $files | information about any uploaded files. |
mod_quiz_mod_form | $quizform | the quiz form object. |
- Return values
-
array::$errors | the updated $errors array. |
Reimplemented in quizaccess_offlineattempts.
The documentation for this class was generated from the following file:
- mod/quiz/accessrule/delaybetweenattempts/rule.php