4399e4759a
This feature adds an admin tool for creating custom licenses. Now custom licenses can be added and amended in Moodle, and the site default can be set to a custom license. Core licenses remain hard-coded and are uneditable, so they will always require update within Moodle core updates, and maintain their internationalisation through core language strings. This also includes fundamental changes to the license API including the addition of license caching and deprecation of no longer required admin settings for license management.
97 lines
2.9 KiB
PHP
97 lines
2.9 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/>.
|
|
|
|
/**
|
|
* Renderer for 'tool_licensemanager' component.
|
|
*
|
|
* @package tool_licensemanager
|
|
* @copyright Tom Dickman <tomdickman@catalyst-au.net>
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
|
|
namespace tool_licensemanager\output;
|
|
|
|
defined('MOODLE_INTERNAL') || die();
|
|
|
|
use license_manager;
|
|
use plugin_renderer_base;
|
|
use tool_licensemanager\helper;
|
|
|
|
/**
|
|
* Renderer class for 'tool_licensemanager' component.
|
|
*
|
|
* @package tool_licensemanager
|
|
* @copyright 2019 Tom Dickman <tomdickman@catalyst-au.net>
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
class renderer extends plugin_renderer_base {
|
|
|
|
/**
|
|
* Render the headers for create license form.
|
|
*
|
|
* @return string html fragment for display.
|
|
*/
|
|
public function render_create_licence_headers() : string {
|
|
|
|
$this->page->navbar->add(get_string('createlicense', 'tool_licensemanager'),
|
|
helper::get_create_license_url());
|
|
|
|
$return = $this->header();
|
|
$return .= $this->heading(get_string('createlicense', 'tool_licensemanager'));
|
|
|
|
return $return;
|
|
}
|
|
|
|
/**
|
|
* Render the headers for edit license form.
|
|
*
|
|
* @param string $licenseshortname the shortname of license to edit.
|
|
*
|
|
* @return string html fragment for display.
|
|
*/
|
|
public function render_edit_licence_headers(string $licenseshortname) : string {
|
|
|
|
$this->page->navbar->add(get_string('editlicense', 'tool_licensemanager'),
|
|
helper::get_update_license_url($licenseshortname));
|
|
|
|
$return = $this->header();
|
|
$return .= $this->heading(get_string('editlicense', 'tool_licensemanager'));
|
|
|
|
return $return;
|
|
}
|
|
|
|
/**
|
|
* Render the license manager table.
|
|
*
|
|
* @param \renderable $table the renderable.
|
|
*
|
|
* @return string HTML.
|
|
*/
|
|
public function render_table(\renderable $table) {
|
|
$licenses = license_manager::get_licenses();
|
|
|
|
// Add the create license button.
|
|
$html = $table->create_license_link();
|
|
|
|
// Add the table containing licenses for management.
|
|
$html .= $this->box_start('generalbox editorsui');
|
|
$html .= $table->create_license_manager_table($licenses, $this);
|
|
$html .= $this->box_end();
|
|
|
|
return $html;
|
|
}
|
|
}
|