. /** * Mustache helper to load strings from string_manager. * * @package core * @category output * @copyright 2015 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace core\output; use external_api; use external_function_parameters; use external_value; use core_component; use moodle_exception; use context_system; use theme_config; /** * This class contains a list of webservice functions related to output. * * @copyright 2015 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @since 2.9 */ class external extends external_api { /** * Returns description of load_template() parameters. * * @return external_function_parameters */ public static function load_template_parameters() { return new external_function_parameters( array('component' => new external_value(PARAM_COMPONENT, 'component containing the template'), 'template' => new external_value(PARAM_ALPHANUMEXT, 'name of the template'), 'themename' => new external_value(PARAM_ALPHANUMEXT, 'The current theme.'), ) ); } /** * Return a mustache template, and all the strings it requires. * * @param string $component The component that holds the template. * @param string $templatename The name of the template. * @param string $themename The name of the current theme. * @return string the template */ public static function load_template($component, $template, $themename) { global $DB, $CFG, $PAGE; $params = self::validate_parameters(self::load_template_parameters(), array('component' => $component, 'template' => $template, 'themename' => $themename)); $component = $params['component']; $template = $params['template']; $themename = $params['themename']; $templatename = $component . '/' . $template; // Will throw exceptions if the template does not exist. $filename = mustache_template_finder::get_template_filepath($templatename, $themename); $templatestr = file_get_contents($filename); return $templatestr; } /** * Returns description of load_template() result value. * * @return external_description */ public static function load_template_returns() { return new external_value(PARAM_RAW, 'template'); } }