function validation($data) { global $USER; $errorlog = array(); $form_errorlog = $this->_form->_errors; $user = CoursePrefsUser::findByUnique($USER->username); $courses = $user->getCoursesAsTeacher(); $this->course_create = array(); $this->course_enroll = array(); $enroll_default = CoursePrefsConfig::getNamedValue('course_enroll_days'); $create_default = CoursePrefsConfig::getNamedValue('course_create_days'); // Parse form submission and glean necessary information foreach ($data as $key => $value) { $matches = array(); if (preg_match(CREATE_DAYS_PATTERN, $key, $matches) && $courses[$matches[2]]) { if (!$this->course_create[$matches[1]]) { $this->course_create[$matches[1]] = array(); } $this->course_create[$matches[1]][$matches[2]] = $value; } else { if (preg_match(ENROLL_DAYS_PATTERN, $key, $matches) && $courses[$matches[2]]) { if (!$this->course_enroll[$matches[1]]) { $this->course_enroll[$matches[1]] = array(); } $this->course_enroll[$matches[1]][$matches[2]] = $value; } } } // Iterate over semesters and check course-specific settings are valid foreach ($this->course_create as $semestersid => $courses) { // Check whether the courses' creation value is greater than or equal to its enrollment value foreach ($courses as $coursesid => $value) { /*// Skip course if either of its create or enroll fields weren't submitted properly if ($form_errorlog[$semestersid . CREATE_DAYS_FIELD . $coursesid] || $form_errorlog[$semestersid . ENROLL_DAYS_FIELD . $coursesid]) { continue; }*/ $course_create_days = $this->course_create[$semestersid][$coursesid]; $course_enroll_days = $this->course_enroll[$semestersid][$coursesid]; if ($course_create_days === '0' || $course_enroll_days === '0') { unset($this->course_enroll[$semestersid][$coursesid]); unset($this->course_create[$semestersid][$coursesid]); $errorlog[$semestersid . COURSE_GROUP . $coursesid] = get_string('err_negative_number', 'block_courseprefs'); continue; } if ($course_create_days == '') { $this->course_create[$semestersid][$coursesid] = $create_default; } if ($course_enroll_days == '') { $this->course_enroll[$semestersid][$coursesid] = $enroll_default; } /* if ($course_create_days == '' && $course_enroll_days != '') { $a->name = 'Create'; $errorlog[$semestersid . COURSE_GROUP . $coursesid] = get_string('err_days_invalid', 'block_courseprefs', $a); } else if ($course_enroll_days == '' && $course_create_days!='') { $a->name = 'Enroll'; $errorlog[$semestersid . COURSE_GROUP . $coursesid] = get_string('err_days_invalid', 'block_courseprefs', $a); } */ // Log an error if the course's enrollment value is greater than the creation value if ($course_create_days < $course_enroll_days) { $errorlog[$semestersid . COURSE_GROUP . $coursesid] = get_string('err_create_enroll_compare', 'block_courseprefs'); } } } return $errorlog; }