Details
Description
Courses can be created externally, but as far as I can tell there is no function to delete a course through external functions. I've written something that does the job, if you all are interested:
moodleDir/course/externallib.php |
public static function delete_courses_by_id_parameters() {
|
return new external_function_parameters(
|
array(
|
'courseids' => new external_multiple_structure(new external_value(PARAM_INT, 'course ID')),
|
)
|
);
|
}
|
|
public static function delete_courses_by_id($courseids) {
|
global $CFG, $DB, $USER;
|
require_once($CFG->dirroot."/course/lib.php");
|
|
// Ensure the current user is allowed to run this function
|
$context = get_context_instance(CONTEXT_SYSTEM);
|
require_capability('moodle/course:delete', $context);
|
self::validate_context($context);
|
|
$params = self::validate_parameters(self::delete_courses_by_id_parameters(), array('courseids'=>$courseids));
|
|
$transaction = $DB->start_delegated_transaction();
|
|
foreach ($params['courseids'] as $courseid) {
|
$course = $DB->get_record('course', array('id'=>$courseid), '*', MUST_EXIST);
|
delete_course($courseid,false);
|
}
|
|
$transaction->allow_commit();
|
|
return null;
|
}
|
|
/**
|
* Returns description of method result value
|
* @return external_description
|
*/
|
public static function delete_courses_by_id_returns() {
|
return null;
|
}
|
Attachments
Issue Links
- duplicates
-
MDL-13130 core_course_delete_courses
-
- Closed
-