Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-28607

External function to delete a course

    XMLWordPrintable

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 2.0.2
    • None
    • Course
    • Any
    • MOODLE_20_STABLE

    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

          Activity

            People

              poltawski Dan Poltawski
              cbaker118 Craig Baker
              Amaia Anabitarte, Carlos Escobedo, Laurent David, Sabina Abellan, Sara Arjona (@sarjona)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: