You are here

public function QuizfileuploadResponse::save in Quiz File Upload 7.4

Same name and namespace in other branches
  1. 6 quizfileupload.classes.inc \QuizfileuploadResponse::save()
  2. 7.5 quizfileupload.classes.inc \QuizfileuploadResponse::save()
  3. 7 quizfileupload.classes.inc \QuizfileuploadResponse::save()

Implements save().

See also

QuizQuestionResponse#save()

File

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

Class

QuizfileuploadResponse
Extension of QuizQuestionResponse

Code

public function save() {
  $validator = array(
    'file_validate_extensions' => array(
      $this->question->filetypes,
    ),
  );
  $directory = variable_get('quizfileupload_upload_location', 'public') . '://quizfileupload/' . $this->question->nid . '/';
  file_prepare_directory($directory, FILE_CREATE_DIRECTORY);
  $this->file = file_save_upload('tries', $validator, $directory);
  if (isset($this->file->fid)) {
    $this->answer_id = db_insert('quiz_fileupload_user_answers')
      ->fields(array(
      'result_id' => $this->rid,
      'question_vid' => $this->question->vid,
      'question_nid' => $this->question->nid,
      'fid' => $this->file->fid,
      'score' => $this
        ->getScore(FALSE),
      'is_evaluated' => $this->evaluated,
      'answer_feedback' => $this->answer_feedback,
    ))
      ->execute();
    $this->file->status = FILE_STATUS_PERMANENT;
    file_save($this->file);
  }
}