Moodle APIs 3.9
Moodle 3.9.13+ (Build: 20220325)
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
question_attempt_step_subquestion_adapter Class Reference

This is an adapter class that wraps a question_attempt_step and modifies the get/set_*_data methods so that they operate only on the parts that belong to a particular subquestion, as indicated by an extra prefix. More...

Inheritance diagram for question_attempt_step_subquestion_adapter:
question_attempt_step

Public Member Functions

 __construct ($realqas, $extraprefix)
 Constructor. More...
 
 add_prefix ($field)
 Add the extra prefix to a field name. More...
 
 filter_array ($data)
 Filter some data to keep only those entries where the key contains extraprefix, and remove the extra prefix from the reutrned arrary. 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...
 
 remove_prefix ($field)
 Remove the extra prefix from a field name if it is present. 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...
 

Protected Attributes

string $extraprefix
 the exta prefix on fields we work with.
 
question_attempt_step $realstep
 the step we are wrapping.
 

Detailed Description

This is an adapter class that wraps a question_attempt_step and modifies the get/set_*_data methods so that they operate only on the parts that belong to a particular subquestion, as indicated by an extra prefix.

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

Constructor & Destructor Documentation

◆ __construct()

question_attempt_step_subquestion_adapter::__construct (   $realqas,
  $extraprefix 
)

Constructor.

Parameters
question_attempt_step$realqasthe step to wrap. (Can be null if you just want to call add/remove.prefix.)
unknown_type$extraprefixthe extra prefix that is used for date fields.

Member Function Documentation

◆ add_prefix()

question_attempt_step_subquestion_adapter::add_prefix (   $field)

Add the extra prefix to a field name.

Parameters
string$fieldthe plain field name.
Return values
stringthe field name with the extra bit of prefix added.

◆ filter_array()

question_attempt_step_subquestion_adapter::filter_array (   $data)

Filter some data to keep only those entries where the key contains extraprefix, and remove the extra prefix from the reutrned arrary.

Parameters
array$datasome of the data stored in this step.
Return values
arraythe data with the keys ajusted using remove_prefix().

◆ get_all_data()

question_attempt_step_subquestion_adapter::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 from question_attempt_step.

◆ get_behaviour_data()

question_attempt_step_subquestion_adapter::get_behaviour_data ( )

Get all the behaviour variables.

Parameters
arrayname => value pairs.

Reimplemented from question_attempt_step.

◆ get_behaviour_var()

question_attempt_step_subquestion_adapter::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 from question_attempt_step.

◆ get_fraction()

question_attempt_step_subquestion_adapter::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 from question_attempt_step.

◆ get_id()

question_attempt_step::get_id ( )
inherited
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)
inherited

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_subquestion_adapter::get_qt_data ( )

Get all the question type variables.

Parameters
arrayname => value pairs.

Reimplemented from question_attempt_step.

◆ get_qt_files()

question_attempt_step_subquestion_adapter::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 from question_attempt_step.

◆ get_qt_var()

question_attempt_step_subquestion_adapter::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 from question_attempt_step.

◆ get_state()

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

Reimplemented from question_attempt_step.

◆ get_submitted_data()

question_attempt_step_subquestion_adapter::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 from question_attempt_step.

◆ get_timecreated()

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

Reimplemented from question_attempt_step.

◆ get_user_id()

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

Reimplemented from question_attempt_step.

◆ has_behaviour_var()

question_attempt_step_subquestion_adapter::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 from question_attempt_step.

◆ has_metadata_var()

question_attempt_step::has_metadata_var (   $name)
inherited

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_subquestion_adapter::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 from question_attempt_step.

◆ load_from_records()

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

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_subquestion_adapter::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 from question_attempt_step.

◆ prepare_response_files_draft_itemid_with_text()

question_attempt_step_subquestion_adapter::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 from question_attempt_step.

◆ remove_prefix()

question_attempt_step_subquestion_adapter::remove_prefix (   $field)

Remove the extra prefix from a field name if it is present.

Parameters
string$fieldthe extended field name.
Return values
stringthe field name with the extra bit of prefix removed, or null if the extre prefix was not present.

◆ rewrite_response_pluginfile_urls()

question_attempt_step_subquestion_adapter::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 from question_attempt_step.

◆ set_behaviour_var()

question_attempt_step_subquestion_adapter::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 from question_attempt_step.

◆ set_fraction()

question_attempt_step_subquestion_adapter::set_fraction (   $fraction)

Set the fraction.

Normally only called by behaviours.

Parameters
null | number$fractionthe fraction to set.

Reimplemented from question_attempt_step.

◆ set_metadata_var()

question_attempt_step::set_metadata_var (   $name,
  $value 
)
inherited

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_subquestion_adapter::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 from question_attempt_step.

◆ set_state()

question_attempt_step_subquestion_adapter::set_state (   $state)

Set the state.

Normally only called by behaviours.

Parameters
question_state$stateone of the question_state constants.

Reimplemented from question_attempt_step.


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