/** * Validation routine for account form * @param array $formdata Submitted data from form * @param object $files File uploads from form * @return array(string => string) Array of errors, if any found * @version 2012081401 * @since 2011062901 */ public function validation($formData, $files = null) { $err = array(); $accountDAO = new TxttoolsAccountDAO(); $filterDAO = new MoodletxtInboundFilterDAO(); $formData = $this->cleanupFormData($formData); // Check for valid account ID if ($formData['filterAccountList'] <= 0 || !$accountDAO->accountIdExists($formData['filterAccountList'])) { $err['filterAccountList'] = get_string('errorfilternoaccount', 'block_moodletxt'); } // Clean up any potential data cockups on the user list if (!isset($formData['usersOnFilter']) || $formData['usersOnFilter'] == '') { $formData['usersOnFilter'] = array(); } else { if (!is_array($formData['usersOnFilter'])) { $formData['usersOnFilter'] = array($formData['usersOnFilter']); } } // Check that, if a new phone number filter has been entered, it is valid if ($formData['newPhoneNumberFilter'] != '' && !MoodletxtPhoneNumber::validatePhoneNumber($formData['newPhoneNumberFilter'])) { $err['newPhoneNumberFilter'] = get_string('errorfilterbadphoneno', 'block_moodletxt'); } if ($formData['newKeywordFilter'] != '' || $formData['newPhoneNumberFilter'] != '') { // When creating a new filter, the user must have selected recipient inboxes if (count($formData['usersOnFilter']) == 0) { $err['usersOnFilter'] = get_string('errorfilternousers', 'block_moodletxt'); } $type = $formData['newKeywordFilter'] != '' ? MoodletxtInboundFilter::$FILTER_TYPE_KEYWORD : MoodletxtInboundFilter::$FILTER_TYPE_PHONE_NUMBER; $value = $formData['newKeywordFilter'] != '' ? $formData['newKeywordFilter'] : $formData['newPhoneNumberFilter']; if ($filterDAO->filterExists($formData['filterAccountList'], $type, $value)) { if ($type == MoodletxtInboundFilter::$FILTER_TYPE_KEYWORD) { $err['newKeywordFilter'] = get_string('errorfilterexists', 'block_moodletxt'); } else { $err['newPhoneNumberFilter'] = get_string('errorfilterexists', 'block_moodletxt'); } } } else { if ($formData['existingKeywordFilterList'] <= 0 && $formData['existingPhoneNumberFilterList'] <= 0) { $err['existingKeywordFilterList'] = get_string('errorfilternotselected', 'block_moodletxt'); } } return $err; }