} } } elseif ($newpageid == LESSON_UNSEENBRANCHPAGE) { if (has_capability('mod/lesson:manage', $context)) { if ($page->nextpageid == 0) { $newpageid = LESSON_EOL; } else { $newpageid = $page->nextpageid; } } else { $newpageid = lesson_unseen_question_jump($lesson->id, $USER->id, $pageid); } } elseif ($newpageid == LESSON_PREVIOUSPAGE) { $newpageid = $page->prevpageid; } elseif ($newpageid == LESSON_RANDOMPAGE) { $newpageid = lesson_random_question_jump($lesson->id, $pageid); } elseif ($newpageid == LESSON_CLUSTERJUMP) { if (has_capability('mod/lesson:manage', $context)) { if ($page->nextpageid == 0) { // if teacher, go to next page $newpageid = LESSON_EOL; } else { $newpageid = $page->nextpageid; } } else { $newpageid = lesson_cluster_jump($lesson->id, $USER->id, $pageid); } } if ($nodefaultresponse) { // Don't display feedback redirect("{$CFG->wwwroot}/mod/lesson/view.php?id={$cm->id}&pageid={$newpageid}");
$result->newpageid = $newpageid; } } elseif ($result->newpageid == LESSON_UNSEENBRANCHPAGE) { if ($canmanage) { if ($page->nextpageid == 0) { $result->newpageid = LESSON_EOL; } else { $result->newpageid = $page->nextpageid; } } else { $result->newpageid = lesson_unseen_question_jump($lesson, $USER->id, $page->id); } } elseif ($result->newpageid == LESSON_PREVIOUSPAGE) { $result->newpageid = $page->prevpageid; } elseif ($result->newpageid == LESSON_RANDOMPAGE) { $result->newpageid = lesson_random_question_jump($lesson, $page->id); } elseif ($result->newpageid == LESSON_CLUSTERJUMP) { if ($canmanage) { if ($page->nextpageid == 0) { // if teacher, go to next page $result->newpageid = LESSON_EOL; } else { $result->newpageid = $page->nextpageid; } } else { $result->newpageid = $lesson->cluster_jump($page->id); } } if ($result->nodefaultresponse) { // Don't display feedback redirect(new moodle_url('/mod/lesson/view.php', array('id' => $cm->id, 'pageid' => $result->newpageid)));
public function check_answer() { global $USER, $DB, $PAGE, $CFG; require_sesskey(); $newpageid = optional_param('jumpto', NULL, PARAM_INT); // going to insert into lesson_branch if ($newpageid == LESSON_RANDOMBRANCH) { $branchflag = 1; } else { $branchflag = 0; } if ($grades = $DB->get_records("lesson_grades", array("lessonid" => $this->lesson->id, "userid" => $USER->id), "grade DESC")) { $retries = count($grades); } else { $retries = 0; } $branch = new stdClass; $branch->lessonid = $this->lesson->id; $branch->userid = $USER->id; $branch->pageid = $this->properties->id; $branch->retry = $retries; $branch->flag = $branchflag; $branch->timeseen = time(); $DB->insert_record("lesson_branch", $branch); // this is called when jumping to random from a branch table $context = get_context_instance(CONTEXT_MODULE, $PAGE->cm->id); if($newpageid == LESSON_UNSEENBRANCHPAGE) { if (has_capability('mod/lesson:manage', $context)) { $newpageid = LESSON_NEXTPAGE; } else { $newpageid = lesson_unseen_question_jump($this->lesson, $USER->id, $this->properties->id); // this may return 0 } } // convert jumpto page into a proper page id if ($newpageid == 0) { $newpageid = $this->properties->id; } elseif ($newpageid == LESSON_NEXTPAGE) { if (!$newpageid = $this->nextpageid) { // no nextpage go to end of lesson $newpageid = LESSON_EOL; } } elseif ($newpageid == LESSON_PREVIOUSPAGE) { $newpageid = $this->prevpageid; } elseif ($newpageid == LESSON_RANDOMPAGE) { $newpageid = lesson_random_question_jump($this->lesson, $this->properties->id); } elseif ($newpageid == LESSON_RANDOMBRANCH) { $newpageid = lesson_unseen_branch_jump($this->lesson, $USER->id); } // no need to record anything in lesson_attempts redirect(new moodle_url('/mod/lesson/view.php', array('id'=>$PAGE->cm->id,'pageid'=>$newpageid))); }