Moodle APIs
3.8
Moodle 3.8.6 (Build: 20201109)
|
Stores one step in a question_attempt. More...
Public Member Functions | |
__construct ($data=array(), $timecreated=null, $userid=null, $existingstepid=null) | |
You should not need to call this constructor in your own code. More... | |
get_all_data () | |
Get all the data. More... | |
get_behaviour_data () | |
Get all the behaviour variables. More... | |
get_behaviour_var ($name) | |
get_fraction () | |
get_id () | |
get_metadata_var ($name) | |
Get a metadata variable. More... | |
get_qt_data () | |
Get all the question type variables. More... | |
get_qt_files ($name, $contextid) | |
Get the latest set of files for a particular question type variable of type question_attempt::PARAM_FILES. More... | |
get_qt_var ($name) | |
get_state () | |
get_submitted_data () | |
Get all the submitted data, but not the cached data. More... | |
get_timecreated () | |
get_user_id () | |
has_behaviour_var ($name) | |
has_metadata_var ($name) | |
Whether this step has a metadata variable. More... | |
has_qt_var ($name) | |
prepare_response_files_draft_itemid ($name, $contextid) | |
Prepare a draft file are for the files belonging the a response variable of this step. More... | |
prepare_response_files_draft_itemid_with_text ($name, $contextid, $text) | |
Prepare a draft file are for the files belonging the a response variable of this step, while rewriting the URLs in some text. More... | |
rewrite_response_pluginfile_urls ($text, $contextid, $name, $extras) | |
Rewrite the @PLUGINFILE@ tokens in a response variable from this step that contains links to file. More... | |
set_behaviour_var ($name, $value) | |
Set a cached behaviour variable. More... | |
set_fraction ($fraction) | |
Set the fraction. More... | |
set_metadata_var ($name, $value) | |
Set a metadata variable. More... | |
set_qt_var ($name, $value) | |
Set a cached question type variable. More... | |
set_state ($state) | |
Set the state. More... | |
Static Public Member Functions | |
static | load_from_records ($records, $attemptstepid, $qtype=null) |
Create a question_attempt_step from records loaded from the database. More... | |
Stores one step in a question_attempt.
The most important attributes of a step are the state, which is one of the question_state constants, the fraction, which may be null, or a number bewteen the attempt's minfraction and maxfraction, and the array of submitted data, about which more later.
A step also tracks the time it was created, and the user responsible for creating it.
The submitted data is basically just an array of name => value pairs, with certain conventions about the to divide the variables into four = two times two categories.
Variables may either belong to the behaviour, in which case the name starts with a '-', or they may belong to the question type in which case they name does not start with a '-'.
Second, variables may either be ones that came form the original request, in which case the name does not start with an _, or they are cached values that were created during processing, in which case the name does start with an _.
That is, each name will start with one of '', '_'. '-' or '-_'. The remainder of the name should match the regex [a-z][a-z0-9]*.
These variables can be accessed with } and get_qt_var(),
question_attempt_step::__construct | ( | $data = array() , |
|
$timecreated = null , |
|||
$userid = null , |
|||
$existingstepid = null |
|||
) |
You should not need to call this constructor in your own code.
Steps are normally created by } methods like * question_attempt::process_action().
array | $data | the submitted data that defines this step. |
int | $timestamp | the time to record for the action. (If not given, use now.) |
int | $userid | the user to attribute the aciton to. (If not given, use the current user.) |
int | $existingstepid | if this step is going to replace an existing step (for example, during a regrade) this is the id of the previous step we are replacing. |
question_attempt_step::get_all_data | ( | ) |
Get all the data.
behaviour variables have the - at the start of their name. This is only intended for internal use, for example by question_engine_data_mapper::insert_question_attempt_step(), however, it can occasionally be useful in test code. It should not be considered part of the public API of this class.
array | name => value pairs. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::get_behaviour_data | ( | ) |
Get all the behaviour variables.
array | name => value pairs. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::get_behaviour_var | ( | $name | ) |
string | $name | the name of a behaviour variable to look for in the submitted data. |
string | the requested variable, or null if the variable is not set. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::get_fraction | ( | ) |
null|number | the fraction (grade on a scale of minfraction .. maxfraction, normally 0..1), or null if this step has not been marked. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::get_id | ( | ) |
int|null | The id of this step in the database. null if this step is not stored in the database. |
question_attempt_step::get_metadata_var | ( | $name | ) |
Get a metadata variable.
Do not call this method directly from your code. It is for internal use only. You should call question_usage::get_question_attempt_metadata().
string | $name | the name of the variable to set. [a-z][a-z0-9]*. |
string | the value to set previously, or null if this variable was never set. |
question_attempt_step::get_qt_data | ( | ) |
Get all the question type variables.
array | name => value pairs. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::get_qt_files | ( | $name, | |
$contextid | |||
) |
Get the latest set of files for a particular question type variable of type question_attempt::PARAM_FILES.
string | $name | the name of the associated variable. |
array | of stored_files. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::get_qt_var | ( | $name | ) |
string | $name | the name of a question type variable to look for in the submitted data. |
string | the requested variable, or null if the variable is not set. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::get_state | ( | ) |
question_state | The state after this step. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::get_submitted_data | ( | ) |
Get all the submitted data, but not the cached data.
behaviour variables have the - at the start of their name. This is only really intended for use by question_attempt::regrade(), it should not be considered part of the public API.
array | name => value pairs. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::get_timecreated | ( | ) |
int | the timestamp when this step was created. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::get_user_id | ( | ) |
int | the id of the user resonsible for creating this step. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::has_behaviour_var | ( | $name | ) |
string | $name | the name of a behaviour variable to look for in the submitted data. |
bool | whether a variable with this name exists in the question type data. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::has_metadata_var | ( | $name | ) |
Whether this step has a metadata variable.
Do not call this method directly from your code. It is for internal use only. You should call question_usage::get_question_attempt_metadata().
string | $name | the name of the variable to set. [a-z][a-z0-9]*. |
bool | the value to set previously, or null if this variable was never set. |
question_attempt_step::has_qt_var | ( | $name | ) |
string | $name | the name of a question type variable to look for in the submitted data. |
bool | whether a variable with this name exists in the question type data. |
Reimplemented in question_attempt_step_subquestion_adapter.
|
static |
Create a question_attempt_step from records loaded from the database.
Iterator | $records | Raw records loaded from the database. |
int | $stepid | The id of the records to extract. |
string | $qtype | The question type of which this is an attempt. If not given, each record must include a qtype field. |
question_attempt_step | The newly constructed question_attempt_step. |
question_attempt_step::prepare_response_files_draft_itemid | ( | $name, | |
$contextid | |||
) |
Prepare a draft file are for the files belonging the a response variable of this step.
string | $name | the variable name the files belong to. |
int | $contextid | the id of the context the quba belongs to. |
int | the draft itemid. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::prepare_response_files_draft_itemid_with_text | ( | $name, | |
$contextid, | |||
$text | |||
) |
Prepare a draft file are for the files belonging the a response variable of this step, while rewriting the URLs in some text.
string | $name | the variable name the files belong to. |
int | $contextid | the id of the context the quba belongs to. |
string | $text | the text to update the URLs in. |
array(int,string) | the draft itemid and the text with URLs rewritten. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::rewrite_response_pluginfile_urls | ( | $text, | |
$contextid, | |||
$name, | |||
$extras | |||
) |
Rewrite the @PLUGINFILE@ tokens in a response variable from this step that contains links to file.
Normally you should probably call question_attempt::rewrite_response_pluginfile_urls() instead of calling this method directly.
string | $text | the text to update the URLs in. |
int | $contextid | the id of the context the quba belongs to. |
string | $name | the variable name the files belong to. |
array | $extra | extra file path components. |
string | the rewritten text. |
Reimplemented in question_attempt_step_subquestion_adapter.
question_attempt_step::set_behaviour_var | ( | $name, | |
$value | |||
) |
Set a cached behaviour variable.
string | $name | the name of the variable to set. Must match _[a-z][a-z0-9]*. |
string | $value | the value to set. |
Reimplemented in question_attempt_step_subquestion_adapter, and question_attempt_step_read_only.
question_attempt_step::set_fraction | ( | $fraction | ) |
Set the fraction.
Normally only called by behaviours.
null | number | $fraction | the fraction to set. |
Reimplemented in question_attempt_step_subquestion_adapter, and question_attempt_step_read_only.
question_attempt_step::set_metadata_var | ( | $name, | |
$value | |||
) |
Set a metadata variable.
Do not call this method directly from your code. It is for internal use only. You should call question_usage::set_question_attempt_metadata().
string | $name | the name of the variable to set. [a-z][a-z0-9]*. |
string | $value | the value to set. |
question_attempt_step::set_qt_var | ( | $name, | |
$value | |||
) |
Set a cached question type variable.
string | $name | the name of the variable to set. Must match _[a-z][a-z0-9]*. |
string | $value | the value to set. |
Reimplemented in question_attempt_step_subquestion_adapter, and question_attempt_step_read_only.
question_attempt_step::set_state | ( | $state | ) |
Set the state.
Normally only called by behaviours.
question_state | $state | one of the question_state constants. |
Reimplemented in question_attempt_step_subquestion_adapter, and question_attempt_step_read_only.