Moodle PHP Documentation 4.4
Moodle 4.4.1 (Build: 20240610) (db07c09afc5)
format_legacy Class Reference

Course format class to allow plugins developed for Moodle 2.3 to work in the new API. More...

Inheritance diagram for format_legacy:
core_courseformat\base

Public Member Functions

 add_section_preference_ids (string $preferencename, array $sectionids,)
 Add section preference ids.
 
 ajax_section_move ()
 Custom action after section has been moved in AJAX mode.
 
 allow_stealth_module_visibility ($cm, $section)
 Returns whether this course format allows the activity to have "triple visibility state" - visible always, hidden on course page but available, hidden.
 
 can_delete_section ($section)
 Whether this format allows to delete sections.
 
 can_sections_be_removed_from_navigation ()
 Determines whether section items can be removed from the navigation, just like the breadcrumb feature seen on activity pages.
 
 course_content_footer ()
 Course-specific information to be output immediately below content on any course page.
 
 course_content_header ()
 Course-specific information to be output immediately above content on any course page.
 
 course_footer ()
 Course-specific information to be output on any course page (usually in the beginning of standard footer)
 
 course_format_options ($foreditform=false)
 Definitions of the additional options that this course format uses for course.
 
 course_header ()
 Course-specific information to be output on any course page (usually above navigation bar)
 
 create_edit_form_elements (&$mform, $forsection=false)
 Adds format options elements to the course/section edit form.
 
 delete_format_data ()
 Course deletion hook.
 
 delete_module (cm_info $cm, bool $async=false)
 Wrapper for course_delete_module method.
 
 delete_section ($sectionornum, $forcedeleteifnotempty=false)
 Deletes a section.
 
 duplicate_section (section_info $originalsection)
 Duplicate a section.
 
 edit_form_validation ($data, $files, $errors)
 Override if you need to perform some extra validation of the format options.
 
 editsection_form ($action, $customdata=array())
 Return an instance of moodleform to edit a specified section.
 
 extend_course_navigation ($navigation, navigation_node $node)
 Loads all of the course sections into the navigation.
 
 get_config_for_external ()
 Return the plugin config settings for external functions, in some cases the configs will need formatting or be returned only if the current user has some capabilities enabled.
 
 get_context ()
 Returns the course context.
 
 get_course ()
 Returns a record from course database table plus additional fields that course format defines.
 
 get_course_display ()
 Get the course display value for the current course.
 
 get_courseid ()
 Returns id of the course (0 if course is not specified)
 
 get_default_blocks ()
 Returns the list of blocks to be automatically added for the newly created course.
 
 get_default_course_enddate ($mform, $fieldnames=array())
 Returns the default end date value based on the start date.
 
 get_default_section_name ($section)
 Returns the default section using course_format's implementation of get_section_name.
 
 get_editor_custom_strings ()
 Return custom strings for the course editor.
 
 get_format ()
 Returns the format name used by this course.
 
 get_format_name ()
 Returns the localised name of this course format plugin.
 
 get_format_options ($section=null)
 Returns the format options stored for this course or course section.
 
 get_format_string (string $key, $data=null)
 Get the proper format plugin string if it exists.
 
 get_last_section_number ()
 Method used in the rendered and during backup instead of legacy 'numsections'.
 
 get_max_sections ()
 Method used to get the maximum number of sections for this course format.
 
 get_modinfo ()
 Return the current course modinfo.
 
 get_non_ajax_cm_action_url (string $action, cm_info $cm)
 Return the old non-ajax activity action url.
 
 get_output_classname (string $outputname)
 Returns instance of output component used by this plugin.
 
 get_renderer (moodle_page $page)
 Returns instance of page renderer used by this plugin.
 
 get_required_jsfiles ()
 Get the required javascript files for the course format.
 
 get_section ($section, $strictness=IGNORE_MISSING)
 Returns information about section used in course.
 
 get_section_highlighted_name ()
 Returns the name for the highlighted section.
 
 get_section_name ($section)
 Returns the display name of the given section that the course prefers.
 
 get_section_number ()
 Set if the current format instance will show multiple sections or an individual one.
 
 get_sectionid ()
 Get if the current format instance will show multiple sections or an individual one.
 
 get_sectionnum ()
 Get the current section number to display.
 
 get_sections ()
 Returns a list of sections used in the course.
 
 get_sections_preferences ()
 Return the format section preferences.
 
 get_sections_preferences_by_preference ()
 Return the format section preferences.
 
 get_view_url ($section, $options=array())
 The URL to use for the specified course (with section)
 
 has_view_page ()
 Returns true if the course has a front page.
 
 inplace_editable_render_section_name ($section, $linkifneeded=true, $editable=null, $edithint=null, $editlabel=null)
 Prepares the templateable object to display section name.
 
 inplace_editable_update_section_name ($section, $itemtype, $newvalue)
 Updates the value in the database and modifies this object respectively.
 
 is_section_current ($section)
 Returns true if the specified section is current.
 
 is_section_visible (section_info $section)
 Returns if an specific section is visible to the current user.
 
 move_section_after (section_info $section, section_info $destination)
 Moves a section just after the target section.
 
 page_set_cm (moodle_page $page)
 Allows course format to execute code on moodle_page\set_cm()
 
 page_set_course (moodle_page $page)
 Allows course format to execute code on moodle_page\set_course()
 
 page_title ()
 Generate the title for this section page.
 
 remove_section_preference_ids (string $preferencename, array $sectionids,)
 Remove section preference ids.
 
 section_action ($section, $action, $sr)
 Callback used in WS core_course_edit_section when teacher performs an AJAX action on a section (show/hide)
 
 section_format_options ($foreditform=false)
 Definitions of the additional options that this course format uses for section.
 
 section_get_available_hook (section_info $section, &$available, &$availableinfo)
 Allows to specify for modinfo that section is not available even when it is visible and conditionally available.
 
 set_section_number (int $singlesection)
 Set if the current format instance will show multiple sections or an individual one.
 
 set_sectionid (?int $sectionid)
 Set if the current format instance will show multiple sections or an individual one.
 
 set_sectionnum (?int $sectionnum)
 Set the current section number to display.
 
 set_sections_preference (string $preferencename, array $sectionids)
 Return the format section preferences.
 
 show_editor (?array $capabilities=['moodle/course:manageactivities'])
 return true if the course editor must be displayed.
 
 show_groupmode (cm_info $cm)
 Check if the group mode can be displayed.
 
 supports_ajax ()
 Returns the information about the ajax support in the given source format.
 
 supports_components ()
 Returns true if this course format is compatible with content components.
 
 supports_news ()
 Indicates whether the course format supports the creation of the Announcements forum.
 
 update_course_format_options ($data, $oldcourse=null)
 Updates format options for a course.
 
 update_section_format_options ($data)
 Updates format options for a section.
 
 uses_course_index ()
 Returns true if this course format uses course index.
 
 uses_indentation ()
 Returns true if this course format uses activity indentation.
 
 uses_sections ()
 Returns true if this course format uses sections.
 
 validate_course_format_options (array $data)
 Validates format options for the course.
 

Static Public Member Functions

static instance ($courseorid)
 Returns an instance of the class.
 
static reset_course_cache ($courseid=0)
 Resets cache for the course (or all caches)
 
static session_cache (stdClass $course)
 Return the current user course format cache key.
 
static session_cache_reset (stdClass $course)
 Reset the current user course format cache.
 
static session_cache_reset_all ()
 Reset the current user for all courses.
 

Protected Member Functions

 get_form_start_date ($mform, $fieldnames)
 Get the start date value from the course settings page form.
 
 get_section_modules_updated (section_info $section)
 Return an array with all section modules content.
 
 update_format_options ($data, $sectionid=null)
 Updates format options for a course or section.
 
 validate_format_options (array $rawdata, int $sectionid=null)
 Prepares values of course or section format options before storing them in DB.
 

Static Protected Member Functions

static get_class_name ($format)
 Get class name for the format.
 
static get_format_or_default ($format)
 Validates that course format exists and enabled and returns either itself or default format.
 

Protected Attributes

stdClass $course = false
 course data for course object, please use course_format\get_course()
 
int $courseid
 Id of the course in this instance (maybe 0)
 
string $format
 format used for this course.
 
array $formatoptions = array()
 caches format options, please use course_format\get_format_options()
 
sectionmanager $sectionmanager = null
 the format section manager.
 
int null $singlesection = null
 the section number in single section format, null for multiple section formats.
 
int null $singlesectionid = null
 the sectionid when a single section is selected, null when multiple sections are displayed.
 

Detailed Description

Course format class to allow plugins developed for Moodle 2.3 to work in the new API.

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

Member Function Documentation

◆ add_section_preference_ids()

core_courseformat\base::add_section_preference_ids ( string $preferencename,
array $sectionids )
inherited

Add section preference ids.

Parameters
string$preferencenamepreference name
array$sectionidsaffected section ids

◆ ajax_section_move()

format_legacy::ajax_section_move ( )

Custom action after section has been moved in AJAX mode.

Used in course/rest.php

This function calls function callback_FORMATNAME_ajax_section_move() if it exists

Return values
arrayThis will be passed in ajax respose

Reimplemented from core_courseformat\base.

◆ allow_stealth_module_visibility()

core_courseformat\base::allow_stealth_module_visibility ( $cm,
$section )
inherited

Returns whether this course format allows the activity to have "triple visibility state" - visible always, hidden on course page but available, hidden.

Parameters
stdClass | cm_info$cmcourse module (may be null if we are displaying a form for adding a module)
stdClass | section_info$sectionsection where this module is located or will be added to
Return values
bool

Reimplemented in format_site, format_social, format_topics, and format_weeks.

◆ can_delete_section()

core_courseformat\base::can_delete_section ( $section)
inherited

Whether this format allows to delete sections.

If format supports deleting sections it is also recommended to define language string 'deletesection' inside the format.

Do not call this function directly, instead use course_can_delete_section()

Parameters
int | stdClass | section_info$section
Return values
bool

Reimplemented in format_topics, and format_weeks.

◆ can_sections_be_removed_from_navigation()

core_courseformat\base::can_sections_be_removed_from_navigation ( )
inherited

Determines whether section items can be removed from the navigation, just like the breadcrumb feature seen on activity pages.

By default, it returns false but can be overridden by the course format to change the behaviour.

Return values
boolTrue if sections can be removed, false otherwise.

◆ course_content_footer()

core_courseformat\base::course_content_footer ( )
inherited

Course-specific information to be output immediately below content on any course page.

See course_format\course_header() for usage

Return values
null|renderablenull for no output or object with data for plugin renderer

◆ course_content_header()

core_courseformat\base::course_content_header ( )
inherited

Course-specific information to be output immediately above content on any course page.

See course_format\course_header() for usage

Return values
null|renderablenull for no output or object with data for plugin renderer

◆ course_footer()

core_courseformat\base::course_footer ( )
inherited

Course-specific information to be output on any course page (usually in the beginning of standard footer)

See course_format\course_header() for usage

Return values
null|renderablenull for no output or object with data for plugin renderer

◆ course_format_options()

format_legacy::course_format_options ( $foreditform = false)

Definitions of the additional options that this course format uses for course.

By default course formats have the options that existed in Moodle 2.3:

  • coursedisplay
  • numsections
  • hiddensections
Parameters
bool$foreditform
Return values
arrayof options

Reimplemented from core_courseformat\base.

◆ course_header()

core_courseformat\base::course_header ( )
inherited

Course-specific information to be output on any course page (usually above navigation bar)

Example of usage: define class format_FORMATNAME_XXX implements renderable {}

create format renderer in course/format/FORMATNAME/renderer.php, define rendering function: class format_FORMATNAME_renderer extends plugin_renderer_base { protected function render_format_FORMATNAME_XXX(format_FORMATNAME_XXX $xxx) { return html_writer\tag('div', 'This is my header/footer'); } }

Return instance of format_FORMATNAME_XXX in this function, the appropriate method from plugin renderer will be called

Return values
null|renderablenull for no output or object with data for plugin renderer

◆ create_edit_form_elements()

core_courseformat\base::create_edit_form_elements ( & $mform,
$forsection = false )
inherited

Adds format options elements to the course/section edit form.

This function is called from course_edit_form\definition_after_data()

Parameters
MoodleQuickForm$mformform the elements are added to
bool$forsection'true' if this is a section edit form, 'false' if this is course edit form
Return values
arrayarray of references to the added form elements

Reimplemented in format_singleactivity, format_topics, and format_weeks.

◆ delete_format_data()

core_courseformat\base::delete_format_data ( )
inherited

Course deletion hook.

Format plugins can override this method to clean any format specific data and dependencies.

◆ delete_module()

core_courseformat\base::delete_module ( cm_info $cm,
bool $async = false )
inherited

Wrapper for course_delete_module method.

Format plugins can override this method to provide their own implementation of course_delete_module.

Parameters
cm_info$cmthe course module information
bool$asyncwhether or not to try to delete the module using an adhoc task. Async also depends on a plugin hook.
Exceptions
moodle_exception

◆ delete_section()

core_courseformat\base::delete_section ( $sectionornum,
$forcedeleteifnotempty = false )
inherited

Deletes a section.

Do not call this function directly, instead call course_delete_section()

Parameters
int | stdClass | section_info$sectionornum
bool$forcedeleteifnotemptyif set to false section will not be deleted if it has modules in it.
Return values
boolwhether section was deleted

◆ duplicate_section()

core_courseformat\base::duplicate_section ( section_info $originalsection)
inherited

Duplicate a section.

Parameters
section_info$originalsectionThe section to be duplicated
Return values
section_infoThe new duplicated section
Since
Moodle 4.2

◆ edit_form_validation()

core_courseformat\base::edit_form_validation ( $data,
$files,
$errors )
inherited

Override if you need to perform some extra validation of the format options.

Parameters
array$dataarray of ("fieldname"=>value) of submitted data
array$filesarray of uploaded files "element_name"=>tmp_file_path
array$errorserrors already discovered in edit form validation
Return values
arrayof "element_name"=>"error_description" if there are errors, or an empty array if everything is OK. Do not repeat errors from $errors param here

◆ editsection_form()

core_courseformat\base::editsection_form ( $action,
$customdata = array() )
inherited

Return an instance of moodleform to edit a specified section.

Default implementation returns instance of editsection_form that automatically adds additional fields defined in course_format\section_format_options()

Format plugins may extend editsection_form if they want to have custom edit section form.

Parameters
mixed$actionthe action attribute for the form. If empty defaults to auto detect the current url. If a moodle_url object then outputs params as hidden variables.
array$customdatathe array with custom data to be passed to the form /course/editsection.php passes section_info object in 'cs' field for filling availability fields
Return values
moodleform

◆ extend_course_navigation()

format_legacy::extend_course_navigation ( $navigation,
navigation_node $node )

Loads all of the course sections into the navigation.

First this function calls callback_FORMATNAME_display_content() if it exists to check if the navigation should be extended at all

Then it calls function callback_FORMATNAME_load_content() if it exists to actually extend navigation

By default the parent method is called

Parameters
global_navigation$navigation
navigation_node$nodeThe course node within the navigation

Reimplemented from core_courseformat\base.

◆ get_class_name()

static core_courseformat\base::get_class_name ( $format)
staticfinalprotectedinherited

Get class name for the format.

If course format xxx does not declare class format_xxx, format_legacy will be returned. This function also includes lib.php file from corresponding format plugin

Parameters
string$format
Return values
string

◆ get_config_for_external()

core_courseformat\base::get_config_for_external ( )
inherited

Return the plugin config settings for external functions, in some cases the configs will need formatting or be returned only if the current user has some capabilities enabled.

Return values
arraythe list of configs
Since
Moodle 3.5

Reimplemented in format_singleactivity, format_social, format_topics, and format_weeks.

◆ get_context()

core_courseformat\base::get_context ( )
finalinherited

Returns the course context.

Return values
context_coursethe course context

◆ get_course()

core_courseformat\base::get_course ( )
inherited

Returns a record from course database table plus additional fields that course format defines.

Return values
?stdClass

◆ get_course_display()

core_courseformat\base::get_course_display ( )
inherited

Get the course display value for the current course.

Formats extending topics or weeks will use coursedisplay as this setting name so they don't need to override the method. However, if the format uses a different display logic it must override this method to ensure the core renderers know if a COURSE_DISPLAY_MULTIPAGE or COURSE_DISPLAY_SINGLEPAGE is being used.

Return values
intThe current value (COURSE_DISPLAY_MULTIPAGE or COURSE_DISPLAY_SINGLEPAGE)

◆ get_courseid()

core_courseformat\base::get_courseid ( )
finalinherited

Returns id of the course (0 if course is not specified)

Return values
int

◆ get_default_blocks()

format_legacy::get_default_blocks ( )

Returns the list of blocks to be automatically added for the newly created course.

This function checks the existence of the file config.php in the course format folder. If file exists and contains the code $format['defaultblocks'] = 'leftblock1,leftblock2:rightblock1,rightblock2'; these blocks are used, otherwise parent function is called

Return values
arrayof default blocks, must contain two keys BLOCK_POS_LEFT and BLOCK_POS_RIGHT each of values is an array of block names (for left and right side columns)

Reimplemented from core_courseformat\base.

◆ get_default_course_enddate()

core_courseformat\base::get_default_course_enddate ( $mform,
$fieldnames = array() )
inherited

Returns the default end date value based on the start date.

This is the default implementation for course formats, it is based on moodlecourse/courseduration setting. Course formats like format_weeks for example can overwrite this method and return a value based on their internal options.

Parameters
MoodleQuickForm$mform
array$fieldnamesThe form - field names mapping.
Return values
int

Reimplemented in format_weeks.

◆ get_default_section_name()

core_courseformat\base::get_default_section_name ( $section)
inherited

Returns the default section using course_format's implementation of get_section_name.

Parameters
int | stdClass$sectionSection object from database or just field course_sections section
Return values
stringThe default value for the section name based on the given course format.

Reimplemented in format_topics, and format_weeks.

◆ get_editor_custom_strings()

core_courseformat\base::get_editor_custom_strings ( )
inherited

Return custom strings for the course editor.

This method is mainly used to translate the "section" related strings into the specific format plugins name such as "Topics" or "Weeks".

Return values
stdClass[]an array of objects with string "component" and "key"

◆ get_form_start_date()

core_courseformat\base::get_form_start_date ( $mform,
$fieldnames )
protectedinherited

Get the start date value from the course settings page form.

Parameters
MoodleQuickForm$mform
array$fieldnamesThe form - field names mapping.
Return values
int

◆ get_format()

core_courseformat\base::get_format ( )
finalinherited

Returns the format name used by this course.

Return values
string

◆ get_format_name()

core_courseformat\base::get_format_name ( )
finalinherited

Returns the localised name of this course format plugin.

Return values
lang_string

◆ get_format_options()

core_courseformat\base::get_format_options ( $section = null)
inherited

Returns the format options stored for this course or course section.

When overriding please note that this function is called from rebuild_course_cache() and section_info object, therefore using of get_fast_modinfo() and/or any function that accesses it may lead to recursion.

Parameters
null | int | stdClass | section_info$sectionif null the course format options will be returned otherwise options for specified section will be returned. This can be either section object or relative section number (field course_sections.section)
Return values
array

◆ get_format_or_default()

static core_courseformat\base::get_format_or_default ( $format)
staticfinalprotectedinherited

Validates that course format exists and enabled and returns either itself or default format.

Parameters
string$format
Return values
string

◆ get_format_string()

core_courseformat\base::get_format_string ( string $key,
$data = null )
inherited

Get the proper format plugin string if it exists.

If the format_PLUGINNAME does not provide a valid string, core_courseformat will be user as the component.

Parameters
string$keythe string key
string | object | array | int$dataextra data that can be used within translation strings
Return values
stringthe get_string result

◆ get_last_section_number()

core_courseformat\base::get_last_section_number ( )
inherited

Method used in the rendered and during backup instead of legacy 'numsections'.

Default renderer will treat sections with sectionnumber greater that the value returned by this method as "orphaned" and not display them on the course page unless in editing mode. Backup will store this value as 'numsections'.

This method ensures that 3rd party course format plugins that still use 'numsections' continue to work but at the same time we no longer expect formats to have 'numsections' property.

Return values
intThe last section number, or -1 if sections are entirely missing

◆ get_max_sections()

core_courseformat\base::get_max_sections ( )
inherited

Method used to get the maximum number of sections for this course format.

Return values
int

◆ get_modinfo()

core_courseformat\base::get_modinfo ( )
inherited

Return the current course modinfo.

This method is used mainly by the output components to avoid unnecesary get_fast_modinfo calls.

Return values
course_modinfo

◆ get_non_ajax_cm_action_url()

core_courseformat\base::get_non_ajax_cm_action_url ( string $action,
cm_info $cm )
inherited

Return the old non-ajax activity action url.

BrowserKit behats tests cannot trigger javascript events, so we must translate to an old non-ajax url while non-ajax course editing is still supported.

Parameters
string$actionaction name the reactive action
cm_info$cmcourse module
Return values
moodle_url

◆ get_output_classname()

core_courseformat\base::get_output_classname ( string $outputname)
inherited

Returns instance of output component used by this plugin.

Exceptions
coding_exceptionif the format class does not extends the original core one.
Parameters
string$outputnamethe element to render (section, activity...)
Return values
stringthe output component classname

◆ get_renderer()

core_courseformat\base::get_renderer ( moodle_page $page)
inherited

Returns instance of page renderer used by this plugin.

Parameters
moodle_page$page
Return values
renderer_base

Reimplemented in format_site.

◆ get_required_jsfiles()

core_courseformat\base::get_required_jsfiles ( )
inherited

Get the required javascript files for the course format.

Return values
arrayThe list of javascript files required by the course format.

Reimplemented in format_topics, and format_weeks.

◆ get_section()

core_courseformat\base::get_section ( $section,
$strictness = IGNORE_MISSING )
finalinherited

Returns information about section used in course.

Parameters
int | stdClass$sectioneither section number (field course_section.section) or row from course_section table
int$strictness
Return values
?section_info

◆ get_section_highlighted_name()

core_courseformat\base::get_section_highlighted_name ( )
inherited

Returns the name for the highlighted section.

Return values
stringThe name for the highlighted section based on the given course format.

Reimplemented in format_weeks.

◆ get_section_modules_updated()

core_courseformat\base::get_section_modules_updated ( section_info $section)
protectedinherited

Return an array with all section modules content.

This method is used in section_action method to generate the updated modules content after a modinfo change.

Parameters
section_info$sectionthe section
Return values
string[]the full modules content.

◆ get_section_name()

format_legacy::get_section_name ( $section)

Returns the display name of the given section that the course prefers.

This function calls function callback_FORMATNAME_get_section_name() if it exists

Parameters
int | stdClass$sectionSection object from database or just field section.section
Return values
stringDisplay name that the course format prefers, e.g. "Topic 2"

Reimplemented from core_courseformat\base.

◆ get_section_number()

core_courseformat\base::get_section_number ( )
inherited

Set if the current format instance will show multiple sections or an individual one.

Some formats has the hability to swith from one section to multiple sections per page, output components will use this method to know if the current display is a single or multiple sections.

Return values
intzero for all sections or the sectin number
Deprecated
Since 4.4. Use get_sectionnum instead.
Todo
MDL-80116 This will be deleted in Moodle 4.8.

◆ get_sectionid()

core_courseformat\base::get_sectionid ( )
inherited

Get if the current format instance will show multiple sections or an individual one.

Some formats has the hability to swith from one section to multiple sections per page, output components will use this method to know if the current display is a single or multiple sections.

Return values
int|nullnull for all sections or the sectionid.

◆ get_sectionnum()

core_courseformat\base::get_sectionnum ( )
inherited

Get the current section number to display.

Some formats has the hability to swith from one section to multiple sections per page.

Since
Moodle 4.4
Return values
int|nullthe current section number or null when there is no single section.

Reimplemented in format_site.

◆ get_sections()

core_courseformat\base::get_sections ( )
finalinherited

Returns a list of sections used in the course.

This is a shortcut to get_fast_modinfo()->get_section_info_all()

See also
get_fast_modinfo()
course_modinfo\get_section_info_all()
Return values
arrayof section_info objects

◆ get_sections_preferences()

core_courseformat\base::get_sections_preferences ( )
inherited

Return the format section preferences.

Return values
arrayof preferences indexed by sectionid

◆ get_sections_preferences_by_preference()

core_courseformat\base::get_sections_preferences_by_preference ( )
inherited

Return the format section preferences.

Return values
arrayof preferences indexed by preference name

◆ get_view_url()

format_legacy::get_view_url ( $section,
$options = array() )

The URL to use for the specified course (with section)

This function calls function callback_FORMATNAME_get_section_url() if it exists

Parameters
int | stdClass$sectionSection object from database or just field course_sections.section if omitted the course view page is returned
array$optionsoptions for view URL. At the moment core uses: 'navigation' (bool) if true and section has no separate page, the function returns null 'sr' (int) used by multipage formats to specify to which section to return
Return values
null|moodle_url

Reimplemented from core_courseformat\base.

◆ has_view_page()

core_courseformat\base::has_view_page ( )
inherited

Returns true if the course has a front page.

This function is called to determine if the course has a view page, whether or not it contains a listing of activities. It can be useful to set this to false when the course format has only one activity and ignores the course page. Or if there are multiple activities but no page to see the centralised information.

Initially this was created to know if forms should add a button to return to the course page. So if 'Return to course' does not make sense in your format your should probably return false.

Return values
boolean
Since
Moodle 2.6

Reimplemented in format_singleactivity.

◆ inplace_editable_render_section_name()

core_courseformat\base::inplace_editable_render_section_name ( $section,
$linkifneeded = true,
$editable = null,
$edithint = null,
$editlabel = null )
inherited

Prepares the templateable object to display section name.

Parameters
section_info | stdClass$section
bool$linkifneeded
bool$editable
null | lang_string | string$edithint
null | lang_string | string$editlabel
Return values
core\output\inplace_editable

◆ inplace_editable_update_section_name()

core_courseformat\base::inplace_editable_update_section_name ( $section,
$itemtype,
$newvalue )
inherited

Updates the value in the database and modifies this object respectively.

ALWAYS check user permissions before performing an update! Throw exceptions if permissions are not sufficient or value is not legit.

Parameters
stdClass$section
string$itemtype
mixed$newvalue
Return values
?\core\output\inplace_editable

◆ instance()

static core_courseformat\base::instance ( $courseorid)
staticfinalinherited

Returns an instance of the class.

Todo
MDL-35727 use MUC for caching of instances, limit the number of cached instances
Parameters
int | stdClass$courseorideither course id or an object that has the property 'format' and may contain property 'id'
Return values
base

◆ is_section_current()

core_courseformat\base::is_section_current ( $section)
inherited

Returns true if the specified section is current.

By default we analyze $course->marker

Parameters
int | stdClass | section_info$section
Return values
bool

Reimplemented in format_weeks.

◆ is_section_visible()

core_courseformat\base::is_section_visible ( section_info $section)
inherited

Returns if an specific section is visible to the current user.

Formats can overrride this method to implement any special section logic.

Parameters
section_info$sectionthe section modinfo
Return values
bool;

◆ move_section_after()

core_courseformat\base::move_section_after ( section_info $section,
section_info $destination )
inherited

Moves a section just after the target section.

Parameters
section_info$sectionthe section to move
section_info$destinationthe section that should be below the moved section
Return values
booleanif the section can be moved or not

◆ page_set_cm()

core_courseformat\base::page_set_cm ( moodle_page $page)
inherited

Allows course format to execute code on moodle_page\set_cm()

Current module can be accessed as $page->cm (returns instance of cm_info)

Parameters
moodle_page$pageinstance of page calling set_cm

Reimplemented in format_singleactivity.

◆ page_set_course()

core_courseformat\base::page_set_course ( moodle_page $page)
inherited

Allows course format to execute code on moodle_page\set_course()

Parameters
moodle_page$pageinstance of page calling set_course

Reimplemented in format_singleactivity.

◆ page_title()

core_courseformat\base::page_title ( )
inherited

Generate the title for this section page.

Return values
stringthe page title

Reimplemented in format_topics, and format_weeks.

◆ remove_section_preference_ids()

core_courseformat\base::remove_section_preference_ids ( string $preferencename,
array $sectionids )
inherited

Remove section preference ids.

Parameters
string$preferencenamepreference name
array$sectionidsaffected section ids

◆ reset_course_cache()

static core_courseformat\base::reset_course_cache ( $courseid = 0)
staticfinalinherited

Resets cache for the course (or all caches)

To be called from rebuild_course_cache()

Parameters
int$courseid

◆ section_action()

core_courseformat\base::section_action ( $section,
$action,
$sr )
inherited

Callback used in WS core_course_edit_section when teacher performs an AJAX action on a section (show/hide)

Access to the course is already validated in the WS but the callback has to make sure that particular action is allowed by checking capabilities

Course formats should register

Parameters
stdClass | section_info$section
string$action
int$srthe section return
Return values
null|array|stdClassany data for the Javascript post-processor (must be json-encodeable)

Reimplemented in format_topics, and format_weeks.

◆ section_format_options()

core_courseformat\base::section_format_options ( $foreditform = false)
inherited

Definitions of the additional options that this course format uses for section.

See course_format\course_format_options() for return array definition.

Additionally section format options may have property 'cache' set to true if this option needs to be cached in get_fast_modinfo(). The 'cache' property is recommended to be set only for fields used in course_format\get_section_name(), course_format\extend_course_navigation() and course_format\get_view_url()

For better performance cached options are recommended to have 'cachedefault' property Unlike 'default', 'cachedefault' should be static and not access get_config().

Regardless of value of 'cache' all options are accessed in the code as $sectioninfo->OPTIONNAME where $sectioninfo is instance of section_info, returned by get_fast_modinfo($course)->get_section_info($sectionnum) or get_fast_modinfo($course)->get_section_info_all()

All format options for particular section are returned by calling: $this->get_format_options($section);

Parameters
bool$foreditform
Return values
array

◆ section_get_available_hook()

core_courseformat\base::section_get_available_hook ( section_info $section,
& $available,
& $availableinfo )
inherited

Allows to specify for modinfo that section is not available even when it is visible and conditionally available.

Note: affected user can be retrieved as: $section->modinfo->userid

Course format plugins can override the method to change the properties $available and $availableinfo that were calculated by conditional availability. To make section unavailable set: $available = false; To make unavailable section completely hidden set: $availableinfo = ''; To make unavailable section visible with availability message set: $availableinfo = get_string('sectionhidden', 'format_xxx');

Parameters
section_info$section
bool$availablethe 'available' propery of the section_info as it was evaluated by conditional availability. Can be changed by the method but 'false' can not be overridden by 'true'.
string$availableinfothe 'availableinfo' propery of the section_info as it was evaluated by conditional availability. Can be changed by the method

◆ session_cache()

static core_courseformat\base::session_cache ( stdClass $course)
staticinherited

Return the current user course format cache key.

The course format session cache can be used to cache the user course representation. The statekey will be reset when the the course state changes. For example when the course is edited, the user completes an activity or simply some course preference like collapsing a section happens.

Parameters
stdClass$coursethe course object
Return values
stringthe current statekey

◆ session_cache_reset()

static core_courseformat\base::session_cache_reset ( stdClass $course)
staticinherited

Reset the current user course format cache.

The course format cache resets every time the course cache resets but also when the user changes their course format preference, complete an activity...

Parameters
stdClass$coursethe course object
Return values
stringthe new statekey

◆ session_cache_reset_all()

static core_courseformat\base::session_cache_reset_all ( )
staticinherited

Reset the current user for all courses.

The course format cache resets every time the course cache resets but also when the user changes their language, all course editors

Return values
void

◆ set_section_number()

core_courseformat\base::set_section_number ( int $singlesection)
inherited

Set if the current format instance will show multiple sections or an individual one.

Some formats has the hability to swith from one section to multiple sections per page.

Parameters
int$singlesectionzero for all sections or a section number
Deprecated
Since 4.4. Use set_sectionnum instead.
Todo
MDL-80116 This will be deleted in Moodle 4.8.

◆ set_sectionid()

core_courseformat\base::set_sectionid ( ?int $sectionid)
inherited

Set if the current format instance will show multiple sections or an individual one.

Some formats has the hability to swith from one section to multiple sections per page.

Parameters
int | null$sectionidnull for all sections or a sectionid.

◆ set_sectionnum()

core_courseformat\base::set_sectionnum ( ?int $sectionnum)
inherited

Set the current section number to display.

Some formats has the hability to swith from one section to multiple sections per page.

Since
Moodle 4.4
Parameters
int | null$sectionnumnull for all sections or a sectionid.

◆ set_sections_preference()

core_courseformat\base::set_sections_preference ( string $preferencename,
array $sectionids )
inherited

Return the format section preferences.

Parameters
string$preferencenamepreference name
int[]$sectionidsaffected section ids

◆ show_editor()

core_courseformat\base::show_editor ( ?array $capabilities = ['moodle/course:manageactivities'])
inherited

return true if the course editor must be displayed.

Parameters
array | null$capabilitiesarray of capabilities a user needs to have to see edit controls in general. If null or not specified, the user needs to have 'moodle/course:manageactivities'.
Return values
booltrue if edit controls must be displayed

◆ show_groupmode()

core_courseformat\base::show_groupmode ( cm_info $cm)
inherited

Check if the group mode can be displayed.

Parameters
cm_info$cmthe activity module
Return values
bool

◆ supports_ajax()

format_legacy::supports_ajax ( )

Returns the information about the ajax support in the given source format.

This function calls function callback_FORMATNAME_ajax_support() if it exists

The returned object's property (boolean)capable indicates that the course format supports Moodle course ajax features.

Return values
stdClass

Reimplemented from core_courseformat\base.

◆ supports_components()

core_courseformat\base::supports_components ( )
inherited

Returns true if this course format is compatible with content components.

Using components means the content elements can watch the frontend course state and react to the changes. Formats with component compatibility can have more interactions without refreshing the page, like having drag and drop from the course index to reorder sections and activities.

Return values
boolif the format is compatible with components.

Reimplemented in format_topics, and format_weeks.

◆ supports_news()

core_courseformat\base::supports_news ( )
inherited

Indicates whether the course format supports the creation of the Announcements forum.

For course format plugin developers, please override this to return true if you want the Announcements forum to be created upon course creation.

Return values
bool

Reimplemented in format_topics, and format_weeks.

◆ update_course_format_options()

format_legacy::update_course_format_options ( $data,
$oldcourse = null )

Updates format options for a course.

Legacy course formats may assume that course format options ('coursedisplay', 'numsections' and 'hiddensections') are shared between formats. Therefore we make sure to copy them from the previous format

Parameters
stdClass | array$datareturn value from moodleform::get_data() or array with data
stdClass$oldcourseif this function is called from update_course() this object contains information about the course before update
Return values
boolwhether there were any changes to the options values

Reimplemented from core_courseformat\base.

◆ update_format_options()

core_courseformat\base::update_format_options ( $data,
$sectionid = null )
protectedinherited

Updates format options for a course or section.

If $data does not contain property with the option name, the option will not be updated

Parameters
stdClass | array$datareturn value from moodleform\get_data() or array with data
null | int$sectionidnull if these are options for course or section id (course_sections.id) if these are options for section
Return values
boolwhether there were any changes to the options values

◆ update_section_format_options()

core_courseformat\base::update_section_format_options ( $data)
inherited

Updates format options for a section.

Section id is expected in $data->id (or $data['id']) If $data does not contain property with the option name, the option will not be updated

Parameters
stdClass | array$datareturn value from moodleform\get_data() or array with data
Return values
boolwhether there were any changes to the options values

◆ uses_course_index()

core_courseformat\base::uses_course_index ( )
inherited

Returns true if this course format uses course index.

This function may be called without specifying the course id i.e. in course_index_drawer()

Return values
bool

Reimplemented in format_topics, and format_weeks.

◆ uses_indentation()

core_courseformat\base::uses_indentation ( )
inherited

Returns true if this course format uses activity indentation.

Return values
boolif the course format uses indentation.

Reimplemented in format_topics, and format_weeks.

◆ uses_sections()

format_legacy::uses_sections ( )

Returns true if this course format uses sections.

This function calls function callback_FORMATNAME_uses_sections() if it exists

Return values
bool

Reimplemented from core_courseformat\base.

◆ validate_course_format_options()

core_courseformat\base::validate_course_format_options ( array $data)
inherited

Validates format options for the course.

Parameters
array$datadata to insert/update
Return values
arrayarray of options that have valid values

◆ validate_format_options()

core_courseformat\base::validate_format_options ( array $rawdata,
int $sectionid = null )
protectedinherited

Prepares values of course or section format options before storing them in DB.

If an option has invalid value it is not returned

Parameters
array$rawdataassociative array of the proposed course/section format options
int | null$sectionidnull if it is course format option
Return values
arrayarray of options that have valid values

Member Data Documentation

◆ $format

string core_courseformat\base::$format
protectedinherited

format used for this course.

Please note that it can be different from course.format field if course referes to non-existing of disabled format


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