Search moodle.org's
Developer Documentation


Long Term Support Release

  • Bug fixes for general core bugs in 3.9.x will end* 10 May 2021 (12 months).
  • Bug fixes for security issues in 3.9.x will end* 8 May 2023 (36 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.
  • /lib/ -> weblib.php (source)

    Differences Between: [Versions 32 and 39] [Versions 33 and 39] [Versions 34 and 39] [Versions 35 and 39] [Versions 36 and 39] [Versions 37 and 39] [Versions 38 and 39]

    Library of functions for web output Library of all general-purpose Moodle PHP functions and constants that produce HTML output

    Copyright: 1999 onwards Martin Dougiamas {@link http://moodle.com}
    License: http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
    File Size: 3722 lines (128 kb)
    Included or required:0 times
    Referenced: 0 times
    Includes or requires: 0 files

    Defines 9 classes

    moodle_url:: (86 methods):
      __construct()
      params()
      remove_params()
      remove_all_params()
      param()
      merge_overrideparams()
      get_query_string()
      __toString()
      out()
      raw_out()
      out_omit_querystring()
      compare()
      set_anchor()
      set_scheme()
      set_slashargument()
      make_file_url()
      make_pluginfile_url()
      make_webservice_pluginfile_url()
      make_draftfile_url()
      make_legacyfile_url()
      out_as_local_url()
      get_path()
      get_param()
      get_scheme()
      get_host()
      get_port()
      data_submitted()
      break_up_long_words()
      close_window()
      page_doc_link()
      page_get_doc_link_path()
      validate_email()
      get_file_argument()
      format_text_menu()
      format_text()
      reset_text_filters_cache()
      format_string()
      replace_ampersands_not_followed_by_entity()
      strip_links()
      wikify_links()
      format_text_email()
      format_module_intro()
      strip_pluginfile_content()
      trusttext_strip()
      trusttext_pre_edit()
      trusttext_trusted()
      trusttext_active()
      clean_text()
      is_purify_html_necessary()
      purify_html()
      text_to_html()
      markdown_to_html()
      html_to_text()
      content_to_text()
      extract_draft_file_urls_from_text()
      highlight()
      highlightfast()
      get_html_lang()
      send_headers()
      link_arrow_right()
      link_arrow_left()
      get_accesshide()
      get_separator()
      print_collapsible_region()
      print_collapsible_region_start()
      print_collapsible_region_end()
      print_group_picture()
      get_group_picture_url()
      print_recent_activity_note()
      navmenulist()
      print_grade_menu()
      mdie()
      notice()
      redirect()
      obfuscate_email()
      obfuscate_text()
      obfuscate_mailto()
      rebuildnolinktag()
      print_maintenance_message()
      print_tabs()
      set_debugging()
      debugging()
      print_location_comment()
      right_to_left()
      fix_align_rtl()
      is_in_popup()

    progress_trace:: (1 method):
      finished()

    null_progress_trace:: (1 method):
      output()

    text_progress_trace:: (1 method):
      output()

    html_progress_trace:: (1 method):
      output()

    html_list_progress_trace:: (2 methods):
      output()
      finished()

    error_log_progress_trace:: (2 methods):
      __construct()
      output()

    progress_trace_buffer:: (5 methods):
      __construct()
      output()
      finished()
      reset_buffer()
      get_buffer()

    combined_progress_trace:: (5 methods):
      __construct()
      output()
      finished()
      print_password_policy()
      get_formatted_help_string()

    Defines 5 functions

      s()
      p()
      addslashes_js()
      strip_querystring()
      me()
      qualified_me()
      is_https()
      get_local_referer()

    Class: moodle_url  - X-Ref

    Class for creating and manipulating urls.

    It can be used in moodle pages where config.php has been included without any further includes.

    It is useful for manipulating urls with long lists of params.
    One situation where it will be useful is a page which links to itself to perform various actions
    and / or to process form data. A moodle_url object :
    can be created for a page to refer to itself with all the proper get params being passed from page call to
    page call and methods can be used to output a url including all the params, optionally adding and overriding
    params and can also be used to
    - output the url without any get params
    - and output the params as hidden fields to be output within a form

    __construct($url, array $params = null, $anchor = null)   X-Ref
    Create new instance of moodle_url.

    param: moodle_url|string $url - moodle_url means make a copy of another
    param: array $params these params override current params or add new
    param: string $anchor The anchor to use as part of the URL if there is one.

    params(array $params = null)   X-Ref
    Add an array of params to the params for this url.

    The added params override existing ones if they have the same name.

    return: array Array of Params for url.
    param: array $params Defaults to null. If null then returns all params.

    remove_params($params = null)   X-Ref
    Remove all params if no arguments passed.
    Remove selected params if arguments are passed.

    Can be called as either remove_params('param1', 'param2')
    or remove_params(array('param1', 'param2')).

    return: array url parameters
    param: string[]|string $params,... either an array of param names, or 1..n string params to remove as args.

    remove_all_params($params = null)   X-Ref
    Remove all url parameters.

    return: void
    param: array $params Unused param

    param($paramname, $newvalue = '')   X-Ref
    Add a param to the params for this url.

    The added param overrides existing one if they have the same name.

    return: mixed string parameter value, null if parameter does not exist
    param: string $paramname name
    param: string $newvalue Param value. If new value specified current value is overriden or parameter is added

    merge_overrideparams(array $overrideparams = null)   X-Ref
    Merges parameters and validates them

    return: array merged parameters
    param: array $overrideparams

    get_query_string($escaped = true, array $overrideparams = null)   X-Ref
    Get the params as as a query string.

    This method should not be used outside of this method.

    return: string query string that can be added to a url.
    param: bool $escaped Use & as params separator instead of plain &
    param: array $overrideparams params to add to the output params, these

    __toString()   X-Ref
    Shortcut for printing of encoded URL.

    return: string

    out($escaped = true, array $overrideparams = null)   X-Ref
    Output url.

    If you use the returned URL in HTML code, you want the escaped ampersands. If you use
    the returned URL in HTTP headers, you want $escaped=false.

    return: string Resulting URL
    param: bool $escaped Use & as params separator instead of plain &
    param: array $overrideparams params to add to the output url, these override existing ones with the same name.

    raw_out($escaped = true, array $overrideparams = null)   X-Ref
    Output url without any rewrites

    This is identical in signature and use to out() but doesn't call the rewrite handler.

    return: string Resulting URL
    param: bool $escaped Use & as params separator instead of plain &
    param: array $overrideparams params to add to the output url, these override existing ones with the same name.

    out_omit_querystring($includeanchor = false)   X-Ref
    Returns url without parameters, everything before '?'.

    return: string
    param: bool $includeanchor if {@link self::anchor} is defined, should it be returned?

    compare(moodle_url $url, $matchtype = URL_MATCH_EXACT)   X-Ref
    Compares this moodle_url with another.

    See documentation of constants for an explanation of the comparison flags.

    return: bool
    param: moodle_url $url The moodle_url object to compare
    param: int $matchtype The type of comparison (URL_MATCH_BASE, URL_MATCH_PARAMS, URL_MATCH_EXACT)

    set_anchor($anchor)   X-Ref
    Sets the anchor for the URI (the bit after the hash)

    param: string $anchor null means remove previous

    set_scheme($scheme)   X-Ref
    Sets the scheme for the URI (the bit before ://)

    param: string $scheme

    set_slashargument($path, $parameter = 'file', $supported = null)   X-Ref
    Sets the url slashargument value.

    return: void
    param: string $path usually file path
    param: string $parameter name of page parameter if slasharguments not supported
    param: bool $supported usually null, then it depends on $CFG->slasharguments, use true or false for other servers

    make_file_url($urlbase, $path, $forcedownload = false)   X-Ref
    General moodle file url.

    return: moodle_url
    param: string $urlbase the script serving the file
    param: string $path
    param: bool $forcedownload

    make_pluginfile_url($contextid, $component, $area, $itemid, $pathname, $filename,$forcedownload = false, $includetoken = false)   X-Ref
    Factory method for creation of url pointing to plugin file.

    Please note this method can be used only from the plugins to
    create urls of own files, it must not be used outside of plugins!

    return: moodle_url
    param: int $contextid
    param: string $component
    param: string $area
    param: int $itemid
    param: string $pathname
    param: string $filename
    param: bool $forcedownload
    param: mixed $includetoken Whether to use a user token when displaying this group image.

    make_webservice_pluginfile_url($contextid, $component, $area, $itemid, $pathname, $filename,$forcedownload = false)   X-Ref
    Factory method for creation of url pointing to plugin file.
    This method is the same that make_pluginfile_url but pointing to the webservice pluginfile.php script.
    It should be used only in external functions.

    return: moodle_url
    param: int $contextid
    param: string $component
    param: string $area
    param: int $itemid
    param: string $pathname
    param: string $filename
    param: bool $forcedownload

    make_draftfile_url($draftid, $pathname, $filename, $forcedownload = false)   X-Ref
    Factory method for creation of url pointing to draft file of current user.

    return: moodle_url
    param: int $draftid draft item id
    param: string $pathname
    param: string $filename
    param: bool $forcedownload

    make_legacyfile_url($courseid, $filepath, $forcedownload = false)   X-Ref
    Factory method for creating of links to legacy course files.

    return: moodle_url
    param: int $courseid
    param: string $filepath
    param: bool $forcedownload

    out_as_local_url($escaped = true, array $overrideparams = null)   X-Ref
    Returns URL a relative path from $CFG->wwwroot

    Can be used for passing around urls with the wwwroot stripped

    return: string Resulting URL
    param: boolean $escaped Use & as params separator instead of plain &
    param: array $overrideparams params to add to the output url, these override existing ones with the same name.

    get_path($includeslashargument = true)   X-Ref
    Returns the 'path' portion of a URL. For example, if the URL is
    http://www.example.org:447/my/file/is/here.txt?really=1 then this will
    return '/my/file/is/here.txt'.

    By default the path includes slash-arguments (for example,
    '/myfile.php/extra/arguments') so it is what you would expect from a
    URL path. If you don't want this behaviour, you can opt to exclude the
    slash arguments. (Be careful: if the $CFG variable slasharguments is
    disabled, these URLs will have a different format and you may need to
    look at the 'file' parameter too.)

    return: string Path of URL
    param: bool $includeslashargument If true, includes slash arguments

    get_param($name)   X-Ref
    Returns a given parameter value from the URL.

    return: string Value of parameter or null if not set
    param: string $name Name of parameter

    get_scheme()   X-Ref
    Returns the 'scheme' portion of a URL. For example, if the URL is
    http://www.example.org:447/my/file/is/here.txt?really=1 then this will
    return 'http' (without the colon).

    return: string Scheme of the URL.

    get_host()   X-Ref
    Returns the 'host' portion of a URL. For example, if the URL is
    http://www.example.org:447/my/file/is/here.txt?really=1 then this will
    return 'www.example.org'.

    return: string Host of the URL.

    get_port()   X-Ref
    Returns the 'port' portion of a URL. For example, if the URL is
    http://www.example.org:447/my/file/is/here.txt?really=1 then this will
    return '447'.

    return: string Port of the URL.

    data_submitted()   X-Ref
    Determine if there is data waiting to be processed from a form

    Used on most forms in Moodle to check for data
    Returns the data as an object, if it's found.
    This object can be used in foreach loops without
    casting because it's cast to (array) automatically

    Checks that submitted POST data exists and returns it as object.

    return: mixed false or object

    break_up_long_words($string, $maxsize=20, $cutchar=' ')   X-Ref
    Given some normal text this function will break up any
    long words to a given size by inserting the given character

    It's multibyte savvy and doesn't change anything inside html tags.

    return: string
    param: string $string the string to be modified
    param: int $maxsize maximum length of the string to be returned
    param: string $cutchar the string used to represent word breaks

    close_window($delay = 0, $reloadopener = false)   X-Ref
    Try and close the current window using JavaScript, either immediately, or after a delay.

    Echo's out the resulting XHTML & javascript

    param: integer $delay a delay in seconds before closing the window. Default 0.
    param: boolean $reloadopener if true, we will see if this window was a pop-up, and try

    page_doc_link($text='')   X-Ref
    Returns a string containing a link to the user documentation for the current page.

    Also contains an icon by default. Shown to teachers and admin only.

    return: string The link to user documentation for this current page
    param: string $text The text to be displayed for the link

    page_get_doc_link_path(moodle_page $page)   X-Ref
    Returns the path to use when constructing a link to the docs.

    return: string
    param: moodle_page $page

    validate_email($address)   X-Ref
    Validates an email to make sure it makes sense.

    return: boolean
    param: string $address The email address to validate.

    get_file_argument()   X-Ref
    Extracts file argument either from file parameter or PATH_INFO

    Note: $scriptname parameter is not needed anymore

    return: string file path (only safe characters)

    format_text_menu()   X-Ref
    Just returns an array of text formats suitable for a popup menu

    return: array

    format_text($text, $format = FORMAT_MOODLE, $options = null, $courseiddonotuse = null)   X-Ref
    Given text in a variety of format codings, this function returns the text as safe HTML.

    This function should mainly be used for long strings like posts,
    answers, glossary items etc. For short strings {@link format_string()}.

    <pre>
    Options:
    trusted     :   If true the string won't be cleaned. Default false required noclean=true.
    noclean     :   If true the string won't be cleaned, unless $CFG->forceclean is set. Default false required trusted=true.
    nocache     :   If true the strign will not be cached and will be formatted every call. Default false.
    filter      :   If true the string will be run through applicable filters as well. Default true.
    para        :   If true then the returned string will be wrapped in div tags. Default true.
    newlines    :   If true then lines newline breaks will be converted to HTML newline breaks. Default true.
    context     :   The context that will be used for filtering.
    overflowdiv :   If set to true the formatted text will be encased in a div
    with the class no-overflow before being returned. Default false.
    allowid     :   If true then id attributes will not be removed, even when
    using htmlpurifier. Default false.
    blanktarget :   If true all <a> tags will have target="_blank" added unless target is explicitly specified.
    </pre>

    return: string
    param: string $text The text to be formatted. This is raw text originally from user input.
    param: int $format Identifier of the text format to be used
    param: object/array $options text formatting options
    param: int $courseiddonotuse deprecated course id, use context option instead

    reset_text_filters_cache($phpunitreset = false)   X-Ref
    Resets some data related to filters, called during upgrade or when general filter settings change.

    return: void
    param: bool $phpunitreset true means called from our PHPUnit integration test reset

    format_string($string, $striplinks = true, $options = null)   X-Ref
    Given a simple string, this function returns the string
    processed by enabled string filters if $CFG->filterall is enabled

    This function should be used to print short strings (non html) that
    need filter processing e.g. activity titles, post subjects,
    glossary concepts.

    return: string
    param: string $string The string to be filtered. Should be plain text, expect
    param: boolean $striplinks To strip any link in the result text. Moodle 1.8 default changed from false to true! MDL-8713
    param: array $options options array/object or courseid

    replace_ampersands_not_followed_by_entity($string)   X-Ref
    Given a string, performs a negative lookahead looking for any ampersand character
    that is not followed by a proper HTML entity. If any is found, it is replaced
    by &amp;. The string is then returned.

    return: string
    param: string $string

    strip_links($string)   X-Ref
    Given a string, replaces all <a>.*</a> by .* and returns the string.

    return: string
    param: string $string

    wikify_links($string)   X-Ref
    This expression turns links into something nice in a text format. (Russell Jungwirth)

    return: string
    param: string $string

    format_text_email($text, $format)   X-Ref
    Given text in a variety of format codings, this function returns the text as plain text suitable for plain email.

    return: string
    param: string $text The text to be formatted. This is raw text originally from user input.
    param: int $format Identifier of the text format to be used

    format_module_intro($module, $activity, $cmid, $filter=true)   X-Ref
    Formats activity intro text

    return: string
    param: string $module name of module
    param: object $activity instance of activity
    param: int $cmid course module id
    param: bool $filter filter resulting html text

    strip_pluginfile_content($source)   X-Ref
    Removes the usage of Moodle files from a text.

    In some rare cases we need to re-use a text that already has embedded links
    to some files hosted within Moodle. But the new area in which we will push
    this content does not support files... therefore we need to remove those files.

    return: string The stripped text
    param: string $source The text

    trusttext_strip($text)   X-Ref
    Legacy function, used for cleaning of old forum and glossary text only.

    return: string text without legacy TRUSTTEXT marker
    param: string $text text that may contain legacy TRUSTTEXT marker

    trusttext_pre_edit($object, $field, $context)   X-Ref
    Must be called before editing of all texts with trust flag. Removes all XSS nasties from texts stored in database if needed.

    return: stdClass updated $object
    param: stdClass $object data object with xxx, xxxformat and xxxtrust fields
    param: string $field name of text field
    param: context $context active context

    trusttext_trusted($context)   X-Ref
    Is current user trusted to enter no dangerous XSS in this context?

    Please note the user must be in fact trusted everywhere on this server!!

    return: bool true if user trusted
    param: context $context

    trusttext_active()   X-Ref
    Is trusttext feature active?

    return: bool

    clean_text($text, $format = FORMAT_HTML, $options = array()   X-Ref
    Cleans raw text removing nasties.

    Given raw text (eg typed in by a user) this function cleans it up and removes any nasty tags that could mess up
    Moodle pages through XSS attacks.

    The result must be used as a HTML text fragment, this function can not cleanup random
    parts of html tags such as url or src attributes.

    NOTE: the format parameter was deprecated because we can safely clean only HTML.

    return: string The cleaned up text
    param: string $text The text to be cleaned
    param: int|string $format deprecated parameter, should always contain FORMAT_HTML or FORMAT_MOODLE
    param: array $options Array of options; currently only option supported is 'allowid' (if true,

    is_purify_html_necessary($text)   X-Ref
    Is it necessary to use HTMLPurifier?

    return: bool false means html is safe and valid, true means use HTMLPurifier
    param: string $text

    purify_html($text, $options = array()   X-Ref
    KSES replacement cleaning function - uses HTML Purifier.

    return: string
    param: string $text The (X)HTML string to purify
    param: array $options Array of options; currently only option supported is 'allowid' (if set,

    text_to_html($text, $smileyignored = null, $para = true, $newlines = true)   X-Ref
    Given plain text, makes it into HTML as nicely as possible.

    May contain HTML tags already.

    Do not abuse this function. It is intended as lower level formatting feature used
    by {@link format_text()} to convert FORMAT_MOODLE to HTML. You are supposed
    to call format_text() in most of cases.

    return: string
    param: string $text The string to convert.
    param: boolean $smileyignored Was used to determine if smiley characters should convert to smiley images, ignored now
    param: boolean $para If true then the returned string will be wrapped in div tags
    param: boolean $newlines If true then lines newline breaks will be converted to HTML newline breaks.

    markdown_to_html($text)   X-Ref
    Given Markdown formatted text, make it into XHTML using external function

    return: string Converted text
    param: string $text The markdown formatted text to be converted.

    html_to_text($html, $width = 75, $dolinks = true)   X-Ref
    Given HTML text, make it into plain text using external function

    return: string plain text equivalent of the HTML.
    param: string $html The text to be converted.
    param: integer $width Width to wrap the text at. (optional, default 75 which
    param: boolean $dolinks By default, any links in the HTML are collected, and

    content_to_text($content, $contentformat)   X-Ref
    Converts texts or strings to plain text.

    - When used to convert user input introduced in an editor the text format needs to be passed in $contentformat like we usually
    do in format_text.
    - When this function is used for strings that are usually passed through format_string before displaying them
    we need to set $contentformat to false. This will execute html_to_text as these strings can contain multilang tags if
    multilang filter is applied to headings.

    return: string Plain text.
    param: string $content The text as entered by the user
    param: int|false $contentformat False for strings or the text format: FORMAT_MOODLE/FORMAT_HTML/FORMAT_PLAIN/FORMAT_MARKDOWN

    extract_draft_file_urls_from_text($text, $forcehttps = false, $contextid = null, $component = null,$filearea = null, $itemid = null, $filename = null)   X-Ref
    Factory method for extracting draft file links from arbitrary text using regular expressions. Only text
    is required; other file fields may be passed to filter.

    return: array
    param: string $text Some html content.
    param: bool $forcehttps force https urls.
    param: int $contextid This parameter and the next three identify the file area to save to.
    param: string $component The component name.
    param: string $filearea The filearea.
    param: int $itemid The item id for the filearea.
    param: string $filename The specific filename of the file.

    highlight($needle, $haystack, $matchcase = false,$prefix = '<span class="highlight">', $suffix = '</span>')   X-Ref
    This function will highlight search words in a given string

    It cares about HTML and will not ruin links.  It's best to use
    this function after performing any conversions to HTML.

    return: string The highlighted HTML.
    param: string $needle The search string. Syntax like "word1 +word2 -word3" is dealt with correctly.
    param: string $haystack The string (HTML) within which to highlight the search terms.
    param: boolean $matchcase whether to do case-sensitive. Default case-insensitive.
    param: string $prefix the string to put before each search term found.
    param: string $suffix the string to put after each search term found.

    highlightfast($needle, $haystack)   X-Ref
    This function will highlight instances of $needle in $haystack

    It's faster that the above function {@link highlight()} and doesn't care about
    HTML or anything.

    return: string The highlighted HTML
    param: string $needle The string to search for
    param: string $haystack The string to search for $needle in

    get_html_lang($dir = false)   X-Ref
    Return a string containing 'lang', xml:lang and optionally 'dir' HTML attributes.

    Internationalisation, for print_header and backup/restorelib.

    return: string Attributes
    param: bool $dir Default false

    send_headers($contenttype, $cacheable = true)   X-Ref
    Send the HTTP headers that Moodle requires.

    There is a backwards compatibility hack for legacy code
    that needs to add custom IE compatibility directive.

    Example:
    <code>
    if (!isset($CFG->additionalhtmlhead)) {
    $CFG->additionalhtmlhead = '';
    }
    $CFG->additionalhtmlhead .= '<meta http-equiv="X-UA-Compatible" content="IE=8" />';
    header('X-UA-Compatible: IE=8');
    echo $OUTPUT->header();
    </code>

    Please note the $CFG->additionalhtmlhead alone might not work,
    you should send the IE compatibility header() too.

    return: void, sends HTTP headers
    param: string $contenttype
    param: bool $cacheable Can this page be cached on back?

    link_arrow_right($text, $url='', $accesshide=false, $addclass='', $addparams = [])   X-Ref
    Return the right arrow with text ('next'), and optionally embedded in a link.

    return: string HTML string.
    param: string $text HTML/plain text label (set to blank only for breadcrumb separator cases).
    param: string $url An optional link to use in a surrounding HTML anchor.
    param: bool $accesshide True if text should be hidden (for screen readers only).
    param: string $addclass Additional class names for the link, or the arrow character.

    link_arrow_left($text, $url='', $accesshide=false, $addclass='', $addparams = [])   X-Ref
    Return the left arrow with text ('previous'), and optionally embedded in a link.

    return: string HTML string.
    param: string $text HTML/plain text label (set to blank only for breadcrumb separator cases).
    param: string $url An optional link to use in a surrounding HTML anchor.
    param: bool $accesshide True if text should be hidden (for screen readers only).
    param: string $addclass Additional class names for the link, or the arrow character.

    get_accesshide($text, $elem='span', $class='', $attrs='')   X-Ref
    Return a HTML element with the class "accesshide", for accessibility.

    Please use cautiously - where possible, text should be visible!

    return: string HTML string.
    param: string $text Plain text.
    param: string $elem Lowercase element name, default "span".
    param: string $class Additional classes for the element.
    param: string $attrs Additional attributes string in the form, "name='value' name2='value2'"

    get_separator()   X-Ref
    Return the breadcrumb trail navigation separator.

    return: string HTML string.

    print_collapsible_region($contents, $classes, $id, $caption, $userpref = '', $default = false, $return = false)   X-Ref
    Print (or return) a collapsible region, that has a caption that can be clicked to expand or collapse the region.

    If JavaScript is off, then the region will always be expanded.

    return: string|void If $return is false, returns nothing, otherwise returns a string of HTML.
    param: string $contents the contents of the box.
    param: string $classes class names added to the div that is output.
    param: string $id id added to the div that is output. Must not be blank.
    param: string $caption text displayed at the top. Clicking on this will cause the region to expand or contract.
    param: string $userpref the name of the user preference that stores the user's preferred default state.
    param: boolean $default Initial collapsed state to use if the user_preference it not set.
    param: boolean $return if true, return the HTML as a string, rather than printing it.

    print_collapsible_region_start($classes, $id, $caption, $userpref = '', $default = false, $return = false)   X-Ref
    Print (or return) the start of a collapsible region

    The collapsibleregion has a caption that can be clicked to expand or collapse the region. If JavaScript is off, then the region
    will always be expanded.

    return: string|void if $return is false, returns nothing, otherwise returns a string of HTML.
    param: string $classes class names added to the div that is output.
    param: string $id id added to the div that is output. Must not be blank.
    param: string $caption text displayed at the top. Clicking on this will cause the region to expand or contract.
    param: string $userpref the name of the user preference that stores the user's preferred default state.
    param: boolean $default Initial collapsed state to use if the user_preference it not set.
    param: boolean $return if true, return the HTML as a string, rather than printing it.

    print_collapsible_region_end($return = false)   X-Ref
    Close a region started with print_collapsible_region_start.

    return: string|void if $return is false, returns nothing, otherwise returns a string of HTML.
    param: boolean $return if true, return the HTML as a string, rather than printing it.

    print_group_picture($group, $courseid, $large = false, $return = false, $link = true, $includetoken = false)   X-Ref
    Print a specified group's avatar.

    return: string|void Depending on the setting of $return
    param: array|stdClass $group A single {@link group} object OR array of groups.
    param: int $courseid The course ID.
    param: boolean $large Default small picture, or large.
    param: boolean $return If false print picture, otherwise return the output as string
    param: boolean $link Enclose image in a link to view specified course?
    param: boolean $includetoken Whether to use a user token when displaying this group image.

    get_group_picture_url($group, $courseid, $large = false, $includetoken = false)   X-Ref
    Return the url to the group picture.

    return: moodle_url Returns the url for the group picture.
    param: stdClass $group A group object.
    param: int $courseid The course ID for the group.
    param: bool $large A large or small group picture? Default is small.
    param: boolean $includetoken Whether to use a user token when displaying this group image.

    print_recent_activity_note($time, $user, $text, $link, $return=false, $viewfullnames=null)   X-Ref
    Display a recent activity note

    return: string If $retrun was true returns HTML for a recent activity notice.
    param: int $time A timestamp int.
    param: stdClass $user A user object from the database.
    param: string $text Text for display for the note
    param: string $link The link to wrap around the text
    param: bool $return If set to true the HTML is returned rather than echo'd
    param: string $viewfullnames

    navmenulist($course, $sections, $modinfo, $strsection, $strjumpto, $width=50, $cmid=0)   X-Ref
    Returns a popup menu with course activity modules

    Given a course this function returns a small popup menu with all the course activity modules in it, as a navigation menu
    outputs a simple list structure in XHTML.
    The data is taken from the serialised array stored in the course record.

    return: string The HTML block
    param: course $course A {@link $COURSE} object.
    param: array $sections
    param: course_modinfo $modinfo
    param: string $strsection
    param: string $strjumpto
    param: int $width
    param: string $cmid

    print_grade_menu($courseid, $name, $current, $includenograde=true, $return=false)   X-Ref
    Prints a grade menu (as part of an existing form) with help showing all possible numerical grades and scales.

    return: string|bool Depending on value of $return
    param: int $courseid The course ID
    param: string $name
    param: string $current
    param: boolean $includenograde Include those with no grades
    param: boolean $return If set to true returns rather than echo's

    mdie($msg='', $errorcode=1)   X-Ref
    Print an error to STDOUT and exit with a non-zero code. For commandline scripts.

    Default errorcode is 1.

    Very useful for perl-like error-handling:
    do_somethting() or mdie("Something went wrong");

    param: string  $msg       Error message
    param: integer $errorcode Error code to emit

    notice($message, $link='', $course=null)   X-Ref
    Print a message and exit.

    return: void This function simply exits
    param: string $message The message to print in the notice
    param: moodle_url|string $link The link to use for the continue button
    param: object $course A course object. Unused.

    redirect($url, $message='', $delay=null, $messagetype = \core\output\notification::NOTIFY_INFO)   X-Ref
    Redirects the user to another page, after printing a notice.

    This function calls the OUTPUT redirect method, echo's the output and then dies to ensure nothing else happens.

    <strong>Good practice:</strong> You should call this method before starting page
    output by using any of the OUTPUT methods.

    param: moodle_url|string $url A moodle_url to redirect to. Strings are not to be trusted!
    param: string $message The message to display to the user
    param: int $delay The delay before redirecting
    param: string $messagetype The type of notification to show the message in. See constants on \core\output\notification.

    obfuscate_email($email)   X-Ref
    Given an email address, this function will return an obfuscated version of it.

    return: string The obfuscated email address
    param: string $email The email address to obfuscate

    obfuscate_text($plaintext)   X-Ref
    This function takes some text and replaces about half of the characters
    with HTML entity equivalents.   Return string is obviously longer.

    return: string The obfuscated text
    param: string $plaintext The text to be obfuscated

    obfuscate_mailto($email, $label='', $dimmed=false, $subject = '', $body = '')   X-Ref
    This function uses the {@link obfuscate_email()} and {@link obfuscate_text()}
    to generate a fully obfuscated email link, ready to use.

    return: string The obfuscated mailto link
    param: string $email The email address to display
    param: string $label The text to displayed as hyperlink to $email
    param: boolean $dimmed If true then use css class 'dimmed' for hyperlink
    param: string $subject The subject of the email in the mailto link
    param: string $body The content of the email in the mailto link

    rebuildnolinktag($text)   X-Ref
    This function is used to rebuild the <nolink> tag because some formats (PLAIN and WIKI)
    will transform it to html entities

    return: string
    param: string $text Text to search for nolink tag in

    print_maintenance_message()   X-Ref
    Prints a maintenance message from $CFG->maintenance_message or default if empty.


    print_tabs($tabrows, $selected = null, $inactive = null, $activated = null, $return = false)   X-Ref
    Returns a string containing a nested list, suitable for formatting into tabs with CSS.

    It is not recommended to use this function in Moodle 2.5 but it is left for backward
    compartibility.

    Example how to print a single line tabs:
    $rows = array(
    new tabobject(...),
    new tabobject(...)
    );
    echo $OUTPUT->tabtree($rows, $selectedid);

    Multiple row tabs may not look good on some devices but if you want to use them
    you can specify ->subtree for the active tabobject.

    return: string HTML output if $return was set to true.
    param: array $tabrows An array of rows where each row is an array of tab objects
    param: string $selected  The id of the selected tab (whatever row it's on)
    param: array  $inactive  An array of ids of inactive tabs that are not selectable.
    param: array  $activated An array of ids of other tabs that are currently activated
    param: bool $return If true output is returned rather then echo'd

    set_debugging($level, $debugdisplay = null)   X-Ref
    Alter debugging level for the current request,
    the change is not saved in database.

    param: int $level one of the DEBUG_* constants
    param: bool $debugdisplay

    debugging($message = '', $level = DEBUG_NORMAL, $backtrace = null)   X-Ref
    Standard Debugging Function

    Returns true if the current site debugging settings are equal or above specified level.
    If passed a parameter it will emit a debugging notice similar to trigger_error(). The
    routing of notices is controlled by $CFG->debugdisplay
    eg use like this:

    1)  debugging('a normal debug notice');
    2)  debugging('something really picky', DEBUG_ALL);
    3)  debugging('annoying debug message only for developers', DEBUG_DEVELOPER);
    4)  if (debugging()) { perform extra debugging operations (do not use print or echo) }

    In code blocks controlled by debugging() (such as example 4)
    any output should be routed via debugging() itself, or the lower-level
    trigger_error() or error_log(). Using echo or print will break XHTML
    JS and HTTP headers.

    It is also possible to define NO_DEBUG_DISPLAY which redirects the message to error_log.

    return: bool
    param: string $message a message to print
    param: int $level the level at which this debugging statement should show
    param: array $backtrace use different backtrace

    print_location_comment($file, $line, $return = false)   X-Ref
    Outputs a HTML comment to the browser.

    This is used for those hard-to-debug pages that use bits from many different files in very confusing ways (e.g. blocks).

    <code>print_location_comment(__FILE__, __LINE__);</code>

    return: string|void Void unless true given as third parameter
    param: string $file
    param: integer $line
    param: boolean $return Whether to return or print the comment

    right_to_left()   X-Ref
    Returns true if the user is using a right-to-left language.

    return: boolean true if the current language is right-to-left (Hebrew, Arabic etc)

    fix_align_rtl($align)   X-Ref
    Returns swapped left<=> right if in RTL environment.

    Part of RTL Moodles support.

    return: string
    param: string $align align to check

    is_in_popup()   X-Ref
    Returns true if the page is displayed in a popup window.

    Gets the information from the URL parameter inpopup.

    return: boolean

    Class: progress_trace  - X-Ref

    Progress trace class.

    Use this class from long operations where you want to output occasional information about
    what is going on, but don't know if, or in what format, the output should be.

    finished()   X-Ref
    Called when the processing is finished.


    Class: null_progress_trace  - X-Ref

    This subclass of progress_trace does not ouput anything.

    output($message, $depth = 0)   X-Ref
    Does Nothing

    return: void Does Nothing
    param: string $message
    param: int $depth

    Class: text_progress_trace  - X-Ref

    This subclass of progress_trace outputs to plain text.

    output($message, $depth = 0)   X-Ref
    Output the trace message.

    return: void Output is echo'd
    param: string $message
    param: int $depth

    Class: html_progress_trace  - X-Ref

    This subclass of progress_trace outputs as HTML.

    output($message, $depth = 0)   X-Ref
    Output the trace message.

    return: void Output is echo'd
    param: string $message
    param: int $depth

    Class: html_list_progress_trace  - X-Ref

    HTML List Progress Tree

    output($message, $depth = 0)   X-Ref
    Echo out the list

    return: void Output is echoed
    param: string $message The message to display
    param: int $depth

    finished()   X-Ref
    Called when the processing is finished.


    Class: error_log_progress_trace  - X-Ref

    This subclass of progress_trace outputs to error log.

    __construct($prefix = '')   X-Ref
    Constructor.

    param: string $prefix optional log prefix

    output($message, $depth = 0)   X-Ref
    Output the trace message.

    return: void Output is sent to error log.
    param: string $message
    param: int $depth

    Class: progress_trace_buffer  - X-Ref

    Special type of trace that can be used for catching of output of other traces.

    __construct(progress_trace $trace, $passthrough = true)   X-Ref
    Constructor.

    param: progress_trace $trace
    param: bool $passthrough true means output and buffer, false means just buffer and no output

    output($message, $depth = 0)   X-Ref
    Output the trace message.

    return: void output stored in buffer
    param: string $message the message to output.
    param: int $depth indent depth for this message.

    finished()   X-Ref
    Called when the processing is finished.


    reset_buffer()   X-Ref
    Reset internal text buffer.


    get_buffer()   X-Ref
    Return internal text buffer.

    return: string buffered plain text

    Class: combined_progress_trace  - X-Ref

    Special type of trace that can be used for redirecting to multiple other traces.

    __construct(array $traces)   X-Ref
    Constructs a new instance.

    param: array $traces multiple traces

    output($message, $depth = 0)   X-Ref
    Output an progress message in whatever format.

    param: string $message the message to output.
    param: integer $depth indent depth for this message.

    finished()   X-Ref
    Called when the processing is finished.


    print_password_policy()   X-Ref
    Returns a localized sentence in the current language summarizing the current password policy

    return: string

    get_formatted_help_string($identifier, $component, $ajax = false, $a = null)   X-Ref
    Get the value of a help string fully prepared for display in the current language.

    return: Object An object containing:
    param: string $identifier The identifier of the string to search for.
    param: string $component The module the string is associated with.
    param: boolean $ajax Whether this help is called from an AJAX script.
    param: string|object|array $a An object, string or number that can be used

    Functions that are not part of a class:

    s($var)   X-Ref
    Add quotes to HTML characters.

    Returns $var with HTML characters (like "<", ">", etc.) properly quoted.
    Related function {@link p()} simply prints the output of this function.

    return: string
    param: string $var the string potentially containing HTML characters

    p($var)   X-Ref
    Add quotes to HTML characters.

    Prints $var with HTML characters (like "<", ">", etc.) properly quoted.
    This function simply calls & displays {@link s()}.
    return: string
    param: string $var the string potentially containing HTML characters

    addslashes_js($var)   X-Ref
    Does proper javascript quoting.

    Do not use addslashes anymore, because it does not work when magic_quotes_sybase is enabled.

    return: mixed quoted result
    param: mixed $var String, Array, or Object to add slashes to

    strip_querystring($url)   X-Ref
    Remove query string from url.

    Takes in a URL and returns it without the querystring portion.

    return: string The remaining URL.
    param: string $url the url which may have a query string attached.

    me()   X-Ref
    Returns the name of the current script, WITH the querystring portion.

    This function is necessary because PHP_SELF and REQUEST_URI and SCRIPT_NAME
    return different things depending on a lot of things like your OS, Web
    server, and the way PHP is compiled (ie. as a CGI, module, ISAPI, etc.)
    <b>NOTE:</b> This function returns false if the global variables needed are not set.

    return: mixed String or false if the global variables needed are not set.

    qualified_me()   X-Ref
    Guesses the full URL of the current script.

    This function is using $PAGE->url, but may fall back to $FULLME which
    is constructed from  PHP_SELF and REQUEST_URI or SCRIPT_NAME

    return: mixed full page URL string or false if unknown

    is_https()   X-Ref
    Determines whether or not the Moodle site is being served over HTTPS.

    This is done simply by checking the value of $CFG->wwwroot, which seems
    to be the only reliable method.

    return: boolean True if site is served over HTTPS, false otherwise.

    get_local_referer($stripquery = true)   X-Ref
    Returns the cleaned local URL of the HTTP_REFERER less the URL query string parameters if required.

    return: string The resulting referer or empty string.
    param: bool $stripquery if true, also removes the query part of the url.

    Search This Site: