⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 continue.php

📁 很棒的在线教学系统
💻 PHP
📖 第 1 页 / 共 3 页
字号:
            } elseif ($newpageid == LESSON_RANDOMBRANCH) {                $newpageid = lesson_unseen_branch_jump($lesson->id, $USER->id);            }            // no need to record anything in lesson_attempts                        redirect("$CFG->wwwroot/mod/lesson/view.php?id=$cm->id&amp;pageid=$newpageid");            break;            }    $attemptsremaining  = 0;    $maxattemptsreached = 0;    $nodefaultresponse  = false; // Flag for redirecting when default feedback is turned off    if ($noanswer) {        $newpageid = $pageid; // display same page again        $feedback  = get_string('noanswer', 'lesson');    } else {        $nretakes = count_records("lesson_grades", "lessonid", $lesson->id, "userid", $USER->id);         if (!has_capability('mod/lesson:manage', $context)) {            // 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();            // 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");            }            // "number of attempts remaining" message if $lesson->maxattempts > 1            // displaying of message(s) is at the end of page for more ergonomic display            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);                                // retreive the number of attempts left counter for displaying at bottom of feedback page                if ($nattempts >= $lesson->maxattempts) {                    if ($lesson->maxattempts > 1) { // don't bother with message if only one attempt                        $maxattemptsreached = 1;                    }                    $newpageid = LESSON_NEXTPAGE;                } else if ($lesson->maxattempts > 1) { // don't bother with message if only one attempt                    $attemptsremaining = $lesson->maxattempts - $nattempts;                }            }        }        // TODO: merge this code with the jump code below.  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;            }        }        // Determine default feedback if necessary        if (empty($response)) {            if (!$lesson->feedback and !$noanswer and !($lesson->review and !$correctanswer and !$isessayquestion)) {                // These conditions have been met:                //  1. The lesson manager has not supplied feedback to the student                //  2. Not displaying default feedback                //  3. The user did provide an answer                //  4. We are not reviewing with an incorrect answer (and not reviewing an essay question)                                $nodefaultresponse = true;  // This will cause a redirect below            } else if ($isessayquestion) {                $response = get_string('defaultessayresponse', 'lesson');            } else if ($correctanswer) {                $response = get_string('thatsthecorrectanswer', 'lesson');            } else {                $response = get_string('thatsthewronganswer', 'lesson');            }        }        // display response (if there is one - there should be!)        // display: lesson title, page title, question text, student's answer(s) before feedback message                if ($response) {            //optionally display question page title            //if ($title = get_field("lesson_pages", "title", "id", $pageid)) {            //    print_heading($title);            //}            if ($lesson->review and !$correctanswer and !$isessayquestion) {                $nretakes = count_records("lesson_grades", "lessonid", $lesson->id, "userid", $USER->id);                 $qattempts = count_records("lesson_attempts", "userid", $USER->id, "retry", $nretakes, "pageid", $pageid);                if ($qattempts == 1) {                    $feedback = get_string("firstwrong", "lesson");                } else {                    $feedback = get_string("secondpluswrong", "lesson");                }            } else {                if ($correctanswer) {                    $class = 'response correct'; //CSS over-ride this if they exist (!important)                } else if ($isessayquestion) {                    $class = 'response';                } else {                    $class = 'response incorrect';                 }                $options = new stdClass;                $options->noclean = true;                $options->para = true;                $feedback = print_simple_box(format_text($page->contents, FORMAT_MOODLE, $options), 'center', '', '', 5, 'generalbox', '', true);                $feedback .= '<em>'.get_string("youranswer", "lesson").'</em> : '.format_text($studentanswer, FORMAT_MOODLE, $options).                                 "<div class=\"$class\">".format_text($response, FORMAT_MOODLE, $options).'</div>';            }        }    }    // TODO: merge with the jump code above.  This is where some jump numbers are interpreted    if (isset($USER->modattempts[$lesson->id])) {        // make sure if the student is reviewing, that he/she sees the same pages/page path that he/she saw the first time        if ($USER->modattempts[$lesson->id] == $pageid) {  // remember, this session variable holds the pageid of the last page that the user saw            $newpageid = LESSON_EOL;        } else {            $nretakes--; // make sure we are looking at the right try.            $attempts = get_records_select("lesson_attempts", "lessonid = $lesson->id AND userid = $USER->id AND retry = $nretakes", "timeseen", "id, pageid");            $found = false;            $temppageid = 0;            foreach($attempts as $attempt) {                if ($found && $temppageid != $attempt->pageid) { // now try to find the next page, make sure next few attempts do no belong to current page                    $newpageid = $attempt->pageid;                    break;                }                if ($attempt->pageid == $pageid) {                    $found = true; // if found current page                    $temppageid = $attempt->pageid;                }            }        }    } elseif ($newpageid != LESSON_CLUSTERJUMP && $pageid != 0 && $newpageid > 0) {  // going to check to see if the page that the user is going to view next, is a cluster page.  If so, dont display, go into the cluster.  The $newpageid > 0 is used to filter out all of the negative code jumps.        if (!$page = get_record("lesson_pages", "id", $newpageid)) {            error("Error: could not find page");        }        if ($page->qtype == LESSON_CLUSTER) {            $newpageid = lesson_cluster_jump($lesson->id, $USER->id, $page->id);        } elseif ($page->qtype == LESSON_ENDOFCLUSTER) {            $jump = get_field("lesson_answers", "jumpto", "pageid", $page->id, "lessonid", $lesson->id);            if ($jump == LESSON_NEXTPAGE) {                if ($page->nextpageid == 0) {                    $newpageid = LESSON_EOL;                } else {                    $newpageid = $page->nextpageid;                }            } else {                $newpageid = $jump;            }        }    } 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&amp;pageid=$newpageid");    }    /// Set Messages    // This is the warning msg for teachers to inform them that cluster and unseen does not work while logged in as a teacher    if(has_capability('mod/lesson:manage', $context) and lesson_display_teacher_warning($lesson->id)) {        $warningvars->cluster = get_string("clusterjump", "lesson");        $warningvars->unseen = get_string("unseenpageinbranch", "lesson");        lesson_set_message(get_string("teacherjumpwarning", "lesson", $warningvars));    }    // Inform teacher that s/he will not see the timer    if ($lesson->timed and has_capability('mod/lesson:manage', $context)) {        lesson_set_message(get_string("teachertimerwarning", "lesson"));    }    // Report attempts remaining    if ($attemptsremaining != 0) {        lesson_set_message(get_string('attemptsremaining', 'lesson', $attemptsremaining));    }    // Report if max attempts reached    if ($maxattemptsreached != 0) {         lesson_set_message('('.get_string("maximumnumberofattemptsreached", "lesson").')');    }    $PAGE = page_create_object('mod-lesson-view', $lesson->id);    $PAGE->set_lessonpageid($page->id);    $pageblocks = blocks_setup($PAGE);    $leftcolumnwidth  = bounded_number(180, blocks_preferred_width($pageblocks[BLOCK_POS_LEFT]), 210);    $rightcolumnwidth = bounded_number(180, blocks_preferred_width($pageblocks[BLOCK_POS_RIGHT]), 210);/// Print the header, heading and tabs    $PAGE->print_header();    include(dirname(__FILE__).'/continue.html');?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -