/// this allows a student to request a course be created for them.
require_once('../config.php');
-
+ include_once $CFG->libdir.'/formslib.php';
+
require_login();
+
+ require_once('request_form.php');
if (isguest()) {
error("No guests here!");
if (empty($CFG->enablecourserequests)) {
error(get_string('courserequestdisabled'));
}
+
$strtitle = get_string('courserequest');
-
print_header($strtitle,$strtitle,$strtitle);
- if (($form = data_submitted()) and confirm_sesskey()) {
- validate_form($form,$err) ;
-
- if (empty($err)) {
- $form->requester = $USER->id;
-
- if (insert_record('course_request',$form)) {
- notice(get_string('courserequestsuccess'));
- }
- else {
- notice(get_string('courserequestfailed'));
- }
- print_footer();
- exit;
- } else {
- $form = stripslashes_safe($form);
- }
-
- // !! no db access using data from $form beyond this point !!
- }
-
-// print_simple_box(get_string('courserequestintro'),'center');
print_simple_box_start("center");
print_string('courserequestintro');
- include("request.html");
print_simple_box_end();
-
- print_footer($course);
-
- if ($usehtmleditor) {
- use_html_editor("summary");
- use_html_editor("reason");
- }
-
- exit;
-
-
-function validate_form(&$form,&$err) {
-
- if (empty($form->shortname)) {
- $err['shortname'] = get_string('missingshortname');
- }
- if (empty($form->fullname)) {
- $err['fullname'] = get_string('missingfullname');
- }
-
- if (empty($form->summary)) {
- $err["summary"] = get_string("missingsummary");
- }
-
- if (empty($form->reason)) {
- $err["reason"] = get_string("missingreqreason");
- }
+ $requestform = new course_request_form('request.php');
- $foundcourses = null;
- $foundreqcourses = null;
-
- if (!empty($form->shortname)) {
- $foundcourses = get_records("course", "shortname", $form->shortname);
- $foundreqcourses = get_records("course_request", "shortname", $form->shortname);
- }
- if (!empty($foundreqcourses)) {
- if (!empty($foundcourses)) {
- $foundcourses = array_merge($foundcourses,$foundreqcourses);
- } else {
- $foundcourses = $foundreqcourses;
- }
- }
+ if (($data = $requestform->data_submitted())) {
+
+ $data->requester = $USER->id;
- if (!empty($foundcourses)) {
- if (!empty($course->id)) {
- unset($foundcourses[$course->id]);
+ if (insert_record('course_request',$data)) {
+ notice(get_string('courserequestsuccess'));
}
- if (!empty($foundcourses)) {
- foreach ($foundcourses as $foundcourse) {
- if ($foundcourse->requester) {
- $pending = 1;
- $foundcoursenames[] = $foundcourse->fullname.' [*]';
- }
- else {
- $foundcoursenames[] = $foundcourse->fullname;
- }
- }
- $foundcoursenamestring = addslashes(implode(',', $foundcoursenames));
-
- $err["shortname"] = get_string("shortnametaken", "", $foundcoursenamestring);
- if (!empty($pending)) {
- $err["shortname"] .= '<br />'.get_string('starpending');
- }
+ else {
+ notice(get_string('courserequestfailed'));
}
- }
-}
+ print_footer();
+ exit;
+
+
+ }
+
+
+ $requestform->display();
+
+ print_footer();
+
+ exit;
+
?>
\ No newline at end of file
--- /dev/null
+<?php
+class course_request_form extends moodleform {
+ function definition() {
+ $mform =& $this->_form;
+
+ $mform->addElement('text','fullname',get_string("fullname"),'maxlength="254" size="50"');
+ $mform->addRule('fullname',get_string('missingshortname'),'required', null, 'client');
+ $mform->setType('fullname', PARAM_TEXT);
+
+ $mform->addElement('text','shortname',get_string("shortname"),'maxlength="15" size="10"');
+ $mform->addRule('shortname',get_string('missingfullname'),'required', null, 'client');
+ $mform->setType('shortname', PARAM_TEXT);
+
+ $mform->addElement('textarea','summary',get_string("summary"),array('rows'=>'15','cols'=>'50'));
+ $mform->addRule('summary',get_string('missingsummary'),'required', null, 'client');
+ $mform->setType('summary', PARAM_TEXT);
+
+ $mform->addElement('textarea','reason',get_string("courserequestreason"),array('rows'=>'15','cols'=>'50'));
+ $mform->addRule('reason',get_string('missingreqreason'),'required', null, 'client');
+ $mform->setType('reason', PARAM_TEXT);
+
+ $mform->addElement('text','password',get_string("enrolmentkey"),'size="25"');
+ $mform->setType('password', PARAM_RAW);
+
+
+ $mform->addElement('submit','',get_string("savechanges"));
+ }
+
+ function validation($data) {
+ $errors=array();
+ $foundcourses = null;
+ $foundreqcourses = null;
+
+ if (!empty($data['shortname'])) {
+ $foundcourses = get_records("course", "shortname", $data['shortname']);
+ $foundreqcourses = get_records("course_request", "shortname", $data['shortname']);
+ }
+ if (!empty($foundreqcourses)) {
+ if (!empty($foundcourses)) {
+ $foundcourses = array_merge($foundcourses,$foundreqcourses);
+ } else {
+ $foundcourses = $foundreqcourses;
+ }
+ }
+
+ if (!empty($foundcourses)) {
+
+ if (!empty($foundcourses)) {
+ foreach ($foundcourses as $foundcourse) {
+ if (isset($foundcourse->requester) && $foundcourse->requester) {
+ $pending = 1;
+ $foundcoursenames[] = $foundcourse->fullname.' [*]';
+ }
+ else {
+ $foundcoursenames[] = $foundcourse->fullname;
+ }
+ }
+ $foundcoursenamestring = addslashes(implode(',', $foundcoursenames));
+
+ $errors["shortname"] = get_string("shortnametaken", "", $foundcoursenamestring);
+ if (!empty($pending)) {
+ $errors["shortname"] .= get_string('starpending');
+ }
+ }
+ }
+ if (0==count($errors)){
+ return true;
+ }else {
+ return $errors;
+ }
+
+ }
+
+
+}
+?>
\ No newline at end of file