source: moodle/trunk/fuentes/lib/classes/output/external.php @ 1331

Last change on this file since 1331 was 1331, checked in by jrpelegrina, 3 years ago

Updated to moodle 3.0.3

File size: 3.3 KB
Line 
1<?php
2// This file is part of Moodle - http://moodle.org/
3//
4// Moodle is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// Moodle is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16
17/**
18 * Mustache helper to load strings from string_manager.
19 *
20 * @package    core
21 * @category   output
22 * @copyright  2015 Damyon Wiese
23 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24 */
25
26namespace core\output;
27
28use external_api;
29use external_function_parameters;
30use external_value;
31use core_component;
32use moodle_exception;
33use context_system;
34use theme_config;
35
36/**
37 * This class contains a list of webservice functions related to output.
38 *
39 * @copyright  2015 Damyon Wiese
40 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
41 * @since      2.9
42 */
43class external extends external_api {
44    /**
45     * Returns description of load_template() parameters.
46     *
47     * @return external_function_parameters
48     */
49    public static function load_template_parameters() {
50        return new external_function_parameters(
51                array('component' => new external_value(PARAM_COMPONENT, 'component containing the template'),
52                      'template' => new external_value(PARAM_ALPHANUMEXT, 'name of the template'),
53                      'themename' => new external_value(PARAM_ALPHANUMEXT, 'The current theme.'),
54                         )
55            );
56    }
57
58    /**
59     * Return a mustache template, and all the strings it requires.
60     *
61     * @param string $component The component that holds the template.
62     * @param string $templatename The name of the template.
63     * @param string $themename The name of the current theme.
64     * @return string the template
65     */
66    public static function load_template($component, $template, $themename) {
67        global $DB, $CFG, $PAGE;
68
69        $params = self::validate_parameters(self::load_template_parameters(),
70                                            array('component' => $component,
71                                                  'template' => $template,
72                                                  'themename' => $themename));
73
74        $component = $params['component'];
75        $template = $params['template'];
76        $themename = $params['themename'];
77
78        $templatename = $component . '/' . $template;
79
80        // Will throw exceptions if the template does not exist.
81        $filename = mustache_template_finder::get_template_filepath($templatename, $themename);
82        $templatestr = file_get_contents($filename);
83
84        return $templatestr;
85    }
86
87    /**
88     * Returns description of load_template() result value.
89     *
90     * @return external_description
91     */
92    public static function load_template_returns() {
93        return new external_value(PARAM_RAW, 'template');
94    }
95}
96
Note: See TracBrowser for help on using the repository browser.