Merge branch 'MDL-78175-master' of https://github.com/ferranrecio/moodle

This commit is contained in:
Jun Pataleta 2023-06-13 13:43:48 +08:00
commit ab384ef813
13 changed files with 174 additions and 44 deletions

View file

@ -0,0 +1,53 @@
<?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_enrol\form;
/**
* Form to customise the course role names.
*
* @package core_enrol
* @copyright 2023 Ferran Recio <ferran@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class renameroles extends \moodleform {
/**
* Form definition.
*/
public function definition() {
$mform = $this->_form;
$courseid = $this->_customdata['id'];
$roles = $this->_customdata['roles'] ?? [];
$formdata = new \stdClass();
$mform->addElement('hidden', 'id', $courseid);
$mform->setType('id', PARAM_INT);
foreach ($roles as $role) {
$settingname = 'role_' . $role->id;
$mform->addElement('text', $settingname, get_string('yourwordforx', '', $role->localname));
$mform->setType($settingname, PARAM_TEXT);
$formdata->{$settingname} = $role->coursealias;
}
$mform->addElement('submit', 'submit', get_string('save'));
$this->set_data($formdata);
}
}

67
enrol/renameroles.php Normal file
View file

@ -0,0 +1,67 @@
<?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/>.
/**
* Customise the course role names.
*
* @package core_enrol
* @copyright 2023 Ferran Recio <ferran@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require('../config.php');
require_once("$CFG->dirroot/course/lib.php");
$id = required_param('id', PARAM_INT);
$action = optional_param('action', '', PARAM_ALPHANUMEXT);
$filter = optional_param('ifilter', 0, PARAM_INT);
$course = $DB->get_record('course', ['id' => $id], '*', MUST_EXIST);
$context = core\context\course::instance($course->id, MUST_EXIST);
require_login($course);
require_capability('moodle/course:renameroles', $context);
if ($course->id == SITEID) {
redirect("$CFG->wwwroot/");
}
$PAGE->set_pagelayout('admin');
$PAGE->set_url('/enrol/renameroles.php', ['id' => $course->id]);
$PAGE->set_pagelayout('standard');
$PAGE->set_title(get_string('rolerenaming'));
$PAGE->set_heading($course->fullname);
echo $OUTPUT->header();
echo $OUTPUT->render_participants_tertiary_nav($course);
echo $OUTPUT->heading(get_string('rolerenaming'));
echo $OUTPUT->paragraph(get_string('rolerenaming_help'));
$customdata = [
'id' => $course->id,
'roles' => role_get_names($context, ROLENAME_ORIGINAL),
];
$mform = new core_enrol\form\renameroles(null, $customdata);
if ($data = $mform->get_data()) {
save_local_role_names($course->id, (array)$data);
core\notification::add(get_string('rolerenaming_success'), core\notification::SUCCESS);
}
$mform->display();
echo $OUTPUT->footer();