course)) { error("Course is misconfigured"); } if (! $lesson = get_record("lesson", "id", $cm->instance)) { error("Course module is incorrect"); } require_login($course->id); // set up some general variables $usehtmleditor = can_use_html_editor(); $navigation = ""; if ($course->category) { $navigation = "id\">$course->shortname ->"; } $strlessons = get_string("modulenameplural", "lesson"); $strlesson = get_string("modulename", "lesson"); $strlessonname = $lesson->name; // ... print the header and... print_header("$course->shortname: $lesson->name", "$course->fullname", "$navigation id>$strlessons -> id\">$lesson->name", "", "", true); //...get the action $action = required_param('action'); /************** add branch table ************************************/ if ($action == 'addbranchtable' ) { if (!isteacher($course->id)) { error("Only teachers can look at this page"); } // first get the preceeding page $pageid = required_param('pageid', PARAM_INT); // set of jump array $jump = array(); $jump[0] = get_string("thispage", "lesson"); $jump[LESSON_NEXTPAGE] = get_string("nextpage", "lesson"); //// CDC-FLAG ///// $jump[LESSON_PREVIOUSPAGE] = get_string("previouspage", "lesson"); if (!isset($_GET['firstpage'])) { $jump[LESSON_EOL] = get_string("endoflesson", "lesson"); if (!$apageid = get_field("lesson_pages", "id", "lessonid", $lesson->id, "prevpageid", 0)) { error("Add page: first page not found"); } while (true) { if ($apageid) { $title = get_field("lesson_pages", "title", "id", $apageid); $jump[$apageid] = $title; $apageid = get_field("lesson_pages", "nextpageid", "id", $apageid); } else { // last page reached break; } } } //// CDC-FLAG ///// // give teacher a blank proforma print_heading_with_help(get_string("addabranchtable", "lesson"), "overview", "lesson"); ?>
: | ";
echo get_string("pagecontents", "lesson").": \n"; print_textarea($usehtmleditor, 25,70, 630, 400, "contents"); use_html_editor("contents"); echo " | \n";
/// CDC-FLAG /// 6/16/04
echo "
\n";
echo " "; echo get_string("displayinleftmenu", "lesson"); echo " |
".get_string("description", "lesson")." $iplus1: \n"; print_textarea(false, 10, 70, 630, 300, "answer[$i]"); // made the default set to off also removed use_html_editor(); line from down below, which made all textareas turn into html editors echo " |
".get_string("jump", "lesson")." $iplus1: \n"; if ($i) { // answers 2, 3, 4... jumpto this page lesson_choose_from_menu($jump, "jumpto[$i]", 0, ""); } else { // answer 1 jumpto next page lesson_choose_from_menu($jump, "jumpto[$i]", LESSON_NEXTPAGE, ""); } helpbutton("jumpto", get_string("jump", "lesson"), "lesson"); echo " |
\n";
foreach ($answers as $answer) {
if (!$title = get_field("lesson_pages", "title", "id", $answer->pageid)) {
error("Confirm delete: page title not found");
}
echo $title."
\n";
}
}
notice_yesno(get_string("confirmdeletionofthispage","lesson"),
"lesson.php?action=delete&id=$cm->id&pageid=$pageid&sesskey=".$USER->sesskey,
"view.php?id=$cm->id");
}
/****************** continue ************************************/
elseif ($action == 'continue' ) {
confirm_sesskey();
// left menu code
if ($lesson->displayleft) {
if($firstpageid = get_field('lesson_pages', 'id', 'lessonid', $lesson->id, 'prevpageid', 0)) {
echo '
'; // print the pages echo ''; echo ' | ';
}
}
/// CDC-FLAG /// 6/21/04 This is the warning msg for teachers to inform them that cluster and unseen does not work while logged in as a teacher
if(isteacher($course->id)) {
if (execute_teacherwarning($lesson->id)) {
$warningvars->cluster = get_string("clusterjump", "lesson");
$warningvars->unseen = get_string("unseenpageinbranch", "lesson");
echo " ".get_string("teacherjumpwarning", "lesson", $warningvars)." "; } } /// CDC-FLAG /// /// CDC-FLAG /// 6/14/04 -- This is the code updates the lesson time for a timed test // get time information for this user if (!isteacher($course->id)) { if (!$timer = get_records_select('lesson_timer', "lessonid = $lesson->id AND userid = $USER->id", 'starttime')) { error('Error: could not find records'); } else { $timer = array_pop($timer); // this will get the latest start time record } } $outoftime = false; if($lesson->timed) { if(isteacher($course->id)) { echo "".get_string("teachertimerwarning", "lesson")." "; } else { if ((($timer->starttime + $lesson->maxtime * 60) - time()) > 0) { // code for the clock print_simple_box_start("right", "150px", "#ffffff", 0); echo "
"; } else { redirect("view.php?id=$cm->id&action=navigation&pageid=".LESSON_EOL."&outoftime=normal", get_string("outoftime", "lesson")); } if ((($timer->starttime + $lesson->maxtime * 60) - time()) < 60 && !((($timer->starttime + $lesson->maxtime * 60) - time()) < 0)) { echo " ".get_string("studentoneminwarning", "lesson")." "; } elseif (($timer->starttime + $lesson->maxtime * 60) < time()) { echo "".get_string("studentoutoftime", "lesson")." "; $outoftime = true; } } } // update the clock if (!isteacher($course->id)) { $timer->lessontime = time(); if (!update_record("lesson_timer", $timer)) { error("Error: could not update lesson_timer table"); } } /// CDC-FLAG /// // record answer (if necessary) and show response (if none say if answer is correct or not) if (empty($_POST['pageid'])) { error("Continue: pageid missing"); } $pageid = required_param('pageid', PARAM_INT); if (!$page = get_record("lesson_pages", "id", $pageid)) { error("Continue: Page record not found"); } // set up some defaults $answerid = 0; $noanswer = false; $correctanswer = false; $newpageid = 0; // stay on the page switch ($page->qtype) { /// CDC-FLAG /// case LESSON_ESSAY : if (!$useranswer = $_POST['answer']) { $noanswer = true; break; } $useranswer = clean_param($useranswer, PARAM_CLEAN); if (!$answers = get_records("lesson_answers", "pageid", $pageid, "id")) { error("Continue: No answers found"); } $correctanswer = false; $response = "Your essay will be graded by the course instructor."; foreach ($answers as $answer) { $answerid = $answer->id; $newpageid = $answer->jumpto; } /// 6/29/04 // $userresponse->sent=0; $userresponse->graded = 0; $userresponse->score = 0; $userresponse->answer = $useranswer; $userresponse->response = ""; $userresponse = addslashes(serialize($userresponse)); break; /// CDC-FLAG /// case LESSON_SHORTANSWER : if (!$useranswer = $_POST['answer']) { $noanswer = true; break; } $useranswer = clean_param($useranswer, PARAM_CLEAN); $userresponse = addslashes($useranswer); if (!$answers = get_records("lesson_answers", "pageid", $pageid, "id")) { error("Continue: No answers found"); } foreach ($answers as $answer) { /// CDC-FLAG /// if ($lesson->custom && $answer->score > 0) { if ($page->qoption) { // case sensitive if ($answer->answer == $useranswer) { $correctanswer = true; $answerid = $answer->id; $newpageid = $answer->jumpto; if (trim(strip_tags($answer->response))) { $response = $answer->response; } } } else { // case insensitive if (strcasecmp($answer->answer, $useranswer) == 0) { $correctanswer = true; $answerid = $answer->id; $newpageid = $answer->jumpto; if (trim(strip_tags($answer->response))) { $response = $answer->response; } } } } elseif (lesson_iscorrect($pageid, $answer->jumpto) && !$lesson->custom) { /// CDC-FLAG 6/21/04 /// if ($page->qoption) { // case sensitive if ($answer->answer == $useranswer) { $correctanswer = true; $newpageid = $answer->jumpto; if (trim(strip_tags($answer->response))) { $response = $answer->response; } } } else { // case insensitive if (strcasecmp($answer->answer, $useranswer) == 0) { $correctanswer = true; $newpageid = $answer->jumpto; if (trim(strip_tags($answer->response))) { $response = $answer->response; } } } } else { // see if user typed in any of the wrong answers // don't worry about case if (strcasecmp($answer->answer, $useranswer) == 0) { $newpageid = $answer->jumpto; $answerid = $answer->id; if (trim(strip_tags($answer->response))) { $response = $answer->response; } } } } if (!isset($response)) { if ($correctanswer) { $response = get_string("thatsthecorrectanswer", "lesson"); } else { $response = get_string("thatsthewronganswer", "lesson"); } } break; case LESSON_TRUEFALSE : if (empty($_POST['answerid'])) { $noanswer = true; break; } $answerid = required_param('answerid', PARAM_INT); if (!$answer = get_record("lesson_answers", "id", $answerid)) { error("Continue: answer record not found"); } if (lesson_iscorrect($pageid, $answer->jumpto)) { $correctanswer = true; } /* CDC-FLAG */ if ($lesson->custom) { if ($answer->score > 0) { $correctanswer = true; } else { $correctanswer = false; } } /// CDC-FLAG 6/21/04 /// $newpageid = $answer->jumpto; if (!$response = trim($answer->response)) { if ($correctanswer) { $response = get_string("thatsthecorrectanswer", "lesson"); } else { $response = get_string("thatsthewronganswer", "lesson"); } } break; case LESSON_MULTICHOICE : if ($page->qoption) { // MULTIANSWER allowed, user's answer is an array if (isset($_POST['answer'])) { $useranswers = optional_param('answer'); } else { $noanswer = true; break; } // get what the user answered $userresponse = implode(",", $useranswers); // get the answers in a set order, the id order if (!$answers = get_records("lesson_answers", "pageid", $pageid, "id")) { error("Continue: No answers found"); } $ncorrect = 0; $nhits = 0; $correctresponse = ''; $wrongresponse = ''; /// CDC-FLAG /// 6/11/04 this is for custom scores. If score on answer is positive, it is correct if ($lesson->custom) { $ncorrect = 0; $nhits = 0; foreach ($answers as $answer) { if ($answer->score > 0) { $ncorrect++; foreach ($useranswers as $key => $answerid) { if ($answerid == $answer->id) { $nhits++; } } // save the first jumpto page id, may be needed!... if (!isset($correctpageid)) { // leave in its "raw" state - will converted into a proper page id later $correctpageid = $answer->jumpto; } // ...also save any response from the correct answers... if (trim(strip_tags($answer->response))) { $correctresponse = $answer->response; } } else { // save the first jumpto page id, may be needed!... if (!isset($wrongpageid)) { // leave in its "raw" state - will converted into a proper page id later $wrongpageid = $answer->jumpto; } // ...and from the incorrect ones, don't know which to use at this stage if (trim(strip_tags($answer->response))) { $wrongresponse = $answer->response; } } } } else { foreach ($answers as $answer) { if (lesson_iscorrect($pageid, $answer->jumpto)) { $ncorrect++; foreach ($useranswers as $key => $answerid) { if ($answerid == $answer->id) { $nhits++; } } // save the first jumpto page id, may be needed!... if (!isset($correctpageid)) { // leave in its "raw" state - will converted into a proper page id later $correctpageid = $answer->jumpto; } // ...also save any response from the correct answers... if (trim(strip_tags($answer->response))) { $correctresponse = $answer->response; } } else { // save the first jumpto page id, may be needed!... if (!isset($wrongpageid)) { // leave in its "raw" state - will converted into a proper page id later $wrongpageid = $answer->jumpto; } // ...and from the incorrect ones, don't know which to use at this stage if (trim(strip_tags($answer->response))) { $wrongresponse = $answer->response; } } } } /// CDC-FLAG /// if ((count($useranswers) == $ncorrect) and ($nhits == $ncorrect)) { $correctanswer = true; if (!$response = $correctresponse) { $response = get_string("thatsthecorrectanswer", "lesson"); } $newpageid = $correctpageid; } else { if (!$response = $wrongresponse) { $response = get_string("thatsthewronganswer", "lesson"); } $newpageid = $wrongpageid; } } else { // only one answer allowed if (empty($_POST['answerid'])) { $noanswer = true; break; } $answerid = required_param('answerid', PARAM_INT); if (!$answer = get_record("lesson_answers", "id", $answerid)) { error("Continue: answer record not found"); } if (lesson_iscorrect($pageid, $answer->jumpto)) { $correctanswer = true; } /* CDC-FLAG */ if ($lesson->custom) { if ($answer->score > 0) { $correctanswer = true; } else { $correctanswer = false; } } /// CDC-FLAG /// $newpageid = $answer->jumpto; if (!$response = trim($answer->response)) { if ($correctanswer) { $response = get_string("thatsthecorrectanswer", "lesson"); } else { $response = get_string("thatsthewronganswer", "lesson"); } } } break; /// CDC-FLAG /// 6/14/04 -- added responses case LESSON_MATCHING : if (isset($_POST['response']) && is_array($_POST['response'])) { // only arrays should be submitted $response = $_POST['response']; } else { $noanswer = true; break; } if (!$answers = get_records("lesson_answers", "pageid", $pageid, "id")) { error("Continue: No answers found"); } $ncorrect = 0; $i = 0; foreach ($answers as $answer) { if ($i == 0 || $i == 1) { // ignore first two answers, they are correct response // and wrong response $i++; continue; } if ($answer->response == $response[$answer->id]) { $ncorrect++; } if ($i == 2) { $correctpageid = $answer->jumpto; $correctanswerid = $answer->id; } if ($i == 3) { $wrongpageid = $answer->jumpto; $wronganswerid = $answer->id; } $i++; } // get he users exact responses for record keeping foreach ($response as $value) { foreach($answers as $answer) { if ($value == $answer->response) { $userresponse[] = $answer->id; } } } $userresponse = implode(",", $userresponse); if ($ncorrect == count($answers)-2) { // dont count correct/wrong responses in the total. $response = get_string("thatsthecorrectanswer", "lesson"); foreach ($answers as $answer) { if ($answer->response == NULL && $answer->answer != NULL) { $response = $answer->answer; break; } } // NoticeFix if (isset($correctpageid)) { $newpageid = $correctpageid; } if (isset($correctanswerid)) { $answerid = $correctanswerid; } $correctanswer = true; } else { $response = get_string("thatsthewronganswer", "lesson"); $t = 0; foreach ($answers as $answer) { if ($answer->response == NULL && $answer->answer != NULL) { if ($t == 1) { $response = $answer->answer; break; } $t++; } } $newpageid = $wrongpageid; $answerid = $wronganswerid; } break; /// CDC-FLAG /// case LESSON_NUMERICAL : // set defaults $response = ''; $newpageid = 0; if (isset($_POST['answer'])) { $useranswer = (float) optional_param('answer'); // just doing default PARAM_CLEAN, not doing PARAM_INT because it could be a float } else { $noanswer = true; break; } $userresponse = $useranswer; if (!$answers = get_records("lesson_answers", "pageid", $pageid, "id")) { error("Continue: No answers found"); } foreach ($answers as $answer) { if (strpos($answer->answer, ':')) { // there's a pairs of values list($min, $max) = explode(':', $answer->answer); $minimum = (float) $min; $maximum = (float) $max; } else { // there's only one value $minimum = (float) $answer->answer; $maximum = $minimum; } if (($useranswer >= $minimum) and ($useranswer <= $maximum)) { $newpageid = $answer->jumpto; $response = trim($answer->response); if (lesson_iscorrect($pageid, $newpageid)) { $correctanswer = true; } /// CDC-FLAG /// if ($lesson->custom) { if ($answer->score > 0) { $correctanswer = true; $answerid = $answer->id; } else { $correctanswer = false; } } /// CDC-FLAG /// break; } } if ($correctanswer) { if (!$response) { $response = get_string("thatsthecorrectanswer", "lesson"); } } else { if (!$response) { $response = get_string("thatsthewronganswer", "lesson"); } } break; case LESSON_BRANCHTABLE: $noanswer = false; $newpageid = optional_param('jumpto', NULL, PARAM_INT); /// CDC-FLAG /// 6/15/04 going to insert into lesson_branch if ($newpageid == LESSON_RANDOMBRANCH) { $branchflag = 1; } else { $branchflag = 0; } if ($grades = get_records_select("lesson_grades", "lessonid = $lesson->id AND userid = $USER->id", "grade DESC")) { $retries = count($grades); } else { $retries = 0; } $branch = new stdClass; $branch->lessonid = $lesson->id; $branch->userid = $USER->id; $branch->pageid = $pageid; $branch->retry = $retries; $branch->flag = $branchflag; $branch->timeseen = time(); if (!insert_record("lesson_branch", $branch)) { error("Error: could not insert row into lesson_branch table"); } /// CDC-FLAG /// /// CDC-FLAG /// this is called when jumping to random from a branch table if($newpageid == LESSON_UNSEENBRANCHPAGE) { if (isteacher($course->id)) { $newpageid = LESSON_NEXTPAGE; } else { $newpageid = lesson_unseen_question_jump($lesson->id, $USER->id, $pageid); // this may return 0 //CDC Chris Berri.....this is where it sets the next page id for unseen? } } /// CDC-FLAG 6/15/04 /// // convert jumpto page into a proper page id if ($newpageid == 0) { $newpageid = $pageid; } elseif ($newpageid == LESSON_NEXTPAGE) { if (!$newpageid = $page->nextpageid) { // no nextpage go to end of lesson $newpageid = LESSON_EOL; } /* CDC-FLAG */ } elseif ($newpageid == LESSON_PREVIOUSPAGE) { $newpageid = $page->prevpageid; } elseif ($newpageid == LESSON_RANDOMPAGE) { $newpageid = lesson_random_question_jump($lesson->id, $pageid); } elseif ($newpageid == LESSON_RANDOMBRANCH) { // 6/15/04 $newpageid = lesson_unseen_branch_jump($lesson->id, $USER->id); } /// CDC-FLAG /// // no need to record anything in lesson_attempts redirect("view.php?id=$cm->id&action=navigation&pageid=$newpageid"); print_footer($course); exit(); break; } if ($noanswer) { $newpageid = $pageid; // display same page again print_simple_box(get_string("noanswer", "lesson"), "center"); } else { $nretakes = count_records("lesson_grades", "lessonid", $lesson->id, "userid", $USER->id); if (isstudent($course->id)) { // record student's attempt $attempt = new stdClass; $attempt->lessonid = $lesson->id; $attempt->pageid = $pageid; $attempt->userid = $USER->id; $attempt->answerid = $answerid; $attempt->retry = $nretakes; $attempt->correct = $correctanswer; if(isset($userresponse)) { $attempt->useranswer = $userresponse; } $attempt->timeseen = time(); /// CDC-FLAG /// -- dont want to insert the attempt if they ran out of time if (!$outoftime) { // if allow modattempts, then update the old attempt record, otherwise, insert new answer record if (isset($USER->modattempts[$lesson->id])) { $attempt->retry = $nretakes - 1; // they are going through on review, $nretakes will be too high } if (!$newattemptid = insert_record("lesson_attempts", $attempt)) { error("Continue: attempt not inserted"); } } /// CDC-FLAG /// if (!$correctanswer and ($newpageid == 0)) { // wrong answer and student is stuck on this page - check how many attempts // the student has had at this page/question $nattempts = count_records("lesson_attempts", "pageid", $pageid, "userid", $USER->id, "retry", $nretakes); if ($nattempts >= $lesson->maxattempts) { if ($lesson->maxattempts > 1) { // don't bother with message if only one attempt echo "(".get_string("maximumnumberofattempts", "lesson"). " ".get_string("reached", "lesson")." - ". get_string("movingtonextpage", "lesson").") \n"; } $newpageid = LESSON_NEXTPAGE; } } } // convert jumpto page into a proper page id if ($newpageid == 0) { $newpageid = $pageid; } elseif ($newpageid == LESSON_NEXTPAGE) { if ($lesson->nextpagedefault) { // in Flash Card mode... // ... first get the page ids (lessonid the 5th param is needed to make get_records play) $allpages = get_records("lesson_pages", "lessonid", $lesson->id, "id", "id,lessonid,qtype"); shuffle ($allpages); $found = false; if ($lesson->nextpagedefault == LESSON_UNSEENPAGE) { foreach ($allpages as $thispage) { if (!count_records("lesson_attempts", "pageid", $thispage->id, "userid", $USER->id, "retry", $nretakes)) { $found = true; break; } } } elseif ($lesson->nextpagedefault == LESSON_UNANSWEREDPAGE) { foreach ($allpages as $thispage) { if ($thispage->qtype == LESSON_ESSAY) { if (!count_records_select("lesson_attempts", "pageid = $thispage->id AND userid = $USER->id AND retry = $nretakes")) { $found = true; break; } } else { if (!count_records_select("lesson_attempts", "pageid = $thispage->id AND userid = $USER->id AND correct = 1 AND retry = $nretakes")) { $found = true; break; } } } } if ($found) { $newpageid = $thispage->id; if ($lesson->maxpages) { // check number of pages viewed (in the lesson) if (count_records("lesson_attempts", "lessonid", $lesson->id, "userid", $USER->id, "retry", $nretakes) >= $lesson->maxpages) { $newpageid = LESSON_EOL; } } } else { $newpageid = LESSON_EOL; } } elseif (!$newpageid = $page->nextpageid) { // no nextpage go to end of lesson $newpageid = LESSON_EOL; } } /// CDC-FLAG 6/21/04 /// this calculates the ongoing score if ($lesson->ongoing) { if (isteacher($course->id)) { echo "".get_string("teacherongoingwarning", "lesson")." "; } else { $ntries = count_records("lesson_grades", "lessonid", $lesson->id, "userid", $USER->id); if (isset($USER->modattempts[$lesson->id])) { $ntries--; } lesson_calculate_ongoing_score($lesson, $USER->id, $ntries); } } /// CDC-FLAG /// // display response (if there is one - there should be!) if ($response) { //$title = get_field("lesson_pages", "title", "id", $pageid); //print_heading($title); echo "
|
...
$newanswer->lessonid = $lesson->id;
$newanswer->pageid = $newpageid;
$newanswer->timecreated = $timenow;
$newanswer->answer = trim($form->answer[$i]);
if (isset($form->response[$i])) {
$newanswer->response = trim($form->response[$i]);
}
if (isset($form->jumpto[$i])) {
$newanswer->jumpto = $form->jumpto[$i];
}
/// CDC-FLAG ///
if ($lesson->custom) {
if (isset($form->score[$i])) {
$newanswer->score = $form->score[$i];
}
}
/// CDC-FLAG ///
$newanswerid = insert_record("lesson_answers", $newanswer);
if (!$newanswerid) {
error("Insert Page: answer record $i not inserted");
}
} else {
if ($form->qtype == LESSON_MATCHING) {
if ($i < 2) {
$newanswer->lessonid = $lesson->id;
$newanswer->pageid = $newpageid;
$newanswer->timecreated = $timenow;
$newanswerid = insert_record("lesson_answers", $newanswer);
if (!$newanswerid) {
error("Insert Page: answer record $i not inserted");
}
}
} else {
break;
}
}
}
}
/// CDC-FLAG ///
redirect("view.php?id=$cm->id", get_string('insertedpage', 'lesson'));
}
/****************** move ************************************/
elseif ($action == 'move') {
if (!isteacher($course->id)) {
error("Only teachers can look at this page");
}
$pageid = required_param('pageid', PARAM_INT);
$title = get_field("lesson_pages", "title", "id", $pageid);
print_heading(get_string("moving", "lesson", $title));
if (!$page = get_record_select("lesson_pages", "lessonid = $lesson->id AND prevpageid = 0")) {
error("Move: first page not found");
}
echo "
id&sesskey=".$USER->sesskey."&action=moveit&pageid=$pageid&after=0\">". get_string("movepagehere", "lesson")." |
$title |
id&sesskey=".$USER->sesskey."&action=moveit&pageid=$pageid&after={$page->id}\">". get_string("movepagehere", "lesson")." |
...
// also save any answers where the editor is (going to be) used
if (trim(strip_tags($form->answer[$i])) or $form->answereditor[$i] or $form->responseeditor[$i]) {
if ($form->answerid[$i]) {
$oldanswer = new stdClass;
$oldanswer->id = $form->answerid[$i];
$oldanswer->flags = $form->answereditor[$i] * LESSON_ANSWER_EDITOR +
$form->responseeditor[$i] * LESSON_RESPONSE_EDITOR;
$oldanswer->timemodified = $timenow;
$oldanswer->answer = trim($form->answer[$i]);
if (isset($form->response[$i])) {
$oldanswer->response = trim($form->response[$i]);
}
$oldanswer->jumpto = $form->jumpto[$i];
/// CDC-FLAG ///
if ($lesson->custom) {
$oldanswer->score = $form->score[$i];
}
/// CDC-FLAG ///
if (!update_record("lesson_answers", $oldanswer)) {
error("Update page: answer $i not updated");
}
} else {
// it's a new answer
$newanswer = new stdClass; // need to clear id if more than one new answer is ben added
$newanswer->lessonid = $lesson->id;
$newanswer->pageid = $page->id;
$newanswer->flags = $form->answereditor[$i] * LESSON_ANSWER_EDITOR +
$form->responseeditor[$i] * LESSON_RESPONSE_EDITOR;
$newanswer->timecreated = $timenow;
$newanswer->answer = trim($form->answer[$i]);
if (isset($form->response[$i])) {
$newanswer->response = trim($form->response[$i]);
}
$newanswer->jumpto = $form->jumpto[$i];
/// CDC-FLAG ///
$newanswer->score = $form->score[$i];
/// CDC-FLAG ///
$newanswerid = insert_record("lesson_answers", $newanswer);
if (!$newanswerid) {
error("Update page: answer record not inserted");
}
}
} else {
if ($form->qtype == LESSON_MATCHING) {
if ($i >= 2) {
if ($form->answerid[$i]) {
// need to delete blanked out answer
if (!delete_records("lesson_answers", "id", $form->answerid[$i])) {
error("Update page: unable to delete answer record");
}
}
} else {
$oldanswer = new stdClass;
$oldanswer->id = $form->answerid[$i];
$oldanswer->flags = $form->answereditor[$i] * LESSON_ANSWER_EDITOR +
$form->responseeditor[$i] * LESSON_RESPONSE_EDITOR;
$oldanswer->timemodified = $timenow;
$oldanswer->answer = NULL;
if (!update_record("lesson_answers", $oldanswer)) {
error("Update page: answer $i not updated");
}
}
} elseif ($form->answerid[$i]) {
// need to delete blanked out answer
if (!delete_records("lesson_answers", "id", $form->answerid[$i])) {
error("Update page: unable to delete answer record");
}
}
}
}
}
if ($form->redisplay) {
redirect("lesson.php?id=$cm->id&action=editpage&pageid=$page->id");
} else {
redirect("view.php?id=$cm->id", get_string('updatedpage', 'lesson'));
}
}
/*************** no man's land **************************************/
else {
error("Fatal Error: Unknown Action: ".$action."\n");
}
print_footer($course);
?>