class TrueFalseResponse in Quiz 6.6
Same name and namespace in other branches
- 6.3 question_types/quiz_question/quiz_question.truefalse.inc \TrueFalseResponse
- 6.4 question_types/truefalse/truefalse.classes.inc \TrueFalseResponse
- 6.5 question_types/quiz_question/quiz_question.truefalse.inc \TrueFalseResponse
- 7.6 question_types/truefalse/truefalse.classes.inc \TrueFalseResponse
- 7 question_types/truefalse/truefalse.classes.inc \TrueFalseResponse
- 7.4 question_types/truefalse/truefalse.classes.inc \TrueFalseResponse
- 7.5 question_types/truefalse/truefalse.classes.inc \TrueFalseResponse
Hierarchy
- class \AbstractQuizQuestionResponse
- class \TrueFalseResponse
Expanded class hierarchy of TrueFalseResponse
1 string reference to 'TrueFalseResponse'
- truefalse_quiz_question_info in question_types/
truefalse/ truefalse.module - Implementation of hook_quiz_question_info().
File
- question_types/
truefalse/ truefalse.classes.inc, line 152 - Defines the classes necessary for a True/False quiz.
View source
class TrueFalseResponse extends AbstractQuizQuestionResponse {
public function __construct($rid, $question, $answer = NULL) {
$this->rid = $rid;
$this->question = $question;
if (!isset($answer)) {
$r = $this
->getCorrectAnswer();
if (!empty($r)) {
$this->answer = $r->answer;
$this->score = $r->score;
}
}
else {
$this->answer = $answer;
}
}
public function save() {
$sql = "INSERT INTO {quiz_truefalse_user_answers} (question_nid, question_vid, result_id, answer, score) VALUES (%d, %d, %d, %d, %d)";
db_query($sql, $this->question->nid, $this->question->vid, $this->rid, (int) $this->answer, (int) $this
->getScore());
}
public function delete() {
$sql = "DELETE FROM {quiz_truefalse_user_answers} WHERE question_nid = %d AND question_vid = %d AND result_id = %d";
db_query($sql, $this->question->nid, $this->question->vid, $this->rid);
}
public function score() {
$tfQuestion = new TrueFalseQuestion($this->question);
return $this
->getResponse() == $tfQuestion
->getCorrectAnswer() ? 1 : 0;
}
public function getResponse() {
if (!isset($this->answer)) {
$correct_answer = $this
->getCorrectAnswer();
$this->answer = $correct_answer->answer;
}
return $this->answer;
}
public function getCorrectAnswer() {
$sql = "SELECT answer, score FROM {quiz_truefalse_user_answers} WHERE question_vid = %d AND result_id = %d";
return db_fetch_object(db_query($sql, $this->question->vid, $this->rid));
}
public function formatReport($showpoints = TRUE, $showfeedback = TRUE) {
// Build the question answers header (add blank space for IE).
if ($showpoints) {
$innerheader[] = t('Correct Answer');
}
$innerheader[] = t('User Answer');
if ($showfeedback) {
$innerheader[] = ' ';
}
if (empty($this->question->answers)) {
return t('Missing question.');
}
$answer = $this->question->answers[0];
$correct_answer = $answer['is_correct'];
//? $answer['answer'] : !$answer['answer'];
$user_answer = $answer['answer'];
if ($showpoints) {
$rows[0][] = $correct_answer ? t('True') : t('False');
}
$rows[0][] = $user_answer ? t('True') : t('False');
if ($showfeedback && !empty($this->question->feedback)) {
$rows[0][] = $this->question->feedback;
}
// Add the cell with the question and the answers.
$q_output = '<div class="quiz_summary_question"><span class="quiz_question_bullet">Q:</span> ' . check_markup($this->question->body, $this->question->format) . '</div>';
$q_output .= theme('table', $innerheader, $rows) . '<br />';
return $q_output;
}
}