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/>.
/**
* this file contains the user selection form to exclude users
*
* File user.php
* Encoding UTF-8
* @copyright Sebsoft.nl
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace tool_usersuspension\forms\exclude;
defined('MOODLE_INTERNAL') || die;
require_once($CFG->libdir . '/formslib.php');
/**
* tool_usersuspension\forms\user
*
* @package tool_usersuspension
*
* @copyright Sebsoft.nl
* @author R.J. van Dongen <rogier@sebsoft.nl>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class user extends \moodleform {
/**
* User Selector for currently known users
* @var \tool_usersuspension\exclude\user\selector\current
*/
protected $currentuserselector;
/**
* User Selector for currently known users
* @var \tool_usersuspension\exclude\user\selector\potential
*/
protected $potentialuserselector;
/**
* form definition
*/
public function definition() {
global $OUTPUT;
// Create the user selector objects.
$options = array('accesscontext' => \context_system::instance());
$this->currentuserselector = new \tool_usersuspension\exclude\user\selector\current('removeselect', $options);
$this->potentialuserselector = new \tool_usersuspension\exclude\user\selector\potential('addselect', $options);
$mform = $this->_form;
// This element is only here so the form will actually get submitted.
$mform->addElement('hidden', 'processor', 1);
$mform->setType('processor', PARAM_INT);
// Add user selection lists and submit controls.
$html = '
<table summary="" class="suspendexcludetable generaltable generalbox boxaligncenter" cellspacing="0">
<tr><td id="existingcell"><p><label for="removeselect">' .
get_string('label:users:excluded', 'tool_usersuspension') . '</label></p>';
$html .= $this->currentuserselector->display(true);
$html .= '</td><td id="buttonscell"><div id="controls">';
$html .= '<input name="add" id="add" type="submit" value="' . $OUTPUT->larrow() .
' ' . get_string('add') . '" title="' . get_string('add') . '" /><br />
<input name="remove" id="remove" type="submit" value="' . get_string('remove') .
' ' . $OUTPUT->rarrow() . '" title="' . get_string('remove') . '" />';
$html .= '</div></td><td id="potentialcell"><p><label for="addselect">' .
get_string('label:users:potential', 'tool_usersuspension') . '</label></p>';
$html .= $this->potentialuserselector->display(true);
$html .= '</td></tr></table>';
$mform->addElement('html', $html);
}
/**
* Process the posted form
*
* @throws \moodle_exception
*/
public function process() {
global $DB;
$data = $this->get_data();
if ($data === null) {
return false;
}
$add = (bool)optional_param('add', false, PARAM_BOOL);
$remove = (bool)optional_param('remove', false, PARAM_BOOL);
if ($remove) {
// Remove user(s).
$userstoremove = $this->currentuserselector->get_selected_users();
if (!empty($userstoremove)) {
foreach ($userstoremove as $removeuser) {
$obj = array('type' => 'user', 'refid' => $removeuser->id);
if ($DB->record_exists('tool_usersuspension_excl', $obj)) {
$DB->delete_records('tool_usersuspension_excl', $obj);
$removeuser->fullname = fullname($removeuser);
\tool_usersuspension\util::print_notification(
get_string('msg:exclusion:record:user:deleted', 'tool_usersuspension', $removeuser), 'success');
}
}
}
} else if ($add) {
// Add user(s).
$userstoexclude = $this->potentialuserselector->get_selected_users();
if (!empty($userstoexclude)) {
foreach ($userstoexclude as $adduser) {
$obj = array('type' => 'user', 'refid' => $adduser->id);
if (!$DB->record_exists('tool_usersuspension_excl', $obj)) {
$obj['timecreated'] = time();
$DB->insert_record('tool_usersuspension_excl', (object)$obj);
$adduser->fullname = fullname($adduser);
\tool_usersuspension\util::print_notification(get_string('msg:exclusion:record:user:inserted',
'tool_usersuspension', $adduser), 'success');
}
}
}
}
$this->potentialuserselector->invalidate_selected_users();
$this->currentuserselector->invalidate_selected_users();
}
}