Example #1
0
                $answer = -1;
            }
        } else {
            if (!isset($_POST['answer']) || $_POST['answer'] == '') {
                $answer = -1;
            } else {
                if ($question_from->validateAnswer($_POST['answer'])) {
                    $answer = $_POST['answer'];
                    // remove magic quotes if applied - so that the regular expression matching works correctly
                    if (get_magic_quotes_gpc()) {
                        $answer = stripslashes($answer);
                    }
                } else {
                    // set message as this may have been a genuine error (eg. seven instead of 7)
                    $err = Errors::getInstance();
                    $err->errorEvent(INFO_PARAMETER, "Answer provided is not a valid response for " . $question_from->getType());
                    $message = 'Answer provided is not a valid response';
                    $action = 'display';
                }
            }
        }
    }
}
// check that we haven't changed back to display due to invalid entry before we save
if ($action != 'display') {
    $all_answers = $quiz_session->getAnswers();
    // check for exact match (checkbox 01 == 1 which is wrong)
    if ($all_answers[$question_num - 1] !== $answer) {
        $all_answers[$question_num - 1] = $answer;
        $quiz_session->setAnswers($all_answers);
    }
Example #2
0
        <h4>
            <?php 
echo $survey->getTitle();
?>
        </h4>
    </div>
    <?php 
$survey_questions = get_survey_questions($survey->getId());
if (!empty($survey_questions)) {
    ?>
        <div class="accordion">
            <?php 
    foreach ($survey_questions as $question_id) {
        $question = new Question();
        $question->get_from_db($question_id);
        if ($question->getType() == 1) {
            ?>
                </div>
                <h3 class="no-float ac"><?php 
            print_r($question->getTitle());
            ?>
</h3>
                <div class="al">
                    <?php 
            $answers = get_survey_answers($question->getId());
            foreach ($answers as $answer_id) {
                $answer = new Answer();
                $answer->get_from_db($answer_id);
                ?>
                        <p>&emsp;&emsp;&emsp;<?php 
                print_r($answer->getValue());
Example #3
0
     //Aktivieren einer Frage
     $question->setID($q_id);
     $question->setActive();
     echo " <meta http-equiv='refresh' content='0; url=?{$site}'>";
     break;
 case 'showDetails':
     // Anzeigen der Fragedetails
     if ($q_id != 0) {
         $_SESSION['values']['question']['q_id'] = $q_id;
     }
     if ($error == 'conflict') {
         echo "<h5>" . Topic_01 . " <br /></h5>";
     }
     $question->setID($_SESSION['values']['question']['q_id']);
     $question->loadQuestion();
     $type = $question->getType();
     $topics->getTopic();
     $topicArray = $topics->getTopicArray();
     $question->setAllTopics($topicArray);
     $question->showQuestionDetails();
     $answer->setQuestionID($_SESSION['values']['question']['q_id']);
     $answer->setAnswerType($_SESSION['values']['question']['qt']);
     $answer->getAnswers();
     $answer->showAnswers();
     break;
 case 'updateQuestion':
     // Question updaten
     // Wertzuweisung
     $questionText = "";
     if (isset($_REQUEST["question"])) {
         $questionText = htmlspecialchars($_REQUEST["question"]);
Example #4
0
/**
 * @return string csv data or empty string
 */
function export_question_tracking($quId, $exId = '')
{
    $question = new Question();
    if (!$question->load($quId)) {
        return "";
    }
    switch ($question->getType()) {
        case 'TF':
            $csvTrack = new CsvTrackTrueFalse($question, $exId);
            break;
        case 'MCUA':
        case 'MCMA':
            $csvTrack = new CsvTrackMultipleChoice($question, $exId);
            break;
        case 'FIB':
            $csvTrack = new CsvTrackFIB($question, $exId);
            break;
        case 'MATCHING':
            $csvTrack = new CsvTrackMatching($question, $exId);
            break;
        default:
            break;
    }
    if (isset($csvTrack)) {
        $csvTrack->buildRecords();
        return $csvTrack->export();
    } else {
        return "";
    }
}
Example #5
0
\t<th>Created</th>
\t<th>Reviewed</th>
\t<th></th>
</tr>
EOT;
/** Display questions - could use a table formatter function, but for now coded in this file **/
/* This is very inefficient and results in very slow load times - need to reduce the number of sql queries */
foreach ($questions_array as $this_question_entry) {
    print "<tr>\n";
    //print "<td>$this_question_entry</td>";
    $this_question = new Question($qdb->getQuestion($this_question_entry));
    // Allow either q number or summary to be clicked (as summary may be null - eg. picture quiz)
    print "<td><a href=\"" . ADMIN_EDIT_FILE . "?question=" . $this_question->getQuestionID() . "\">{$this_question_entry}</a></td>";
    // Note hard coded length of summary (this file to be discontinued)
    print "<td><a href=\"" . ADMIN_EDIT_FILE . "?question=" . $this_question->getQuestionID() . "\">" . $this_question->getSummary(45) . "</a></td>";
    print "<td>" . $this_question->getType() . "</td>";
    print "<td>" . $this_question->getQuizzes() . "</td>";
    print "<td>" . $this_question->getCreated() . "</td>";
    print "<td>" . $this_question->getReviewed() . "</td>\n";
    print "<td><a href=\"" . ADMIN_Q_FILE . "?question=" . $this_question->getQuestionID() . "\">Test</a></td>\n";
    print "</tr>\n";
}
print "</table>\n";
if (isset($debug) && $debug) {
    $end_time = time();
    $total_time = $end_time - $start_time;
    print "Start time: {$start_time} \n";
    print "End time: {$end_time} \n";
    print "Time taken: {$total_time} secs\n";
}
// footer template
 public function update($id, Question $question)
 {
     $this->_access->update(StudyPressDB::getTableNameQuestions(), array(StudyPressDB::COL_CONTENT_QUESTION => $question->getContent(), StudyPressDB::COL_ID_QUIZ_QUESTION => $question->getQuizId(), StudyPressDB::COL_TYPE_QUESTION => $question->getType(), StudyPressDB::COL_ORDER_QUESTION => $question->getOrder()), array(StudyPressDB::COL_ID_QUESTION => $id));
 }
Example #7
0
$out .= claro_html_tool_title($titleTab, null, $cmdList);
// build back link
$backLink = "\n\n" . '<a class="backLink" href="' . claro_htmlspecialchars(Url::Contextualize('./track_exercises.php?exId=' . $exId . $src)) . '">' . get_lang('Back') . '</a>' . "\n\n";
if ($is_allowedToTrack && get_conf('is_trackingEnabled')) {
    $out .= "\n" . '<table width="100%" border="0" cellpadding="1" cellspacing="0" class="claroTable">' . "\n";
    if (count($questionIdsToShow) > 1) {
        $questionIterator = 1;
    }
    foreach ($questionIdsToShow as $questionId) {
        // get infos about the question
        $question = new Question();
        if (!$question->load($questionId)) {
            break;
        }
        // prepare list to display
        if ($question->getType() == 'MCUA' || $question->getType() == 'MCMA') {
            // get the list of all possible answer and the number of times it was choose
            $sql = "SELECT `TEA`.`answer`, COUNT(`TEA`.`answer`) as `nbr`\n                        FROM `" . $tbl_qwz_tracking . "` AS `TE`\n                    LEFT JOIN `" . $tbl_qwz_tracking_questions . "` AS `TED`\n                        ON `TED`.`exercise_track_id` = `TE`.`id`\n                    LEFT JOIN `" . $tbl_qwz_tracking_answers . "` AS `TEA`\n                        ON `TEA`.`details_id` = `TED`.`id`\n                    WHERE `TED`.`question_id` = " . (int) $questionId . "\n                        AND `TE`.`exo_id` = " . (int) $exId . "\n                    GROUP BY `TEA`.`answer`";
            $trackedAnswers = claro_sql_query_fetch_all($sql);
            // we need to know the total number of answer given
            $multipleChoiceTotal = 0;
            $i = 0;
            foreach ($question->answer->answerList as $answer) {
                $results[$i] = $answer;
                $results[$i]['nbr'] = 0;
                foreach ($trackedAnswers as $trackedAnswer) {
                    if ($results[$i]['answer'] == $trackedAnswer['answer']) {
                        $results[$i]['nbr'] = $trackedAnswer['nbr'];
                        $multipleChoiceTotal += $trackedAnswer['nbr'];
                        break;
                    }
Example #8
0
}
// Intro
if ($questionid > 0) {
    $value = $question->getIntro();
} else {
    $value = "";
}
print "Intro:<br />\n";
print "<textarea name=\"intro\" cols=\"60\" rows=\"20\">";
print $value;
print "</textarea><br />\n";
// Type
print "Question Type:";
print "<select name=\"type\" id=\"type\">\n";
foreach ($question_types as $qtype_key => $qtype_value) {
    if ($questionid > 0 && $question->getType() == $qtype_key) {
        print " <option value=\"{$qtype_key}\" selected=\"selected\">{$qtype_value}</option>\n";
    } else {
        print " <option value=\"{$qtype_key}\">{$qtype_value}</option>\n";
    }
}
print "</select><br />\n";
// Input
if ($questionid > 0) {
    $value = $question->getInput();
} else {
    $value = "";
}
print "Input : <br />\n";
print "<textarea name=\"input\" cols=\"60\" rows=\"5\">";
print $value;
Example #9
0
 $exercise->load($exId);
 if ($exercise->getShuffle() && isset($_REQUEST['shuffle']) && $_REQUEST['shuffle'] == 1) {
     $questionList = $exercise->getRandomQuestionList();
 } else {
     $questionList = $exercise->getQuestionList();
 }
 foreach ($questionList as $_id => $question) {
     $questionObj = new Question();
     $questionObj->setExerciseId($exId);
     if ($questionObj->load($question['id'])) {
         $questionList[$_id]['description'] = $questionObj->getDescription();
         $questionList[$_id]['attachment'] = $questionObj->getAttachment();
         if (!empty($questionList[$_id]['attachment'])) {
             $questionList[$_id]['attachmentURL'] = get_conf('rootWeb') . 'courses/' . claro_get_current_course_id() . '/exercise/question_' . $questionObj->getId() . '/' . $questionObj->getAttachment();
         }
         switch ($questionObj->getType()) {
             case 'MCUA':
             case 'MCMA':
                 $questionList[$_id]['answers'] = $questionObj->answer->answerList;
                 break;
             case 'TF':
                 $questionList[$_id]['answers'][0]['answer'] = get_lang('True');
                 $questionList[$_id]['answers'][0]['feedback'] = $questionObj->answer->trueFeedback;
                 $questionList[$_id]['answers'][1]['answer'] = get_lang('False');
                 $questionList[$_id]['answers'][1]['feedback'] = $questionObj->answer->falseFeedback;
                 break;
             case 'FIB':
                 $questionList[$_id]['answerText'] = $questionObj->answer->answerDecode($questionObj->answer->answerText);
                 $questionList[$_id]['answerList'] = $questionObj->answer->answerList;
                 foreach ($questionList[$_id]['answerList'] as $i => $answer) {
                     $questionList[$_id]['answerList'][$i] = $questionObj->answer->answerDecode($questionObj->answer->addslashesEncodedBrackets($answer));