diff --git a/mod/lesson/lesson.php b/mod/lesson/lesson.php index 8209612281e..6defbafa01e 100644 --- a/mod/lesson/lesson.php +++ b/mod/lesson/lesson.php @@ -59,2381 +59,14 @@ //...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 = $_POST['answer']; - foreach ($useranswers as $key => $useranswer) { - $useranswers[$key] = clean_param($useranswer, PARAM_INT); - } - } 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 = clean_param(trim($form->answer[$i]), PARAM_CLEANHTML);
- if (isset($form->response[$i])) {
- $newanswer->response = clean_param(trim($form->response[$i]), PARAM_CLEANHTML);
- }
- if (isset($form->jumpto[$i])) {
- $newanswer->jumpto = clean_param($form->jumpto[$i], PARAM_INT);
- }
- /// CDC-FLAG ///
- if ($lesson->custom) {
- if (isset($form->score[$i])) {
- $newanswer->score = clean_param($form->score[$i], PARAM_INT);
- }
- }
- /// 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 = clean_param($form->answerid[$i], PARAM_INT);
- $oldanswer->flags = clean_param($form->answereditor[$i], PARAM_INT) * LESSON_ANSWER_EDITOR +
- clean_param($form->responseeditor[$i], PARAM_INT) * LESSON_RESPONSE_EDITOR;
- $oldanswer->timemodified = $timenow;
- $oldanswer->answer = clean_param(trim($form->answer[$i]), PARAM_CLEANHTML);
- if (isset($form->response[$i])) {
- $oldanswer->response = clean_param(trim($form->response[$i]), PARAM_CLEANHTML);
- }
- $oldanswer->jumpto = clean_param($form->jumpto[$i], PARAM_INT);
- /// CDC-FLAG ///
- if ($lesson->custom) {
- $oldanswer->score = clean_param($form->score[$i], PARAM_INT);
- }
- /// 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 = clean_param($form->answereditor[$i], PARAM_INT) * LESSON_ANSWER_EDITOR +
- clean_param($form->responseeditor[$i], PARAM_INT) * LESSON_RESPONSE_EDITOR;
- $newanswer->timecreated = $timenow;
- $newanswer->answer = clean_param(trim($form->answer[$i]), PARAM_CLEANHTML);
- if (isset($form->response[$i])) {
- $newanswer->response = clean_param(trim($form->response[$i]), PARAM_CLEANHTML);
- }
- $newanswer->jumpto = clean_param($form->jumpto[$i], PARAM_INT);
- /// CDC-FLAG ///
- $newanswer->score = clean_param($form->score[$i], PARAM_INT);
- /// 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", clean_param($form->answerid[$i], PARAM_INT))) {
- error("Update page: unable to delete answer record");
- }
- }
- } else {
- $oldanswer = new stdClass;
- $oldanswer->id = clean_param($form->answerid[$i], PARAM_INT);
- $oldanswer->flags = clean_param($form->answereditor[$i], PARAM_INT) * LESSON_ANSWER_EDITOR +
- clean_param($form->responseeditor[$i], PARAM_INT) * 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", clean_param($form->answerid[$i], PARAM_INT))) {
- 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");
- }
+ // include the appropriate action (check to make sure the file is there first)
+ if (file_exists('lessonactions/'.$action.'.php')) {
+ include('lessonactions/'.$action.'.php');
+ } else {
+ error("Fatal Error: Unknown Action: ".$action."\n");
+ }
+
print_footer($course);
-?>
+?>
\ No newline at end of file