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/>.
/**
* Contains related class for displaying information of a tag item.
*
* @package core_tag
* @copyright 2019 Juan Leyva <juan@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace core_tag\external;
defined('MOODLE_INTERNAL') || die();
use core\external\exporter;
use renderer_base;
/**
* Contains related class for displaying information of a tag item.
*
* @package core_tag
* @copyright 2019 Juan Leyva <juan@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tag_item_exporter extends exporter {
/**
* Return the list of properties.
*
* @return array
*/
protected static function define_properties() {
return [
'id' => [
'type' => PARAM_INT,
'description' => 'Tag id.',
],
'name' => [
'type' => PARAM_TAG,
'description' => 'Tag name.',
],
'rawname' => [
'type' => PARAM_RAW,
'description' => 'The raw, unnormalised name for the tag as entered by users.',
],
'isstandard' => [
'type' => PARAM_BOOL,
'description' => 'Whether this tag is standard.',
'default' => false,
],
'tagcollid' => [
'type' => PARAM_INT,
'description' => 'Tag collection id.',
],
'taginstanceid' => [
'type' => PARAM_INT,
'description' => 'Tag instance id.',
],
'taginstancecontextid' => [
'type' => PARAM_INT,
'description' => 'Context the tag instance belongs to.',
],
'itemid' => [
'type' => PARAM_INT,
'description' => 'Id of the record tagged.',
],
'ordering' => [
'type' => PARAM_INT,
'description' => 'Tag ordering.',
],
'flag' => [
'type' => PARAM_INT,
'description' => 'Whether the tag is flagged as inappropriate.',
'default' => 0,
'null' => NULL_ALLOWED,
],
];
}
/**
* Return the list of additional properties used only for display.
*
* @return array
*/
protected static function define_other_properties() {
return [
'viewurl' => [
'type' => PARAM_URL,
'description' => 'The url to view the tag.',
'optional' => true,
'default' => null,
'null' => NULL_ALLOWED,
],
];
}
/**
* Get the additional values to inject while exporting.
*
* @param renderer_base $output The renderer.
* @return array Keys are the property names, values are their values.
*/
protected function get_other_values(renderer_base $output) {
return [
'viewurl' => \core_tag_tag::make_url($this->data->tagcollid, $this->data->rawname)->out(false),
];
}
}