Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/course/completion.php
Go to the documentation of this file.
00001 <?php
00002 
00004 //                                                                       //
00005 // NOTICE OF COPYRIGHT                                                   //
00006 //                                                                       //
00007 // Moodle - Modular Object-Oriented Dynamic Learning Environment         //
00008 //          http://moodle.com                                            //
00009 //                                                                       //
00010 // Copyright (C) 1999 onwards Martin Dougiamas  http://dougiamas.com     //
00011 //                                                                       //
00012 // This program is free software; you can redistribute it and/or modify  //
00013 // it under the terms of the GNU General Public License as published by  //
00014 // the Free Software Foundation; either version 2 of the License, or     //
00015 // (at your option) any later version.                                   //
00016 //                                                                       //
00017 // This program is distributed in the hope that it will be useful,       //
00018 // but WITHOUT ANY WARRANTY; without even the implied warranty of        //
00019 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         //
00020 // GNU General Public License for more details:                          //
00021 //                                                                       //
00022 //          http://www.gnu.org/copyleft/gpl.html                         //
00023 //                                                                       //
00025 
00026 // Edit course completion settings
00027 
00028 require_once('../config.php');
00029 require_once('lib.php');
00030 require_once($CFG->libdir.'/completionlib.php');
00031 require_once($CFG->libdir.'/completion/completion_criteria_self.php');
00032 require_once($CFG->libdir.'/completion/completion_criteria_date.php');
00033 require_once($CFG->libdir.'/completion/completion_criteria_unenrol.php');
00034 require_once($CFG->libdir.'/completion/completion_criteria_activity.php');
00035 require_once($CFG->libdir.'/completion/completion_criteria_duration.php');
00036 require_once($CFG->libdir.'/completion/completion_criteria_grade.php');
00037 require_once($CFG->libdir.'/completion/completion_criteria_role.php');
00038 require_once($CFG->libdir.'/completion/completion_criteria_course.php');
00039 require_once $CFG->libdir.'/gradelib.php';
00040 require_once('completion_form.php');
00041 
00042 $id = required_param('id', PARAM_INT);       // course id
00043 
00045 if ($id) { // editing course
00046 
00047     if($id == SITEID){
00048         // don't allow editing of  'site course' using this from
00049         print_error('cannoteditsiteform');
00050     }
00051 
00052     if (!$course = $DB->get_record('course', array('id'=>$id))) {
00053         print_error('invalidcourseid');
00054     }
00055     require_login($course->id);
00056     require_capability('moodle/course:update', get_context_instance(CONTEXT_COURSE, $course->id));
00057 
00058 } else {
00059     require_login();
00060     print_error('needcourseid');
00061 }
00062 
00064 $streditcompletionsettings = get_string("editcoursecompletionsettings", 'completion');
00065 $PAGE->set_course($course);
00066 $PAGE->set_url('/course/completion.php', array('id' => $course->id));
00067 //$PAGE->navbar->add($streditcompletionsettings);
00068 $PAGE->set_title($course->shortname);
00069 $PAGE->set_heading($course->fullname);
00070 $PAGE->set_pagelayout('standard');
00071 
00073 $form = new course_completion_form('completion.php?id='.$id, compact('course'));
00074 
00075 // now override defaults if course already exists
00076 if ($form->is_cancelled()){
00077     redirect($CFG->wwwroot.'/course/view.php?id='.$course->id);
00078 
00079 } else if ($data = $form->get_data()) {
00080 
00081     $completion = new completion_info($course);
00082 
00084     if (!empty($data->settingsunlock)) {
00085 
00086         $completion->delete_course_completion_data();
00087 
00088         // Return to form (now unlocked)
00089         redirect($CFG->wwwroot."/course/completion.php?id=$course->id");
00090     }
00091 
00093     // Delete old criteria
00094     $completion->clear_criteria();
00095 
00096     // Loop through each criteria type and run update_config
00097     global $COMPLETION_CRITERIA_TYPES;
00098     foreach ($COMPLETION_CRITERIA_TYPES as $type) {
00099         $class = 'completion_criteria_'.$type;
00100         $criterion = new $class();
00101         $criterion->update_config($data);
00102     }
00103 
00104     // Handle aggregation methods
00105     // Overall aggregation
00106     $aggregation = new completion_aggregation();
00107     $aggregation->course = $data->id;
00108     $aggregation->criteriatype = null;
00109     $aggregation->setMethod($data->overall_aggregation);
00110     $aggregation->insert();
00111 
00112     // Activity aggregation
00113     if (empty($data->activity_aggregation)) {
00114         $data->activity_aggregation = 0;
00115     }
00116 
00117     $aggregation = new completion_aggregation();
00118     $aggregation->course = $data->id;
00119     $aggregation->criteriatype = COMPLETION_CRITERIA_TYPE_ACTIVITY;
00120     $aggregation->setMethod($data->activity_aggregation);
00121     $aggregation->insert();
00122 
00123     // Course aggregation
00124     if (empty($data->course_aggregation)) {
00125         $data->course_aggregation = 0;
00126     }
00127 
00128     $aggregation = new completion_aggregation();
00129     $aggregation->course = $data->id;
00130     $aggregation->criteriatype = COMPLETION_CRITERIA_TYPE_COURSE;
00131     $aggregation->setMethod($data->course_aggregation);
00132     $aggregation->insert();
00133 
00134     // Role aggregation
00135     if (empty($data->role_aggregation)) {
00136         $data->role_aggregation = 0;
00137     }
00138 
00139     $aggregation = new completion_aggregation();
00140     $aggregation->course = $data->id;
00141     $aggregation->criteriatype = COMPLETION_CRITERIA_TYPE_ROLE;
00142     $aggregation->setMethod($data->role_aggregation);
00143     $aggregation->insert();
00144 
00145     // Update course total passing grade
00146     if (!empty($data->criteria_grade)) {
00147         if ($grade_item = grade_category::fetch_course_category($course->id)->grade_item) {
00148                 $grade_item->gradepass = $data->criteria_grade_value;
00149                 if (method_exists($grade_item, 'update')) {
00150                 $grade_item->update('course/completion.php');
00151                 }
00152         }
00153     }
00154 
00155     redirect($CFG->wwwroot."/course/view.php?id=$course->id", get_string('changessaved'));
00156 }
00157 
00158 
00160 
00161 
00162 echo $OUTPUT->header();
00163 echo $OUTPUT->heading($streditcompletionsettings);
00164 
00165 $form->display();
00166 
00167 echo $OUTPUT->footer();
 All Data Structures Namespaces Files Functions Variables Enumerations