You are here

public function QuizfileuploadResponse::isValid in Quiz File Upload 6

Same name and namespace in other branches
  1. 7 quizfileupload.classes.inc \QuizfileuploadResponse::isValid()
  2. 7.4 quizfileupload.classes.inc \QuizfileuploadResponse::isValid()

Implementation of isValid

See also

QuizQuestionResponse#isValid()

1 call to QuizfileuploadResponse::isValid()
QuizfileuploadResponse::save in ./quizfileupload.classes.inc
Implementation of save

File

./quizfileupload.classes.inc, line 206
The main classes for the multichoice question type.

Class

QuizfileuploadResponse
Extension of QuizQuestionResponse

Code

public function isValid() {
  $dir = variable_get('file_directory_path', 'sites/default/files');
  $is_writable = file_check_directory($dir, 1);
  if (!$is_writable) {
    return t('File system path is not writable. Contact administrator to check settings at url /admin/settings/file-system');
  }
  if (isset($this->answer['files']['type']['tries']) && empty($this->answer['files']['type']['tries'])) {
    $file = db_fetch_object(db_query('SELECT filename, filepath FROM {files} f
        INNER JOIN {quiz_fileupload_user_answers} qf ON (f.fid = qf.fid)
        WHERE answer_id = %d', $this->answer_id));
    if (is_object($file)) {

      // Don't throw error as the file has been already attached.
      return TRUE;
    }
    else {
      return t('Please upload a valid file.');
    }
  }
  if (isset($this->answer['files']['type']['tries']) && !empty($this->answer['files']['type']['tries'])) {
    $file = file_save_upload('tries', array(), file_directory_path());
    if (!$file) {
      form_set_error('field', 'Error uploading file.');
      return;
    }
    $message = quizfileupload_validate_extensions($file, $this->question->filetypes);
    return empty($message) ? TRUE : $message[0];
  }
  return FALSE;
}