Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.0.x will end 8 May 2023 (12 months).
  • Bug fixes for security issues in 4.0.x will end 13 November 2023 (18 months).
  • PHP version: minimum PHP 7.3.0 Note: the minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is also supported.

Differences Between: [Versions 400 and 402] [Versions 400 and 403]

Load template source strings.

Copyright: 2018 Ryan Wyllie <ryan@moodle.com>
License: http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
File Size: 384 lines (15 kb)
Included or required:0 times
Referenced: 0 times
Includes or requires: 0 files

Defines 1 class

mustache_template_source_loader:: (6 methods):
  __construct()
  strip_template_comments()
  load()
  load_with_dependencies()
  scan_template_source_for_dependencies()
  get_string_identifiers()


Class: mustache_template_source_loader  - X-Ref

Load template source strings.

__construct(callable $gettemplatesource = null)   X-Ref
Constructor that takes a callback to allow the calling code to specify how to retrieve
the source for a template name.

If no callback is provided then default to the load from disk implementation.

param: callable|null $gettemplatesource Callback to load template source by template name

strip_template_comments($templatestr)   X-Ref
Remove comments from mustache template.

return: string
param: string $templatestr

load(string $component,string $name,string $themename,bool $includecomments = false)   X-Ref
Load the template source from the component and template name.

return: string The template source
param: string $component The moodle component (e.g. core_message)
param: string $name The template name (e.g. message_drawer)
param: string $themename The theme to load the template for (e.g. boost)
param: bool $includecomments If the comments should be stripped from the source before returning

load_with_dependencies(string $templatecomponent,string $templatename,string $themename,bool $includecomments = false,array $seentemplates = [],array $seenstrings = [],string $lang = null)   X-Ref
Load a template and some of the dependencies that will be needed in order to render
the template.

The current implementation will return all of the templates and all of the strings in
each of those templates (excluding string substitutions).

The return format is an array indexed with the dependency type (e.g. templates / strings) then
the component (e.g. core_message), and then the id (e.g. message_drawer).

For example:
* We have 3 templates in core named foo, bar, and baz.
* foo includes bar and bar includes baz.
* foo uses the string 'home' from core
* baz uses the string 'help' from core

If we load the template foo this function would return:
[
'templates' => [
'core' => [
'foo' => '... template source ...',
'bar' => '... template source ...',
'baz' => '... template source ...',
]
],
'strings' => [
'core' => [
'home' => 'Home',
'help' => 'Help'
]
]
]

return: array
param: string $templatecomponent The moodle component (e.g. core_message)
param: string $templatename The template name (e.g. message_drawer)
param: string $themename The theme to load the template for (e.g. boost)
param: bool $includecomments If the comments should be stripped from the source before returning
param: array $seentemplates List of templates already processed / to be skipped.
param: array $seenstrings List of strings already processed / to be skipped.
param: string|null $lang moodle translation language, null means use current.

scan_template_source_for_dependencies(string $source)   X-Ref
No description

get_string_identifiers(array $tokens, int $start)   X-Ref
Gets the identifier and component of the string.

The string could be defined on one, or multiple lines.

return: array A list of the string identifier and component.
param: array $tokens The templates token.
param: int $start The index of the start of the string token.