Index: temp_moodle_dev/moodle/lang/en_utf8/lamstwo.php =================================================================== diff -u -r5d1d1c32a971835a8f9917e639d431a0b890c496 -r8f792d6134cfdce3726a75199cbfbe3fc5345074 --- temp_moodle_dev/moodle/lang/en_utf8/lamstwo.php (.../lamstwo.php) (revision 5d1d1c32a971835a8f9917e639d431a0b890c496) +++ temp_moodle_dev/moodle/lang/en_utf8/lamstwo.php (.../lamstwo.php) (revision 8f792d6134cfdce3726a75199cbfbe3fc5345074) @@ -79,5 +79,8 @@ $string['restcalldefault'] = 'Call to LAMS failed: received an HTTP status of: $a'; $string['restcallfail'] = 'Call to LAMS failed: received no response or connection was refused. Please check that you have the correct LAMS server URL and that it is online.'; $string['parsingerror'] = 'There has been an error parsing the rest response. Please contact your system administrator.'; +$string['deletelesson'] = 'Delete this lesson'; +$string['deletelessonconfirm'] = 'Are you sure you want to delete this lesson?'; +$string['deletesuccess'] = 'Lesson successfully deleted.'; ?> Index: temp_moodle_dev/moodle/mod/lamstwo/lib.php =================================================================== diff -u -r3126a509c4e03c56c96b0ed97838d4cb59782ea0 -r8f792d6134cfdce3726a75199cbfbe3fc5345074 --- temp_moodle_dev/moodle/mod/lamstwo/lib.php (.../lib.php) (revision 3126a509c4e03c56c96b0ed97838d4cb59782ea0) +++ temp_moodle_dev/moodle/mod/lamstwo/lib.php (.../lib.php) (revision 8f792d6134cfdce3726a75199cbfbe3fc5345074) @@ -73,25 +73,55 @@ function lamstwo_delete_instance($id) { -/// Given an ID of an instance of this module, -/// this function will permanently delete the instance -/// and any data that depends on it. + global $CFG; if (! $lamstwo = get_record('lamstwo', 'id', $id)) { - return false; + return false; } $result = true; - # Delete any dependent records here # - lamstwo_delete_lesson($USER->username,$lamstwo->lesson_id); + # delete child lessons + $sql = "SELECT * FROM {$CFG->prefix}lamstwo_lesson WHERE lamstwo=$id"; + $lamstwolessons = get_records_sql($sql); + foreach ($lamstwolessons as $lamstwolesson_id => $lamstwolesson) { + $result = lamstwo_delete_lamstwo_lesson($lamstwolesson_id); + } + + # delete module entry if (! delete_records('lamstwo', 'id', $lamstwo->id)) { - $result = false; + $result = false; } return $result; } +function lamstwo_delete_lamstwo_lesson($id) { + global $CFG; + + if (! $lamstwolesson = get_record('lamstwo_lesson', 'id', $id)) { + return false; + } + + $result = true; + lamstwo_delete_lesson($USER->username, $lamstwolesson->lesson_id); + + # delete child grades + $sql ="SELECT * FROM {$CFG->prefix}lamstwo_grade WHERE lamstwolesson=$lamstwolesson->id"; + $grades = get_records_sql($sql); + foreach ($grades as $grade_id => $grade) { + if (! delete_records('lamstwo_grade', 'id', $grade_id)) { + $result = false; + } + } + + if (! delete_records('lamstwo_lesson', 'id', $lamstwolesson->id)) { + $result = false; + } + + return $result; +} + function lamstwo_user_outline($course, $user, $mod, $lamstwo) { /// Return a small object with summary information about what a /// user has done with a given particular instance of this module Index: temp_moodle_dev/moodle/mod/lamstwo/version.php =================================================================== diff -u -r3126a509c4e03c56c96b0ed97838d4cb59782ea0 -r8f792d6134cfdce3726a75199cbfbe3fc5345074 --- temp_moodle_dev/moodle/mod/lamstwo/version.php (.../version.php) (revision 3126a509c4e03c56c96b0ed97838d4cb59782ea0) +++ temp_moodle_dev/moodle/mod/lamstwo/version.php (.../version.php) (revision 8f792d6134cfdce3726a75199cbfbe3fc5345074) @@ -5,7 +5,7 @@ /// This fragment is called by moodle_needs_upgrading() and /admin/index.php ///////////////////////////////////////////////////////////////////////////////// -$module->version = 2009033000; // The current module version (Date: YYYYMMDDXX) +$module->version = 2009070200; // The current module version (Date: YYYYMMDDXX) $module->requires = 2007021400; // Requires this Moodle version (1.8) $module->cron = 0; // Period for cron to check this module (secs) Index: temp_moodle_dev/moodle/mod/lamstwo/view.php =================================================================== diff -u -r09dfe375ca3feb1c384668331a176111c85e7ee9 -r8f792d6134cfdce3726a75199cbfbe3fc5345074 --- temp_moodle_dev/moodle/mod/lamstwo/view.php (.../view.php) (revision 09dfe375ca3feb1c384668331a176111c85e7ee9) +++ temp_moodle_dev/moodle/mod/lamstwo/view.php (.../view.php) (revision 8f792d6134cfdce3726a75199cbfbe3fc5345074) @@ -5,6 +5,8 @@ require_once('lib.php'); $id = optional_param('id', 0, PARAM_INT); // Course Module ID +$delete = optional_param('delete', 0, PARAM_INT); // lamstwo_lesson id to delete +$confirm = optional_param('confirm', 0, PARAM_INT); // boolean confirming deletion if (! $cm = get_coursemodule_from_id('lamstwo', $id)) { error('Course Module ID was incorrect'); @@ -29,6 +31,32 @@ "id\">$strchoices -> ".format_string($lamstwo->name), '', '', true, update_module_button($cm->id, $course->id, get_string('modulename','lamstwo')), navmenu($course, $cm)); + +// Delete lesson prompt if requested +if (!empty($delete)) { + if (!empty($confirm) && $confirm == 1) { + // delete and redirect to this lamstwo page + if (lamstwo_delete_lamstwo_lesson($delete)) { + redirect('view.php?id='.$id, get_string('deletesuccess', 'lamstwo')); + } else { + redirect('view.php?id='.$id); + } + } else { + // delete confirmation + print_simple_box_start('center', '60%', '#FFAAAA', 20, 'noticebox'); + print_heading(get_string('deletelessonconfirm', 'lamstwo')); + echo "
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + print_simple_box_end(); + print_footer($course); + return; + } +} // Find out current groups mode $groupmode = groupmode($course, $cm); @@ -111,6 +139,8 @@ $monitorurl = "onclick=\"javascript:window.open('".$monitorurl."','monitor','location=0,toolbar=0,menubar=0,statusbar=0,width=996,height=600,resizable',0)\""; $monitorlink = "".get_string('openmonitor', 'lamstwo').""; $links .= $monitorlink; + $deletelink = "id\">".get_string('deletelesson', 'lamstwo').""; + $links .= " ".$deletelink; } $table->data[] = array($lessonlink, $lesson->intro, $links, date('r', $lesson->timemodified)); }