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 and perform HTML escaping on them. 19 * 20 * @package core 21 * @category output 22 * @copyright 2021 Shamim Rezaie <shamim@moodle.com> 23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 24 */ 25 26 namespace core\output; 27 28 use Mustache_LambdaHelper; 29 30 /** 31 * This class will load language strings in a template. 32 * 33 * @copyright 2021 Shamim Rezaie <shamim@moodle.com> 34 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 35 * @since 4.0 36 */ 37 class mustache_clean_string_helper { 38 39 /** @var mustache_string_helper A string helper instance that is being used internally for fetching strings */ 40 private $stringhelper; 41 42 /** 43 * Create new instance of mustache clean string helper. 44 */ 45 public function __construct() { 46 $this->stringhelper = new \core\output\mustache_string_helper(); 47 } 48 49 /** 50 * Read a lang string from a template and get it from get_string. 51 * 52 * Some examples for calling this from a template are: 53 * 54 * {{#cleanstr}}activity{{/cleanstr}} 55 * {{#cleanstr}}actionchoice, core, {{#str}}delete{{/str}}{{/cleanstr}} (Together with the str helper) 56 * {{#cleanstr}}addinganewto, core, {"what":"This", "to":"That"}{{/cleanstr}} (Complex $a) 57 * 58 * The args are comma separated and only the first is required. 59 * The last is a $a argument for get string. For complex data here, use JSON. 60 * 61 * @param string $text The text to parse for arguments. 62 * @param Mustache_LambdaHelper $helper Used to render nested mustache variables. 63 * @return string 64 */ 65 public function cleanstr($text, Mustache_LambdaHelper $helper) { 66 return s($this->stringhelper->str($text, $helper)); 67 } 68 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body