You are here

function qformat_blackboard_6::process_fblank in Quiz 6.6

Same name and namespace in other branches
  1. 6.5 includes/moodle/question/format/blackboard_6/format.php \qformat_blackboard_6::process_fblank()
1 call to qformat_blackboard_6::process_fblank()
qformat_blackboard_6::readquestions in includes/moodle/question/format/blackboard_6/format.php
Parses an array of lines into an array of questions, where each item is a question object as defined by readquestion(). Questions are defined as anything between blank lines.

File

includes/moodle/question/format/blackboard_6/format.php, line 608

Class

qformat_blackboard_6

Code

function process_fblank($quest, &$questions) {
  $question = $this
    ->process_common($quest);
  $question->qtype = SHORTANSWER;
  $question->single = 1;
  $answers = array();
  $fractions = array();
  $feedbacks = array();

  // extract the feedback
  $feedback = array();
  foreach ($quest->feedback as $fback) {
    if (isset($fback->ident)) {
      if ($fback->ident == 'correct' || $fback->ident == 'incorrect') {
        $feedback[$fback->ident] = $fback->text;
      }
    }
  }
  foreach ($quest->responses as $response) {
    if (isset($response->title)) {
      if (isset($response->ident[0]['varequal'][0]['#'])) {

        //for BB Fill in the Blank, only interested in correct answers
        if ($response->feedback = 'correct') {
          $answers[] = addslashes($response->ident[0]['varequal'][0]['#']);
          $fractions[] = 1;
          if (isset($feedback['correct'])) {
            $feedbacks[] = addslashes($feedback['correct']);
          }
          else {
            $feedbacks[] = '';
          }
        }
      }
    }
  }

  //Adding catchall to so that students can see feedback for incorrect answers when they enter something the

  //instructor did not enter
  $answers[] = '*';
  $fractions[] = 0;
  if (isset($feedback['incorrect'])) {
    $feedbacks[] = addslashes($feedback['incorrect']);
  }
  else {
    $feedbacks[] = '';
  }
  $question->answer = $answers;
  $question->fraction = $fractions;
  $question->feedback = $feedbacks;

  // Changed to assign $feedbacks to $question->feedback instead of
  if (!empty($question)) {
    $questions[] = $question;
  }
}