Moodle APIs  3.8
Moodle 3.8.6 (Build: 20201109)
Public Member Functions | Static Public Member Functions | List of all members
question_attempt_step Class Reference

Stores one step in a question_attempt. More...

Inheritance diagram for question_attempt_step:
question_attempt_pending_step question_attempt_step_read_only question_attempt_step_subquestion_adapter

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...
 

Detailed Description

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(),

License
http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later

Constructor & Destructor Documentation

◆ __construct()

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().

Parameters
array$datathe submitted data that defines this step.
int$timestampthe time to record for the action. (If not given, use now.)
int$useridthe user to attribute the aciton to. (If not given, use the current user.)
int$existingstepidif 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.

Member Function Documentation

◆ get_all_data()

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.

Parameters
arrayname => value pairs.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ get_behaviour_data()

question_attempt_step::get_behaviour_data ( )

Get all the behaviour variables.

Parameters
arrayname => value pairs.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ get_behaviour_var()

question_attempt_step::get_behaviour_var (   $name)
Parameters
string$namethe name of a behaviour variable to look for in the submitted data.
Return values
stringthe requested variable, or null if the variable is not set.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ get_fraction()

question_attempt_step::get_fraction ( )
Return values
null|numberthe 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.

◆ get_id()

question_attempt_step::get_id ( )
Return values
int|nullThe id of this step in the database. null if this step is not stored in the database.

◆ get_metadata_var()

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().

Parameters
string$namethe name of the variable to set. [a-z][a-z0-9]*.
Return values
stringthe value to set previously, or null if this variable was never set.

◆ get_qt_data()

question_attempt_step::get_qt_data ( )

Get all the question type variables.

Parameters
arrayname => value pairs.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ get_qt_files()

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.

Parameters
string$namethe name of the associated variable.
Return values
arrayof stored_files.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ get_qt_var()

question_attempt_step::get_qt_var (   $name)
Parameters
string$namethe name of a question type variable to look for in the submitted data.
Return values
stringthe requested variable, or null if the variable is not set.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ get_state()

question_attempt_step::get_state ( )
Return values
question_stateThe state after this step.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ get_submitted_data()

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.

Parameters
arrayname => value pairs.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ get_timecreated()

question_attempt_step::get_timecreated ( )
Return values
intthe timestamp when this step was created.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ get_user_id()

question_attempt_step::get_user_id ( )
Return values
intthe id of the user resonsible for creating this step.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ has_behaviour_var()

question_attempt_step::has_behaviour_var (   $name)
Parameters
string$namethe name of a behaviour variable to look for in the submitted data.
Return values
boolwhether a variable with this name exists in the question type data.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ has_metadata_var()

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().

Parameters
string$namethe name of the variable to set. [a-z][a-z0-9]*.
Return values
boolthe value to set previously, or null if this variable was never set.

◆ has_qt_var()

question_attempt_step::has_qt_var (   $name)
Parameters
string$namethe name of a question type variable to look for in the submitted data.
Return values
boolwhether a variable with this name exists in the question type data.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ load_from_records()

static question_attempt_step::load_from_records (   $records,
  $attemptstepid,
  $qtype = null 
)
static

Create a question_attempt_step from records loaded from the database.

Parameters
Iterator$recordsRaw records loaded from the database.
int$stepidThe id of the records to extract.
string$qtypeThe question type of which this is an attempt. If not given, each record must include a qtype field.
Return values
question_attempt_stepThe newly constructed question_attempt_step.

◆ prepare_response_files_draft_itemid()

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.

Parameters
string$namethe variable name the files belong to.
int$contextidthe id of the context the quba belongs to.
Return values
intthe draft itemid.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ prepare_response_files_draft_itemid_with_text()

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.

Parameters
string$namethe variable name the files belong to.
int$contextidthe id of the context the quba belongs to.
string$textthe text to update the URLs in.
Return values
array(int,string)the draft itemid and the text with URLs rewritten.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ rewrite_response_pluginfile_urls()

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.

Parameters
string$textthe text to update the URLs in.
int$contextidthe id of the context the quba belongs to.
string$namethe variable name the files belong to.
array$extraextra file path components.
Return values
stringthe rewritten text.

Reimplemented in question_attempt_step_subquestion_adapter.

◆ set_behaviour_var()

question_attempt_step::set_behaviour_var (   $name,
  $value 
)

Set a cached behaviour variable.

Parameters
string$namethe name of the variable to set. Must match _[a-z][a-z0-9]*.
string$valuethe value to set.

Reimplemented in question_attempt_step_subquestion_adapter, and question_attempt_step_read_only.

◆ set_fraction()

question_attempt_step::set_fraction (   $fraction)

Set the fraction.

Normally only called by behaviours.

Parameters
null | number$fractionthe fraction to set.

Reimplemented in question_attempt_step_subquestion_adapter, and question_attempt_step_read_only.

◆ set_metadata_var()

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().

Parameters
string$namethe name of the variable to set. [a-z][a-z0-9]*.
string$valuethe value to set.

◆ set_qt_var()

question_attempt_step::set_qt_var (   $name,
  $value 
)

Set a cached question type variable.

Parameters
string$namethe name of the variable to set. Must match _[a-z][a-z0-9]*.
string$valuethe value to set.

Reimplemented in question_attempt_step_subquestion_adapter, and question_attempt_step_read_only.

◆ set_state()

question_attempt_step::set_state (   $state)

Set the state.

Normally only called by behaviours.

Parameters
question_state$stateone of the question_state constants.

Reimplemented in question_attempt_step_subquestion_adapter, and question_attempt_step_read_only.


The documentation for this class was generated from the following file: