6277853eb3
Apart from updating the default templates, to make them look better, they have been also moved to mustache files, in order to make it easier to edit them.
103 lines
3.3 KiB
PHP
103 lines
3.3 KiB
PHP
<?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 mod_data\output;
|
|
|
|
use core_tag_tag;
|
|
use mod_data\manager;
|
|
use templatable;
|
|
use renderable;
|
|
|
|
/**
|
|
* Renderable class for the default templates in the database activity.
|
|
*
|
|
* @package mod_data
|
|
* @copyright 2022 Sara Arjona <sara@moodle.com>
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
class defaulttemplate implements templatable, renderable {
|
|
|
|
/** @var array $fields The array containing the existing fields. */
|
|
private $fields;
|
|
|
|
/** @var string $templatename The template name (addtemplate, listtemplate...). */
|
|
private $templatename;
|
|
|
|
/** @var bool $isform Whether a form should be displayed instead of data. */
|
|
private $isform;
|
|
|
|
/**
|
|
* The class constructor.
|
|
*
|
|
* @param array $fields The array containing the existing fields.
|
|
* @param string $templatename The template name (addtemplate, listtemplate...).
|
|
* @param bool $isform Whether a form should be displayed instead of data.
|
|
*/
|
|
public function __construct(array $fields, string $templatename, bool $isform) {
|
|
$this->fields = $fields;
|
|
$this->templatename = $templatename;
|
|
$this->isform = $isform;
|
|
}
|
|
|
|
/**
|
|
* Obtains the mustache template name for this database template.
|
|
*
|
|
* @return string the file mustache path for this template.
|
|
*/
|
|
public function get_templatename(): string {
|
|
return 'mod_data/defaulttemplate_' . $this->templatename;
|
|
}
|
|
|
|
/**
|
|
* Export the data for the mustache template.
|
|
*
|
|
* @param \renderer_base $output The renderer to be used to render the action bar elements.
|
|
* @return array The data to display.
|
|
*/
|
|
public function export_for_template(\renderer_base $output): array {
|
|
$result = [];
|
|
$exportedfields = [];
|
|
foreach ($this->fields as $field) {
|
|
$fieldname = $field->field->name;
|
|
if ($this->isform) {
|
|
$fieldcontent = $field->display_add_field();
|
|
} else {
|
|
$fieldcontent = '[[' . $fieldname . ']]';
|
|
}
|
|
$exportedfields[] = [
|
|
'fieldname' => $fieldname,
|
|
'fieldcontent' => $fieldcontent,
|
|
];
|
|
}
|
|
|
|
if (!empty($exportedfields)) {
|
|
$result['fields'] = $exportedfields;
|
|
}
|
|
|
|
if (core_tag_tag::is_enabled(manager::PLUGINNAME, 'data_records')) {
|
|
// Add tags information only if they are enabled.
|
|
if ($this->isform) {
|
|
$tags = data_generate_tag_form();
|
|
} else {
|
|
$tags = '##tags##';
|
|
}
|
|
$result['tags'] = $tags;
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
}
|