class QuizfileuploadResponse in Quiz File Upload 7.5
Same name and namespace in other branches
- 6 quizfileupload.classes.inc \QuizfileuploadResponse
- 7 quizfileupload.classes.inc \QuizfileuploadResponse
- 7.4 quizfileupload.classes.inc \QuizfileuploadResponse
Extension of QuizQuestionResponse.
Hierarchy
- class \QuizfileuploadResponse extends \QuizQuestionResponse
Expanded class hierarchy of QuizfileuploadResponse
1 string reference to 'QuizfileuploadResponse'
- quizfileupload_quiz_question_info in ./
quizfileupload.module - Implements hook_quiz_question_info().
File
- ./
quizfileupload.classes.inc, line 223 - File upload question class.
View source
class QuizfileuploadResponse extends QuizQuestionResponse {
// ID of the answer.
protected $answer_id = 0;
protected $fid = NULL;
private $answer_feedback;
private $answer_feedback_format;
/**
* Constructor.
*/
public function __construct($result_id, stdClass $question_node, $answer = NULL) {
parent::__construct($result_id, $question_node, $answer);
if (!isset($answer)) {
$r = db_select('quiz_fileupload_user_answers', 'qfua')
->fields('qfua', array(
'fid',
'score',
'is_evaluated',
'answer_id',
'answer_feedback',
'answer_feedback_format',
))
->condition('result_answer_id', $this->result_answer_id, '=')
->execute()
->fetchObject();
if (!empty($r)) {
$this->answer = $r->fid;
$this->score = $r->score;
$this->evaluated = $r->is_evaluated;
$this->answer_id = $r->answer_id;
$this->answer_feedback = $r->answer_feedback;
$this->answer_feedback_format = $r->answer_feedback_format;
}
}
else {
if (is_array($answer)) {
$this->answer = $answer['fid'];
}
else {
$this->answer = $answer;
}
}
}
/**
* Implements save().
*
* @see QuizQuestionResponse#save()
*/
public function save() {
// Check if we need to manually evaluate this.
$this->is_evaluated = isset($this->question->correct_answer_evaluation) && $this->question->correct_answer_evaluation == 1 ? 0 : 1;
db_merge('quiz_fileupload_user_answers')
->key(array(
'result_answer_id' => $this->result_answer_id,
))
->fields(array(
'fid' => $this->answer,
'result_answer_id' => $this->result_answer_id,
'score' => $this
->getScore(FALSE),
'is_evaluated' => $this->is_evaluated,
))
->execute();
}
/**
* Implements delete().
*
* @see QuizQuestionResponse#delete()
*/
public function delete() {
db_delete('quiz_fileupload_user_answers')
->condition('result_answer_id', $this->result_answer_id)
->execute();
}
/**
* Implements score().
*
* @see QuizQuestionResponse#score()
*/
public function score() {
$score = 0;
if (isset($this->result_answer_id)) {
// Manual scoring means we go with what is in the DB.
if (isset($this->question->correct_answer_evaluation) && $this->question->correct_answer_evaluation == 1) {
$score = db_select('quiz_fileupload_user_answers', 'qfua')
->fields('qfua', array(
'score',
))
->condition('result_answer_id', $this->result_answer_id, '=')
->execute()
->fetchField();
if (!$score) {
$score = 0;
}
}
else {
$fileuploadAnswer = new QuizfileuploadQuestion($this->question);
$score = $fileuploadAnswer
->getMaximumScore();
}
}
return $score;
}
/**
* Implements getResponse().
*
* @see QuizQuestionResponse#getResponse()
*/
public function getResponse() {
return $this->answer;
}
/**
* Implements getFeedbackValues().
*/
public function getFeedbackValues() {
$data = array();
// Hide the columns 'choice' and 'solution' as neither are really relevant
// for a fileupload question.
$data[] = array(
'choice' => NULL,
'attempt' => quiz_file_markup($this->answer),
'correct' => $this->question->answers[0]['is_correct'] ? quiz_icon('correct') : quiz_icon(''),
'score' => !$this->evaluated ? t('This answer has not yet been scored.') : $this
->getScore(),
'answer_feedback' => check_markup($this->answer_feedback, $this->answer_feedback_format),
'solution' => NULL,
);
return $data;
}
/**
* Implements getReportFormAnswerFeedback().
*/
public function getReportFormAnswerFeedback() {
return array(
'#title' => t('Enter feedback'),
'#type' => 'text_format',
'#default_value' => $this->answer_feedback,
'#format' => isset($this->answer_feedback_format) ? $this->answer_feedback_format : filter_default_format(),
'#attributes' => array(
'class' => array(
'quiz-report-score',
),
),
);
}
/**
* Implements getReportFormSubmit().
*
* @see QuizQuestionResponse#getReportFormSubmit()
*/
public function getReportFormSubmit() {
return 'quizfileupload_report_submit';
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
QuizfileuploadResponse:: |
private | property | ||
QuizfileuploadResponse:: |
private | property | ||
QuizfileuploadResponse:: |
protected | property | ||
QuizfileuploadResponse:: |
protected | property | ||
QuizfileuploadResponse:: |
public | function | Implements delete(). | |
QuizfileuploadResponse:: |
public | function | Implements getFeedbackValues(). | |
QuizfileuploadResponse:: |
public | function | Implements getReportFormAnswerFeedback(). | |
QuizfileuploadResponse:: |
public | function | Implements getReportFormSubmit(). | |
QuizfileuploadResponse:: |
public | function | Implements getResponse(). | |
QuizfileuploadResponse:: |
public | function | Implements save(). | |
QuizfileuploadResponse:: |
public | function | Implements score(). | |
QuizfileuploadResponse:: |
public | function | Constructor. |