Index: moodle/mod/lamslesson/db/install.xml =================================================================== diff -u -ra25bbceba42c4b33abf05366474c35dbd398e69d -r9686837f46502c86035ec52f8ccab391e2aaa2e3 --- moodle/mod/lamslesson/db/install.xml (.../install.xml) (revision a25bbceba42c4b33abf05366474c35dbd398e69d) +++ moodle/mod/lamslesson/db/install.xml (.../install.xml) (revision 9686837f46502c86035ec52f8ccab391e2aaa2e3) @@ -16,7 +16,8 @@ - + + Index: moodle/mod/lamslesson/lang/en/lamslesson.php =================================================================== diff -u -rae5e990cc15af5507fbc326ab637c058893d79fb -r9686837f46502c86035ec52f8ccab391e2aaa2e3 --- moodle/mod/lamslesson/lang/en/lamslesson.php (.../lamslesson.php) (revision ae5e990cc15af5507fbc326ab637c058893d79fb) +++ moodle/mod/lamslesson/lang/en/lamslesson.php (.../lamslesson.php) (revision 9686837f46502c86035ec52f8ccab391e2aaa2e3) @@ -51,6 +51,7 @@ $string['pluginname'] = 'LAMS Lesson'; $string['selectsequence'] = 'Select sequence'; $string['displaydesign'] = 'Display image design?'; +$string['allowLearnerRestart'] = 'Learners can restart the lesson?'; $string['availablesequences'] = 'Sequences'; $string['openauthor'] = 'Author new LAMS lessons'; Index: moodle/mod/lamslesson/lib.php =================================================================== diff -u -r5977cea84c5550b8300ed41bf8ce6482ef7b6326 -r9686837f46502c86035ec52f8ccab391e2aaa2e3 --- moodle/mod/lamslesson/lib.php (.../lib.php) (revision 5977cea84c5550b8300ed41bf8ce6482ef7b6326) +++ moodle/mod/lamslesson/lib.php (.../lib.php) (revision 9686837f46502c86035ec52f8ccab391e2aaa2e3) @@ -125,6 +125,11 @@ if (isset($originallamslesson->displaydesign) && !isset($lamslesson->displaydesign)) { $lamslesson->displaydesign = 0; } + + // if the allowLearnerRestart setting is unchecked with make sure we do that + if (isset($originallamslesson->allowLearnerRestart) && !isset($lamslesson->allowLearnerRestart)) { + $lamslesson->allowLearnerRestart = 0; + } return $DB->update_record('lamslesson', $lamslesson); } @@ -455,7 +460,7 @@ // start the lesson $form->lesson_id = lamslesson_get_lesson( $USER->username, $form->sequence_id, $form->course, - $form->name, $form->intro, 'start', + $form->name, $form->intro, $form->allowLearnerRestart, 'start', $USER->country, $USER->lang, $form->customCSV, $form->displaydesign ); @@ -547,7 +552,7 @@ * @param string $lang The Language's ISO code * @return int lesson id */ -function lamslesson_get_lesson($username,$ldid,$courseid,$title,$desc,$method,$country,$lang,$customcsv='',$displaydesign) { +function lamslesson_get_lesson($username,$ldid,$courseid,$title,$desc,$allowLearnerRestart,$method,$country,$lang,$customcsv='',$displaydesign) { global $CFG, $USER; if (!isset($CFG->lamslesson_serverid, $CFG->lamslesson_serverkey) || $CFG->lamslesson_serverid == "") { @@ -565,17 +570,22 @@ $request = "$CFG->lamslesson_serverurl" . LAMSLESSON_LESSON_MANAGER; - $load = array('method' => $method, - 'serverId' => $CFG->lamslesson_serverid, - 'datetime' => $datetime, - 'hashValue' => $hashvalue, - 'username' => $username, - 'ldId' => $ldid, - 'courseId' => $courseid, - 'title' => $title, - 'desc' => $desc, - 'country' => $country, - 'lang' => $lang); + $load = array('method' => $method, + 'serverId' => $CFG->lamslesson_serverid, + 'datetime' => $datetime, + 'hashValue' => $hashvalue, + 'username' => $username, + 'ldId' => $ldid, + 'courseId' => $courseid, + 'title' => $title, + 'desc' => $desc, + 'country' => $country, + 'lang' => $lang); + + //append 'allowLearnerRestart' param only if it's true + if (isset($allowLearnerRestart) && $allowLearnerRestart) { + $load['allowLearnerRestart'] = $allowLearnerRestart; + } // GET call to LAMS Index: moodle/mod/lamslesson/mod_form.php =================================================================== diff -u -r044bc381a9c59ee083f5271b39a36096b1f740a2 -r9686837f46502c86035ec52f8ccab391e2aaa2e3 --- moodle/mod/lamslesson/mod_form.php (.../mod_form.php) (revision 044bc381a9c59ee083f5271b39a36096b1f740a2) +++ moodle/mod/lamslesson/mod_form.php (.../mod_form.php) (revision 9686837f46502c86035ec52f8ccab391e2aaa2e3) @@ -128,21 +128,22 @@ $mform->setType('customCSV', PARAM_TEXT); $mform->addElement('header', 'selectsequence', get_string('selectsequence', 'lamslesson')); - $mform->setExpanded('selectsequence', true); + $mform->setExpanded('selectsequence', true); $mform->addElement('static', 'sequencemessage', '', $html); $mform->addElement('checkbox', 'displaydesign', get_string('displaydesign', 'lamslesson')); + $mform->addElement('checkbox', 'allowLearnerRestart', get_string('allowLearnerRestart', 'lamslesson')); -//------------------------------------------------------------------------------- - $this->standard_grading_coursemodule_elements(); + //------------------------------------------------------------------------------- + $this->standard_grading_coursemodule_elements(); - // set the default grade to 'No Grade' so it doesn't record - // anything on gradebook unless specifically set. - $mform->setDefault('grade', 0); + // set the default grade to 'No Grade' so it doesn't record + // anything on gradebook unless specifically set. + $mform->setDefault('grade', 0); // add standard elements, common to all modules $this->standard_coursemodule_elements(); -//------------------------------------------------------------------------------- + //------------------------------------------------------------------------------- // add standard buttons, common to all modules $this->add_action_buttons(); } @@ -151,7 +152,7 @@ $errors = array(); // a sequence needs to be selected if (empty($data['sequence_id']) || $data['sequence_id'] <= 0) { - $errors['sequencemessage'] = get_string('sequencenotselected', 'lamslesson'); + $errors['sequencemessage'] = get_string('sequencenotselected', 'lamslesson'); } return $errors; } Index: moodle/mod/lamslesson/preview.php =================================================================== diff -u -r5977cea84c5550b8300ed41bf8ce6482ef7b6326 -r9686837f46502c86035ec52f8ccab391e2aaa2e3 --- moodle/mod/lamslesson/preview.php (.../preview.php) (revision 5977cea84c5550b8300ed41bf8ce6482ef7b6326) +++ moodle/mod/lamslesson/preview.php (.../preview.php) (revision 9686837f46502c86035ec52f8ccab391e2aaa2e3) @@ -46,7 +46,7 @@ if ($canmanage) { // Get a lessonID from LAMS first - $lessonID = lamslesson_get_lesson($USER->username, $ldId, $course->id, 'preview', 'preview', LAMSLESSON_PARAM_PREVIEW_METHOD, $USER->country, $USER->lang,''); + $lessonID = lamslesson_get_lesson($USER->username, $ldId, $course->id, 'preview', 'preview', null, LAMSLESSON_PARAM_PREVIEW_METHOD, $USER->country, $USER->lang,''); // With the lesson now we put together the URL $learnerurl = lamslesson_get_url($USER->username, $USER->firstname, $USER->lastname, $USER->email, $USER->lang, $USER->country, $lessonID, $course->id, $course->fullname, $course->timecreated, LAMSLESSON_PARAM_LEARNER_METHOD);