AutorÃa | Ultima modificación | Ver Log |
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core\output;
use moodle_url;
use stdClass;
/**
* Data structure representing a help icon.
*
* @copyright 2010 Petr Skoda (info@skodak.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.0
* @package core
* @category output
*/
class help_icon implements renderable, templatable {
/**
* @var string lang pack identifier (without the "_help" suffix),
* both get_string($identifier, $component) and get_string($identifier.'_help', $component)
* must exist.
*/
public $identifier;
/**
* @var string Component name, the same as in get_string()
*/
public $component;
/**
* @var string Extra descriptive text next to the icon
*/
public $linktext = null;
/**
* @var mixed An object, string or number that can be used within translation strings
*/
public $a = null;
/**
* Constructor
*
* @param string $identifier string for help page title,
* string with _help suffix is used for the actual help text.
* string with _link suffix is used to create a link to further info (if it exists)
* @param string $component
* @param string|object|array|int $a An object, string or number that can be used
* within translation strings
*/
public function __construct($identifier, $component, $a = null) {
$this->identifier = $identifier;
$this->component = $component;
$this->a = $a;
}
/**
* Verifies that both help strings exists, shows debug warnings if not
*/
public function diag_strings() {
$sm = get_string_manager();
if (!$sm->string_exists($this->identifier, $this->component)) {
debugging("Help title string does not exist: [$this->identifier, $this->component]");
}
if (!$sm->string_exists($this->identifier . '_help', $this->component)) {
debugging("Help contents string does not exist: [{$this->identifier}_help, $this->component]");
}
}
/**
* Export this data so it can be used as the context for a mustache template.
*
* @param renderer_base $output Used to do a final render of any components that need to be rendered for export.
* @return stdClass
*/
public function export_for_template(renderer_base $output) {
global $CFG;
$title = get_string($this->identifier, $this->component, $this->a);
if (empty($this->linktext)) {
$alt = get_string('helpprefix2', '', trim($title, ". \t"));
} else {
$alt = get_string('helpwiththis');
}
$data = get_formatted_help_string($this->identifier, $this->component, false, $this->a);
$data->alt = $alt;
$data->icon = (new pix_icon('help', $alt, 'core'))->export_for_template($output);
$data->linktext = $this->linktext;
$data->title = get_string('helpprefix2', '', trim($title, ". \t"));
$options = [
'component' => $this->component,
'identifier' => $this->identifier,
'lang' => current_language(),
];
// Debugging feature lets you display string identifier and component.
if (isset($CFG->debugstringids) && $CFG->debugstringids && optional_param('strings', 0, PARAM_INT)) {
$options['strings'] = 1;
}
$data->url = (new moodle_url('/help.php', $options))->out(false);
$data->ltr = !right_to_left();
return $data;
}
}
// Alias this class to the old name.
// This file will be autoloaded by the legacyclasses autoload system.
// In future all uses of this class will be corrected and the legacy references will be removed.
class_alias(help_icon::class, \help_icon::class);