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

This renderer controls the overall output of questions. More...

Inheritance diagram for core_question_renderer:
plugin_renderer_base renderer_base testable_core_question_renderer

Public Member Functions

 __call ($method, $arguments)
 Magic method used to pass calls otherwise meant for the standard renderer to it to ensure we don't go causing unnecessary grief. More...
 
 add_action_handler (component_action $action, $id=null)
 Adds a JS action for the element with the provided id. More...
 
 get_compact_logo_url ($maxwidth=300, $maxheight=300)
 Return the site's compact logo URL, if any. More...
 
 get_logo_url ($maxwidth=null, $maxheight=200)
 Return the site's logo URL, if any. More...
 
 get_page ()
 
 has_started ()
 Returns true is output has already started, and false if not. More...
 
 image_url ($imagename, $component='moodle')
 Return the moodle_url for an image. More...
 
 pix_url ($imagename, $component='moodle')
 Return the direct URL for an image from the pix folder. More...
 
 question (question_attempt $qa, qbehaviour_renderer $behaviouroutput, qtype_renderer $qtoutput, question_display_options $options, $number)
 Generate the display of a question in a particular state, and with certain display options. More...
 
 question_preview_link ($questionid, context $context, $showlabel)
 Render an icon, optionally with the word 'Preview' beside it, to preview a given question. More...
 
 render (renderable $widget)
 Renders the provided widget and returns the HTML to display it. More...
 
 render_from_template ($templatename, $context)
 Renders a template by name with the given context. More...
 
 should_display_main_logo ($headinglevel=1)
 Whether we should display the main logo. More...
 
 should_display_navbar_logo ()
 Whether we should display the logo in the navbar. More...
 
 standard_mark_out_of_max (question_attempt $qa, question_display_options $options)
 Generate the display of the marks for this question out of the available marks. More...
 
 standard_mark_summary (question_attempt $qa, qbehaviour_renderer $behaviouroutput, question_display_options $options)
 Generate the display of the marks for this question. More...
 
 standard_marked_out_of_max (question_attempt $qa, question_display_options $options)
 Generate the display of the available marks for this question. More...
 

Static Public Member Functions

static prepare_classes ($classes)
 Given an array or space-separated list of classes, prepares and returns the HTML class attribute value. More...
 

Protected Member Functions

 add_part_heading ($heading, $content)
 Add an invisible heading like 'question text', 'feebdack' at the top of a section's contents, but only if the section has some content. More...
 
 edit_question_link (question_attempt $qa, question_display_options $options)
 
 formulation (question_attempt $qa, qbehaviour_renderer $behaviouroutput, qtype_renderer $qtoutput, question_display_options $options)
 Generate the display of the formulation part of the question. More...
 
 get_flag_html ($flagged, $id='')
 Work out the actual img tag needed for the flag. More...
 
 get_mustache ()
 Return an instance of the mustache class. More...
 
 info (question_attempt $qa, qbehaviour_renderer $behaviouroutput, qtype_renderer $qtoutput, question_display_options $options, $number)
 Generate the information bit of the question display that contains the metadata like the question number, current state, and mark. More...
 
 manual_comment (question_attempt $qa, qbehaviour_renderer $behaviouroutput, qtype_renderer $qtoutput, question_display_options $options)
 
 mark_summary (question_attempt $qa, qbehaviour_renderer $behaviouroutput, question_display_options $options)
 Generate the display of the marks for this question. More...
 
 number ($number)
 Generate the display of the question number. More...
 
 outcome (question_attempt $qa, qbehaviour_renderer $behaviouroutput, qtype_renderer $qtoutput, question_display_options $options)
 Generate the display of the outcome part of the question. More...
 
 question_flag (question_attempt $qa, $flagsoption)
 Render the question flag, assuming $flagsoption allows it. More...
 
 response_history (question_attempt $qa, qbehaviour_renderer $behaviouroutput, qtype_renderer $qtoutput, question_display_options $options)
 Generate the display of the response history part of the question. More...
 
 status (question_attempt $qa, qbehaviour_renderer $behaviouroutput, question_display_options $options)
 Generate the display of the status line that gives the current state of the question. More...
 

Protected Attributes

xhtml_container_stack $opencontainers
 The xhtml_container_stack to use.
 
renderer_base core_renderer $output
 A reference to the current renderer. More...
 
moodle_page $page
 The Moodle page the renderer has been created to assist with.
 
string $target
 The requested rendering target.
 

Detailed Description

This renderer controls the overall output of questions.

It works with a qbehaviour_renderer and a qtype_renderer to output the type-specific bits. The main entry point is the question() method.

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

Member Function Documentation

◆ __call()

plugin_renderer_base::__call (   $method,
  $arguments 
)
inherited

Magic method used to pass calls otherwise meant for the standard renderer to it to ensure we don't go causing unnecessary grief.

Parameters
string$method
array$arguments
Return values
mixed

◆ add_action_handler()

renderer_base::add_action_handler ( component_action  $action,
  $id = null 
)
inherited

Adds a JS action for the element with the provided id.

This method adds a JS event for the provided component action to the page and then returns the id that the event has been attached to. If no id has been provided then a new ID is generated by html_writer::random_id()

Parameters
component_action$action
string$id
Return values
stringid of element, either original submitted or random new if not supplied

◆ add_part_heading()

core_question_renderer::add_part_heading (   $heading,
  $content 
)
protected

Add an invisible heading like 'question text', 'feebdack' at the top of a section's contents, but only if the section has some content.

Parameters
string$headingthe heading to add.
string$contentthe content of the section.
Return values
stringHTML fragment with the heading added.

◆ formulation()

core_question_renderer::formulation ( question_attempt  $qa,
qbehaviour_renderer  $behaviouroutput,
qtype_renderer  $qtoutput,
question_display_options  $options 
)
protected

Generate the display of the formulation part of the question.

This is the area that contains the quetsion text, and the controls for students to input their answers. Some question types also embed feedback, for example ticks and crosses, in this area.

Parameters
question_attempt$qathe question attempt to display.
qbehaviour_renderer$behaviouroutputthe renderer to output the behaviour specific parts.
qtype_renderer$qtoutputthe renderer to output the question type specific parts.
question_display_options$optionscontrols what should and should not be displayed.
Return values
HTMLfragment.

◆ get_compact_logo_url()

renderer_base::get_compact_logo_url (   $maxwidth = 300,
  $maxheight = 300 
)
inherited

Return the site's compact logo URL, if any.

Parameters
int$maxwidthThe maximum width, or null when the maximum width does not matter.
int$maxheightThe maximum height, or null when the maximum height does not matter.
Return values
moodle_url|false

◆ get_flag_html()

core_question_renderer::get_flag_html (   $flagged,
  $id = '' 
)
protected

Work out the actual img tag needed for the flag.

Parameters
bool$flaggedwhether the question is currently flagged.
string$idan id to be added as an attribute to the img (optional).
Return values
stringthe img tag.

◆ get_logo_url()

renderer_base::get_logo_url (   $maxwidth = null,
  $maxheight = 200 
)
inherited

Return the site's logo URL, if any.

Parameters
int$maxwidthThe maximum width, or null when the maximum width does not matter.
int$maxheightThe maximum height, or null when the maximum height does not matter.
Return values
moodle_url|false

◆ get_mustache()

renderer_base::get_mustache ( )
protectedinherited

Return an instance of the mustache class.

Since
2.9
Return values
Mustache_Engine

◆ has_started()

renderer_base::has_started ( )
inherited

Returns true is output has already started, and false if not.

Return values
booleantrue if the header has been printed.

◆ image_url()

renderer_base::image_url (   $imagename,
  $component = 'moodle' 
)
inherited

Return the moodle_url for an image.

The exact image location and extension is determined automatically by searching for gif|png|jpg|jpeg, please note there can not be diferent images with the different extension. The imagename is for historical reasons a relative path name, it may be changed later for core images. It is recommended to not use subdirectories in plugin and theme pix directories.

There are three types of images: 1/ theme images - stored in theme/mytheme/pix/, use component 'theme' 2/ core images - stored in /pix/, overridden via theme/mytheme/pix_core/ 3/ plugin images - stored in mod/mymodule/pix, overridden via theme/mytheme/pix_plugins/mod/mymodule/, example: image_url('comment', 'mod_glossary')

Parameters
string$imagenamethe pathname of the image
string$componentfull plugin name (aka component) or 'theme'
Return values
moodle_url

◆ info()

core_question_renderer::info ( question_attempt  $qa,
qbehaviour_renderer  $behaviouroutput,
qtype_renderer  $qtoutput,
question_display_options  $options,
  $number 
)
protected

Generate the information bit of the question display that contains the metadata like the question number, current state, and mark.

Parameters
question_attempt$qathe question attempt to display.
qbehaviour_renderer$behaviouroutputthe renderer to output the behaviour specific parts.
qtype_renderer$qtoutputthe renderer to output the question type specific parts.
question_display_options$optionscontrols what should and should not be displayed.
string | null$numberThe question number to display. 'i' is a special value that gets displayed as Information. Null means no number is displayed.
Return values
HTMLfragment.

◆ mark_summary()

core_question_renderer::mark_summary ( question_attempt  $qa,
qbehaviour_renderer  $behaviouroutput,
question_display_options  $options 
)
protected

Generate the display of the marks for this question.

Parameters
question_attempt$qathe question attempt to display.
qbehaviour_renderer$behaviouroutputthe behaviour renderer, which can generate a custom display.
question_display_options$optionscontrols what should and should not be displayed.
Return values
HTMLfragment.

◆ number()

core_question_renderer::number (   $number)
protected

Generate the display of the question number.

Parameters
string | null$numberThe question number to display. 'i' is a special value that gets displayed as Information. Null means no number is displayed.
Return values
HTMLfragment.

Reimplemented in testable_core_question_renderer.

◆ outcome()

core_question_renderer::outcome ( question_attempt  $qa,
qbehaviour_renderer  $behaviouroutput,
qtype_renderer  $qtoutput,
question_display_options  $options 
)
protected

Generate the display of the outcome part of the question.

This is the area that contains the various forms of feedback.

Parameters
question_attempt$qathe question attempt to display.
qbehaviour_renderer$behaviouroutputthe renderer to output the behaviour specific parts.
qtype_renderer$qtoutputthe renderer to output the question type specific parts.
question_display_options$optionscontrols what should and should not be displayed.
Return values
HTMLfragment.

◆ pix_url()

renderer_base::pix_url (   $imagename,
  $component = 'moodle' 
)
inherited

Return the direct URL for an image from the pix folder.

Use this function sparingly and never for icons. For icons use pix_icon or the pix helper in a mustache template.

Deprecated:
since Moodle 3.3
Parameters
string$imagenamethe name of the icon.
string$componentspecification of one plugin like in get_string()
Return values
moodle_url

◆ prepare_classes()

static renderer_base::prepare_classes (   $classes)
staticinherited

Given an array or space-separated list of classes, prepares and returns the HTML class attribute value.

Parameters
mixed$classesSpace-separated string or array of classes
Return values
stringHTML class attribute value

◆ question()

core_question_renderer::question ( question_attempt  $qa,
qbehaviour_renderer  $behaviouroutput,
qtype_renderer  $qtoutput,
question_display_options  $options,
  $number 
)

Generate the display of a question in a particular state, and with certain display options.

Normally you do not call this method directly. Intsead you call question_usage_by_activity::render_question() which will call this method with appropriate arguments.

Parameters
question_attempt$qathe question attempt to display.
qbehaviour_renderer$behaviouroutputthe renderer to output the behaviour specific parts.
qtype_renderer$qtoutputthe renderer to output the question type specific parts.
question_display_options$optionscontrols what should and should not be displayed.
string | null$numberThe question number to display. 'i' is a special value that gets displayed as Information. Null means no number is displayed.
Return values
stringHTML representation of the question.

◆ question_flag()

core_question_renderer::question_flag ( question_attempt  $qa,
  $flagsoption 
)
protected

Render the question flag, assuming $flagsoption allows it.

Parameters
question_attempt$qathe question attempt to display.
int$flagsoptionthe option that says whether flags should be displayed.

◆ question_preview_link()

core_question_renderer::question_preview_link (   $questionid,
context  $context,
  $showlabel 
)

Render an icon, optionally with the word 'Preview' beside it, to preview a given question.

Parameters
int$questionidthe id of the question to be previewed.
context$contextthe context in which the preview is happening. Must be a course or category context.
bool$showlabelif true, show the word 'Preview' after the icon. If false, just show the icon.

◆ render()

plugin_renderer_base::render ( renderable  $widget)
inherited

Renders the provided widget and returns the HTML to display it.

Parameters
renderable$widgetinstance with renderable interface
Return values
string

Reimplemented from renderer_base.

Reimplemented in tool_policy\output\renderer.

◆ render_from_template()

renderer_base::render_from_template (   $templatename,
  $context 
)
inherited

Renders a template by name with the given context.

The provided data needs to be array/stdClass made up of only simple types. Simple types are array,stdClass,bool,int,float,string

Since
2.9
Parameters
array | stdClass$contextContext containing data for the template.
Return values
string|boolean

◆ response_history()

core_question_renderer::response_history ( question_attempt  $qa,
qbehaviour_renderer  $behaviouroutput,
qtype_renderer  $qtoutput,
question_display_options  $options 
)
protected

Generate the display of the response history part of the question.

This is the table showing all the steps the question has been through.

Parameters
question_attempt$qathe question attempt to display.
qbehaviour_renderer$behaviouroutputthe renderer to output the behaviour specific parts.
qtype_renderer$qtoutputthe renderer to output the question type specific parts.
question_display_options$optionscontrols what should and should not be displayed.
Return values
HTMLfragment.

◆ should_display_main_logo()

renderer_base::should_display_main_logo (   $headinglevel = 1)
inherited

Whether we should display the main logo.

Parameters
int$headinglevelThe heading level we want to check against.
Return values
bool

◆ should_display_navbar_logo()

renderer_base::should_display_navbar_logo ( )
inherited

Whether we should display the logo in the navbar.

We will when there are no main logos, and we have compact logo.

Return values
bool

◆ standard_mark_out_of_max()

core_question_renderer::standard_mark_out_of_max ( question_attempt  $qa,
question_display_options  $options 
)

Generate the display of the marks for this question out of the available marks.

Parameters
question_attempt$qathe question attempt to display.
question_display_options$optionscontrols what should and should not be displayed.
Return values
HTMLfragment.

◆ standard_mark_summary()

core_question_renderer::standard_mark_summary ( question_attempt  $qa,
qbehaviour_renderer  $behaviouroutput,
question_display_options  $options 
)

Generate the display of the marks for this question.

Parameters
question_attempt$qathe question attempt to display.
question_display_options$optionscontrols what should and should not be displayed.
Return values
HTMLfragment.

◆ standard_marked_out_of_max()

core_question_renderer::standard_marked_out_of_max ( question_attempt  $qa,
question_display_options  $options 
)

Generate the display of the available marks for this question.

Parameters
question_attempt$qathe question attempt to display.
question_display_options$optionscontrols what should and should not be displayed.
Return values
HTMLfragment.

◆ status()

core_question_renderer::status ( question_attempt  $qa,
qbehaviour_renderer  $behaviouroutput,
question_display_options  $options 
)
protected

Generate the display of the status line that gives the current state of the question.

Parameters
question_attempt$qathe question attempt to display.
qbehaviour_renderer$behaviouroutputthe renderer to output the behaviour specific parts.
question_display_options$optionscontrols what should and should not be displayed.
Return values
HTMLfragment.

Member Data Documentation

◆ $output

renderer_base core_renderer plugin_renderer_base::$output
protectedinherited

A reference to the current renderer.

The renderer provided here will be determined by the page but will in 90% of cases by the core_renderer


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