moodle-local_mycerts/save_template_form.php
Shamim Rezaie 3774a6323c Added ability to modify templates and save them with same name.
An option named "replace" has been added to the same
template form so user can choose to overwrite an existing
template (i.e. modify and save an existing template).
2015-08-05 12:23:51 -05:00

79 lines
2.8 KiB
PHP

<?php
// This file is part of the customcert module for 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/>.
defined('MOODLE_INTERNAL') || die('Direct access to this script is forbidden.');
require_once($CFG->libdir . '/formslib.php');
/**
* The form for handling saving customcert templates.
*
* @package mod_customcert
* @copyright 2013 Mark Nelson <markn@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_customcert_save_template_form extends moodleform {
/**
* Form definition.
*/
public function definition() {
$mform =& $this->_form;
$mform->addElement('header', 'savetemplateheader', get_string('savetemplate', 'customcert'));
$group = array();
$group[] = $mform->createElement('text', 'name');
$group[] = $mform->createElement('submit', 'savetemplatesubmit', get_string('save', 'customcert'));
$group[] = $mform->createElement('checkbox', 'replace', null, get_string('replacetemplate', 'customcert'));
$mform->addElement('group', 'savetemplategroup', get_string('templatename', 'customcert'), $group, '', false);
// Set the template name to required and set the type.
$mform->addGroupRule('savetemplategroup', array(
'name' => array(
array(null, 'required', null, 'client')
)
));
$mform->setType('name', PARAM_NOTAGS);
$mform->addElement('hidden', 'cmid');
$mform->setType('cmid', PARAM_INT);
$mform->setDefault('cmid', $this->_customdata['cmid']);
}
/**
* Some basic validation.
*
* @param array $data
* @param array $files
* @return array the errors that were found
*/
public function validation($data, $files) {
global $DB;
$errors = parent::validation($data, $files);
if (empty($data['replace'])) {
// Ensure the name does not already exist.
if ($DB->record_exists('customcert_template', array('name' => $data['name']))) {
$errors['savetemplategroup'] = get_string('templatenameexists', 'customcert');
}
}
return $errors;
}
}