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 * customlang specific renderers. 19 * 20 * @package tool_customlang 21 * @copyright 2019 Moodle 22 * @author Bas Brands 23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 24 */ 25 26 namespace tool_customlang\output; 27 28 defined('MOODLE_INTERNAL') || die(); 29 30 use renderable; 31 use templatable; 32 use renderer_base; 33 use stdClass; 34 35 /** 36 * Class containing data for customlang translator page 37 * 38 * @copyright 2019 Bas Brands 39 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 40 */ 41 class translator implements renderable, templatable { 42 43 /** 44 * @var tool_customlang_translator $translator object. 45 */ 46 private $translator; 47 48 /** 49 * Construct this renderable. 50 * 51 * @param tool_customlang_translator $translator The translator object. 52 */ 53 public function __construct(\tool_customlang_translator $translator) { 54 $this->translator = $translator; 55 } 56 57 /** 58 * Export the data. 59 * 60 * @param renderer_base $output 61 * @return stdClass 62 */ 63 public function export_for_template(renderer_base $output) { 64 $data = new stdClass(); 65 66 $data->nostrings = $output->notification(get_string('nostringsfound', 'tool_customlang')); 67 $data->formurl = $this->translator->handler; 68 $data->currentpage = $this->translator->currentpage; 69 $data->sesskey = sesskey(); 70 $data->strings = []; 71 72 if (!empty($this->translator->strings)) { 73 $data->hasstrings = true; 74 foreach ($this->translator->strings as $string) { 75 // Find strings that use placeholders. 76 if (preg_match('/\{\$a(->.+)?\}/', $string->master)) { 77 $string->placeholderhelp = $output->help_icon('placeholder', 'tool_customlang', 78 get_string('placeholderwarning', 'tool_customlang')); 79 } 80 if (!is_null($string->local) and $string->outdated) { 81 $string->outdatedhelp = $output->help_icon('markinguptodate', 'tool_customlang'); 82 $string->checkupdated = true; 83 } 84 if ($string->original !== $string->master) { 85 $string->showoriginalvsmaster = true; 86 } 87 $string->local = s($string->local); 88 $data->strings[] = $string; 89 } 90 } 91 return $data; 92 } 93 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body