selectTitle();
$answerType = $objQuestion->selectType();
$pictureName = $objQuestion->selectPicture();
$debug = 0; // debug variable to get where we are
$okPicture = empty($pictureName) ? false : true;
// if we come from the warning box "this question is used in serveral exercises"
if ($modifyIn) {
if ($debug > 0) {
echo '$modifyIn was set' . "
\n";
}
// if the user has chosed to modify the question only in the current exercise
if ($modifyIn == 'thisExercise') {
// duplicates the question
$questionId = $objQuestion->duplicate();
// deletes the old question
$objQuestion->delete($exerciseId);
// removes the old question ID from the question list of the Exercise object
$objExercise->removeFromList($modifyAnswers);
// adds the new question ID into the question list of the Exercise object
$objExercise->addToList($questionId);
// construction of the duplicated Question
$objQuestion = Question :: read($questionId);
// adds the exercise ID into the exercise list of the Question object
$objQuestion->addToList($exerciseId);
// copies answers from $modifyAnswers to $questionId
$objAnswer->duplicate($questionId);
// construction of the duplicated Answers
$objAnswer = new Answer($questionId);
}
$color = unserialize($color);
$reponse = unserialize($reponse);
$comment = unserialize($comment);
$weighting = unserialize($weighting);
$hotspot_coordinates = unserialize($hotspot_coordinates);
$hotspot_type = unserialize($hotspot_type);
$destination = unserialize($destination);
unset($buttonBack);
}
$hotspot_admin_url = api_get_path(WEB_CODE_PATH) . 'exercice/admin.php?' . api_get_cidreq() . '&exerciseId=' . $exerciseId;
// the answer form has been submitted
$submitAnswers = isset($submitAnswers) ? $submitAnswers : false;
$buttonBack = isset($buttonBack) ? $buttonBack : false;
$nbrAnswers = isset($nbrAnswers) ? $nbrAnswers : 0;
if ($submitAnswers || $buttonBack) {
if ($answerType == HOT_SPOT) {
if ($debug > 0) {
echo '$submitAnswers or $buttonBack was set' . "
\n";
}
$questionWeighting = $nbrGoodAnswers = 0;
for ($i = 1; $i <= $nbrAnswers; $i++) {
if ($debug > 0) {
echo str_repeat(' ', 4) . '$answerType is HOT_SPOT' . "
\n";
}
$reponse[$i] = trim($reponse[$i]);
$comment[$i] = trim($comment[$i]);
$weighting[$i] = $weighting[$i]; // it can be float
// checks if field is empty
if (empty($reponse[$i]) && $reponse[$i] != '0') {
$msgErr = get_lang('HotspotGiveAnswers');
// clears answers already recorded into the Answer object
$objAnswer->cancel();
break;
}
if ($weighting[$i] <= 0) {
$msgErr = get_lang('HotspotWeightingError');
// clears answers already recorded into the Answer object
$objAnswer->cancel();
break;
}
if ($hotspot_coordinates[$i] == '0;0|0|0' || empty($hotspot_coordinates[$i])) {
$msgErr = get_lang('HotspotNotDrawn');
// clears answers already recorded into the Answer object
$objAnswer->cancel();
break;
}
} // end for()
if (empty($msgErr)) {
for ($i = 1; $i <= $nbrAnswers; $i++) {
if ($debug > 0) {
echo str_repeat(' ', 4) . '$answerType is HOT_SPOT' . "
\n";
}
$reponse[$i] = trim($reponse[$i]);
$comment[$i] = trim($comment[$i]);
$weighting[$i] = ($weighting[$i]); //it can be float
if ($weighting[$i]) {
$questionWeighting+=$weighting[$i];
}
// creates answer
$objAnswer->createAnswer($reponse[$i], '', $comment[$i], $weighting[$i], $i, $hotspot_coordinates[$i], $hotspot_type[$i]);
} // end for()
// saves the answers into the data base
$objAnswer->save();
// sets the total weighting of the question
$objQuestion->updateWeighting($questionWeighting);
$objQuestion->save($exerciseId);
$editQuestion = $questionId;
unset($modifyAnswers);
echo '';
}
if ($debug > 0) {
echo '$modifyIn was set - end' . "
\n";
}
} else {
if ($debug > 0) {
echo '$submitAnswers or $buttonBack was set' . "
\n";
}
$questionWeighting = $nbrGoodAnswers = 0;
$select_question = $_POST['select_question'];
$try = $_POST['try'];
$url = $_POST['url'];
$destination = array();
$threadhold1 = $_POST['threadhold1'];
$threadhold2 = $_POST['threadhold2'];
$threadhold3 = $_POST['threadhold3'];
for ($i = 1; $i <= $nbrAnswers; $i++) {
if ($debug > 0) {
echo str_repeat(' ', 4) . '$answerType is HOT_SPOT' . "
\n";
}
$reponse[$i] = trim($reponse[$i]);
$comment[$i] = trim($comment[$i]);
$weighting[$i] = $weighting[$i];
if (empty($threadhold1[$i]))
$threadhold1_str = 0;
else
$threadhold1_str = intval($threadhold1[$i]);
if (empty($threadhold2[$i]))
$threadhold2_str = 0;
else
$threadhold2_str = intval($threadhold2[$i]);
if (empty($threadhold3[$i]))
$threadhold3_str = 0;
else
$threadhold3_str = intval($threadhold3[$i]);
$threadhold_total = $threadhold1_str . ';' . $threadhold2_str . ';' . $threadhold3_str;
//echo '
';print_r($_POST);echo ''; if ($try[$i] == 'on') { $try_str = 1; } else { $try_str = 0; } if (empty($lp[$i])) { $lp_str = 0; } else { $lp_str = $lp[$i]; } if ($url[$i] == '') { $url_str = ''; } else { $url_str = $url[$i]; } if ($select_question[$i] == '') { $question_str = 0; } else { $question_str = $select_question[$i]; } $destination[$i] = $threadhold_total . '@@' . $try_str . '@@' . $lp_str . '@@' . $question_str . '@@' . $url_str; // the last answer is the IF NO ERROR section witch has not have the reponse, weight and coordinates values //if ($i!=$nbrAnswers && !($answerType==HOT_SPOT_DELINEATION)) // { // checks if field is empty if (empty($reponse[$i]) && $reponse[$i] != '0') { $msgErr = get_lang('HotspotGiveAnswers'); // clears answers already recorded into the Answer object $objAnswer->cancel(); break; } if ($weighting[$i] <= 0 && $_SESSION['tmp_answers']['hotspot_type'][$i] != 'oar') { $msgErr = get_lang('HotspotWeightingError'); // clears answers already recorded into the Answer object $objAnswer->cancel(); break; } if ($hotspot_coordinates[$i] == '0;0|0|0' || empty($hotspot_coordinates[$i])) { $msgErr = get_lang('HotspotNotDrawn'); // clears answers already recorded into the Answer object $objAnswer->cancel(); break; } } // end for() //now the noerror section $selectQuestionNoError = $_POST['select_question_noerror']; $lp_noerror = $_POST['lp_noerror']; $try_noerror = $_POST['try_noerror']; $url_noerror = $_POST['url_noerror']; $comment_noerror = $_POST['comment_noerror']; $threadhold_total = '0;0;0'; if ($try_noerror == 'on') { $try_str = 1; } else { $try_str = 0; } if (empty($lp_noerror)) { $lp_str = 0; } else { $lp_str = $lp_noerror; } if ($url_noerror == '') { $url_str = ''; } else { $url_str = $url_noerror; } if ($selectQuestionNoError == '') { $question_str = 0; } else { $question_str = $selectQuestionNoError; } $destination_noerror = $threadhold_total . '@@' . $try_str . '@@' . $lp_str . '@@' . $question_str . '@@' . $url_str; if (empty($msgErr)) { for ($i = 1; $i <= $nbrAnswers; $i++) { if ($debug > 0) { echo str_repeat(' ', 4) . '$answerType is HOT_SPOT' . "