From: jerome Date: Thu, 2 Apr 2009 06:59:14 +0000 (+0000) Subject: web service MDL-12886 merged Pigui's Team work on course external file + some refactoring X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=a0c30e1b00f630370bf6bf179b258df62a8df3ef;p=moodle.git web service MDL-12886 merged Pigui's Team work on course external file + some refactoring --- diff --git a/course/external.php b/course/external.php index 87a6ef3b9c..df7a2c15ed 100644 --- a/course/external.php +++ b/course/external.php @@ -34,19 +34,52 @@ final class course_external { /** * Retrieve courses * @param array|struct $params - need to be define as struct for XMLRPC - * @subparam integer $params:search->id - the id to search - * @subparam string $params:search->idnumber - the idnumber to search - * @subparam string $params:search->shortname - the shortname to search - * @return object $return - * @subparam integer $return:course->id - * @subparam string $return:course->category - * @subparam string $return:course->summary - * @subparam string $return:course->format - * @subparam string $return:course->numsections - * @subparam string $return:course->startdate - * @subparam string $return:course->fullname - * @subparam string $return:course->shortname - * @subparam string $return:course->idnumber + * @subparam integer $params:search->id - the id to search + * @subparam string $params:search->idnumber - the idnumber to search + * @subparam string $params:search->shortname - the shortname to search + * @return object $return + * @subreturn integer $return:course->id + * @subreturn string $return:course->idnumber + * @subreturn string $return:course->shortname + * @subreturn integer $return:course->category + * @subreturn string $return:course->fullname + * @subreturn string $return:course->summary + * @subreturn string $return:course->format + * @subreturn integer $return:course->startdate + * @subreturn integer $return:course->sortorder + * @subreturn integer $return:course->showgrades + * @subreturn string $return:course->modinfo + * @subreturn string $return:course->newsitems + * @subreturn string $return:course->guest + * @subreturn integer $return:course->metacourse + * @subreturn string $return:course->password + * @subreturn integer $return:course->enrolperiod + * @subreturn integer $return:course->defaultrole + * @subreturn integer $return:course->enrollable + * @subreturn integer $return:course->numsections + * @subreturn integer $return:course->expirynotify + * @subreturn integer $return:course->notifystudents + * @subreturn integer $return:course->expirythreshold + * @subreturn integer $return:course->marker + * @subreturn integer $return:course->maxbytes + * @subreturn integer $return:course->showreports + * @subreturn integer $return:course->visible + * @subreturn integer $return:course->hiddensections + * @subreturn integer $return:course->groupmode + * @subreturn integer $return:course->groupmodeforce + * @subreturn integer $return:course->defaultgroupingid + * @subreturn string $return:course->lang + * @subreturn string $return:course->theme + * @subreturn string $return:course->cost + * @subreturn string $return:course->currency + * @subreturn integer $return:course->timecreated + * @subreturn integer $return:course->timemodified + * @subreturn integer $return:course->requested + * @subreturn integer $return:course->restrictmodules + * @subreturn integer $return:course->enrolstartdate + * @subreturn integer $return:course->enrolenddate + * @subreturn string $return:course->enrol + * @subreturn integer $return:course->enablecompletion */ static function get_courses($params) { global $USER; @@ -76,6 +109,40 @@ final class course_external { $returnedcourse->numsections = $course->numsections; $returnedcourse->startdate = $course->startdate; $returnedcourse->category = $course->category; + $returnedcourse->sortorder = $course->sortorder; + $returnedcourse->password = $course->password ; + $returnedcourse->showgrades = $course->showgrades; + $returnedcourse->modinfo = $course->modinfo; + $returnedcourse->newsitems = $course->newsitems; + $returnedcourse->guest = $course->guest; + $returnedcourse->enrolperiod = $course->enrolperiod; + $returnedcourse->marker = $course->marker; + $returnedcourse->maxbytes = $course->maxbytes; + $returnedcourse->showreports = $course->showreports; + $returnedcourse->visible = $course->visible; + $returnedcourse->hiddensections = $course->hiddensections; + $returnedcourse->groupmode = $course->groupmode; + $returnedcourse->groupmodeforce = $course->groupmodeforce; + $returnedcourse->defaultgroupingid = $course->defaultgroupingid; + $returnedcourse->lang = $course->lang; + $returnedcourse->theme = $course->theme; + $returnedcourse->cost = $course->cost; + $returnedcourse->currency = $course->currency; + $returnedcourse->timecreated = $course->timecreated; + $returnedcourse->timemodified = $course->timemodified; + $returnedcourse->metacourse = $course->metacourse; + $returnedcourse->requested = $course->requested; + $returnedcourse->restrictmodules = $course->restrictmodules; + $returnedcourse->expirynotify = $course->expirynotify; + $returnedcourse->expirythreshold = $course->expirythreshold; + $returnedcourse->notifystudents = $course->notifystudents; + $returnedcourse->enrollable = $course->enrollable; + $returnedcourse->enrolstartdate = $course->enrolstartdate; + $returnedcourse->enrolenddate = $course->enrolenddate; + $returnedcourse->enrol = $course->enrol; + $returnedcourse->defaultrole = $course->defaultrole; + $returnedcourse->enablecompletion = $course->enablecompletion; + $courses[] = $returnedcourse; } } @@ -86,17 +153,50 @@ final class course_external { } } - /** + /** * Create multiple courses * @param array|struct $params - need to be define as struct for XMLRPC - * @subparam integer $params:course->category - * @subparam string $params:course->summary - * @subparam string $params:course->format - * @subparam string $params:course->numsections - * @subparam string $params:course->startdate - * @subparam string $params:course->fullname - * @subparam string $params:course->shortname - * @subparam string $params:course->idnumber + * @subparam string $params:course->idnumber + * @subparam string $params:course->shortname + * @subparam integer $params:course->category + * @subparam string $params:course->fullname + * @subparam string $params:course->summary + * @subparam string $params:course->format + * @subparam integer $params:course->startdate + * @subparam integer $params:course->sortorder + * @subparam integer $params:course->showgrades + * @subparam string $params:course->modinfo + * @subparam string $params:course->newsitems + * @subparam string $params:course->guest + * @subparam integer $params:course->metacourse + * @subparam string $params:course->password + * @subparam integer $params:course->enrolperiod + * @subparam integer $params:course->defaultrole + * @subparam integer $params:course->enrollable + * @subparam integer $params:course->numsections + * @subparam integer $params:course->expirynotify + * @subparam integer $params:course->notifystudents + * @subparam integer $params:course->expirythreshold + * @subparam integer $params:course->marker + * @subparam integer $params:course->maxbytes + * @subparam integer $params:course->showreports + * @subparam integer $params:course->visible + * @subparam integer $params:course->hiddensections + * @subparam integer $params:course->groupmode + * @subparam integer $params:course->groupmodeforce + * @subparam integer $params:course->defaultgroupingid + * @subparam string $params:course->lang + * @subparam string $params:course->theme + * @subparam string $params:course->cost + * @subparam string $params:course->currency + * @subparam integer $params:course->timecreated + * @subparam integer $params:course->timemodified + * @subparam integer $params:course->requested + * @subparam integer $params:course->restrictmodules + * @subparam integer $params:course->enrolstartdate + * @subparam integer $params:course->enrolenddate + * @subparam string $params:course->enrol + * @subparam integer $params:course->enablecompletion * @return array $return ids of new courses * @subreturn integer $return:id course id */ @@ -107,10 +207,6 @@ final class course_external { foreach ($params as $courseparams) { $course = new stdClass(); - if (array_key_exists('category', $courseparams)) { - $course->category = clean_param($courseparams['category'], PARAM_INT); - } - if (array_key_exists('idnumber', $courseparams)) { $course->idnumber = clean_param($courseparams['idnumber'], PARAM_ALPHANUMEXT); } @@ -119,24 +215,162 @@ final class course_external { $course->shortname = clean_param($courseparams['shortname'], PARAM_ALPHANUMEXT); } - if (array_key_exists('format', $courseparams)) { - $course->format = clean_param($courseparams['format'], PARAM_ALPHANUMEXT); + if (array_key_exists('category', $courseparams)) { + $course->category = clean_param($courseparams['category'], PARAM_INT); } if (array_key_exists('fullname', $courseparams)) { - $course->fullname = clean_param($courseparams['fullname'], PARAM_ALPHANUMEXT); + $course->fullname = clean_param($courseparams['fullname'], PARAM_TEXT); } if (array_key_exists('summary', $courseparams)) { - $course->summary = clean_param($courseparams['summary'], PARAM_ALPHANUMEXT); + $course->summary = clean_param($courseparams['summary'], PARAM_TEXT); } - if (array_key_exists('numsections', $courseparams)) { - $course->numsections = clean_param($courseparams['numsections'], PARAM_ALPHANUMEXT); + if (array_key_exists('format', $courseparams)) { + $course->format = clean_param($courseparams['format'], PARAM_ALPHANUMEXT); } if (array_key_exists('startdate', $courseparams)) { - $course->startdate = clean_param($courseparams['startdate'], PARAM_ALPHANUMEXT); + $course->startdate = clean_param($courseparams['startdate'], PARAM_INT); + } + + + if (array_key_exists('sortorder', $courseparams)) { + $course->sortorder = clean_param($courseparams['sortorder'], PARAM_INT); + } + + if (array_key_exists('showgrades', $courseparams)) { + $course->showgrades = clean_param($courseparams['showgrades'], PARAM_INT); + } + + if (array_key_exists('modinfo', $courseparams)) { + $course->modinfo = clean_param($courseparams['modinfo'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('newsitems', $courseparams)) { + $course->newsitems = clean_param($courseparams['newsitems'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('guest', $courseparams)) { + $course->guest = clean_param($courseparams['guest'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('metacourse', $courseparams)) { + $course->metacourse = clean_param($courseparams['metacourse'], PARAM_INT); + } + + if (array_key_exists('password', $courseparams)) { + $course->password = clean_param($courseparams['password'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('enrolperiod', $courseparams)) { + $course->enrolperiod = clean_param($courseparams['enrolperiod'], PARAM_INT); + } + + if (array_key_exists('defaultrole', $courseparams)) { + $course->defaultrole = clean_param($courseparams['defaultrole'], PARAM_INT); + } + + if (array_key_exists('enrollable', $courseparams)) { + $course->enrollable = clean_param($courseparams['enrollable'], PARAM_INT); + } + + if (array_key_exists('numsections', $courseparams)) { + $course->numsections = clean_param($courseparams['numsections'], PARAM_INT); + } + + if (array_key_exists('expirynotify', $courseparams)) { + $course->expirynotify = clean_param($courseparams['expirynotify'], PARAM_INT); + } + + if (array_key_exists('notifystudents', $courseparams)) { + $course->notifystudents = clean_param($courseparams['notifystudents'], PARAM_INT); + } + + if (array_key_exists('expirythreshold', $courseparams)) { + $course->expirythreshold = clean_param($courseparams['expirythreshold'], PARAM_INT); + } + + if (array_key_exists('marker', $courseparams)) { + $course->marker = clean_param($courseparams['marker'], PARAM_INT); + } + + if (array_key_exists('maxbytes', $courseparams)) { + $course->maxbytes = clean_param($courseparams['maxbytes'], PARAM_INT); + } + + if (array_key_exists('showreports', $courseparams)) { + $course->showreports = clean_param($courseparams['showreports'], PARAM_INT); + } + + if (array_key_exists('visible', $courseparams)) { + $course->visible = clean_param($courseparams['visible'], PARAM_INT); + } + + if (array_key_exists('hiddensections', $courseparams)) { + $course->hiddensections = clean_param($courseparams['hiddensections'], PARAM_INT); + } + + + if (array_key_exists('groupmode', $courseparams)) { + $course->groupmode = clean_param($courseparams['groupmode'], PARAM_INT); + } + + if (array_key_exists('groupmodeforce', $courseparams)) { + $course->groupmodeforce = clean_param($courseparams['groupmodeforce'], PARAM_INT); + } + + if (array_key_exists('defaultgroupingid', $courseparams)) { + $course->defaultgroupingid = clean_param($courseparams['defaultgroupingid'], PARAM_INT); + } + + if (array_key_exists('lang', $courseparams)) { + $course->lang = clean_param($courseparams['lang'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('theme', $courseparams)) { + $course->theme = clean_param($courseparams['theme'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('cost', $courseparams)) { + $course->cost = clean_param($courseparams['cost'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('currency', $courseparams)) { + $course->currency = clean_param($courseparams['currency'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('timecreated', $courseparams)) { + $course->timecreated = clean_param($courseparams['timecreated'], PARAM_INT); + } + + if (array_key_exists('timemodified', $courseparams)) { + $course->timemodified = clean_param($courseparams['timemodified'], PARAM_INT); + } + + if (array_key_exists('requested', $courseparams)) { + $course->requested = clean_param($courseparams['requested'], PARAM_INT); + } + + if (array_key_exists('restrictmodules', $courseparams)) { + $course->restrictmodules = clean_param($courseparams['restrictmodules'], PARAM_INT); + } + + if (array_key_exists('enrolstartdate', $courseparams)) { + $course->enrolstartdate = clean_param($courseparams['enrolstartdate'], PARAM_INT); + } + + if (array_key_exists('enrolenddate', $courseparams)) { + $course->enrolenddate = clean_param($courseparams['enrolenddate'], PARAM_INT); + } + + if (array_key_exists('enrol', $courseparams)) { + $course->enrol = clean_param($courseparams['enrol'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('enablecompletion', $courseparams)) { + $course->enablecompletion = clean_param($courseparams['enablecompletion'], PARAM_INT); } $courses[] = create_course($course); @@ -198,14 +432,48 @@ final class course_external { * Update some courses information * @global object $DB * @param array|struct $params - need to be define as struct for XMLRPC - * @subparam integer $params:course->category - * @subparam string $params:course->summary - * @subparam string $params:course->format - * @subparam string $params:course->numsections - * @subparam string $params:course->startdate - * @subparam string $params:course->fullname - * @subparam string $params:course->shortname - * @subparam string $params:course->idnumber + * @subparam integer $params:course->id + * @subparam string $params:course->idnumber + * @subparam string $params:course->shortname + * @subparam integer $params:course->category + * @subparam string $params:course->fullname + * @subparam string $params:course->summary + * @subparam string $params:course->format + * @subparam integer $params:course->startdate + * @subparam integer $params:course->sortorder + * @subparam integer $params:course->showgrades + * @subparam string $params:course->modinfo + * @subparam string $params:course->newsitems + * @subparam string $params:course->guest + * @subparam integer $params:course->metacourse + * @subparam string $params:course->password + * @subparam integer $params:course->enrolperiod + * @subparam integer $params:course->defaultrole + * @subparam integer $params:course->enrollable + * @subparam integer $params:course->numsections + * @subparam integer $params:course->expirynotify + * @subparam integer $params:course->notifystudents + * @subparam integer $params:course->expirythreshold + * @subparam integer $params:course->marker + * @subparam integer $params:course->maxbytes + * @subparam integer $params:course->showreports + * @subparam integer $params:course->visible + * @subparam integer $params:course->hiddensections + * @subparam integer $params:course->groupmode + * @subparam integer $params:course->groupmodeforce + * @subparam integer $params:course->defaultgroupingid + * @subparam string $params:course->lang + * @subparam string $params:course->theme + * @subparam string $params:course->cost + * @subparam string $params:course->currency + * @subparam integer $params:course->timecreated + * @subparam integer $params:course->timemodified + * @subparam integer $params:course->requested + * @subparam integer $params:course->restrictmodules + * @subparam integer $params:course->enrolstartdate + * @subparam integer $params:course->enrolenddate + * @subparam string $params:course->enrol + * @subparam integer $params:course->enablecompletion * @return boolean result true if success */ static function update_courses($params) { @@ -217,20 +485,17 @@ final class course_external { foreach ($params as $courseparams) { $course = new stdClass(); - if (array_key_exists('category', $courseparams)) { - $course->category = clean_param($courseparams['category'], PARAM_INT); - } if (array_key_exists('idnumber', $courseparams)) { - $course->idnumber = clean_param($courseparams['idnumber'], PARAM_ALPHANUMEXT); + $course->idnumber = clean_param($courseparams['idnumber'], PARAM_ALPHANUM); } if (array_key_exists('shortname', $courseparams)) { $course->shortname = clean_param($courseparams['shortname'], PARAM_ALPHANUMEXT); } - if (array_key_exists('format', $courseparams)) { - $course->format = clean_param($courseparams['format'], PARAM_ALPHANUMEXT); + if (array_key_exists('category', $courseparams)) { + $course->category = clean_param($courseparams['category'], PARAM_INT); } if (array_key_exists('fullname', $courseparams)) { @@ -241,12 +506,149 @@ final class course_external { $course->summary = clean_param($courseparams['summary'], PARAM_TEXT); } - if (array_key_exists('numsections', $courseparams)) { - $course->numsections = clean_param($courseparams['numsections'], PARAM_ALPHANUMEXT); + if (array_key_exists('format', $courseparams)) { + $course->format = clean_param($courseparams['format'], PARAM_ALPHANUMEXT); } if (array_key_exists('startdate', $courseparams)) { - $course->startdate = clean_param($courseparams['startdate'], PARAM_ALPHANUMEXT); + $course->startdate = clean_param($courseparams['startdate'], PARAM_INT); + } + + + if (array_key_exists('sortorder', $courseparams)) { + $course->sortorder = clean_param($courseparams['sortorder'], PARAM_INT); + } + + if (array_key_exists('showgrades', $courseparams)) { + $course->showgrades = clean_param($courseparams['showgrades'], PARAM_INT); + } + + if (array_key_exists('modinfo', $courseparams)) { + $course->modinfo = clean_param($courseparams['modinfo'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('newsitems', $courseparams)) { + $course->newsitems = clean_param($courseparams['newsitems'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('guest', $courseparams)) { + $course->guest = clean_param($courseparams['guest'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('metacourse', $courseparams)) { + $course->metacourse = clean_param($courseparams['metacourse'], PARAM_INT); + } + + if (array_key_exists('password', $courseparams)) { + $course->password = clean_param($courseparams['password'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('enrolperiod', $courseparams)) { + $course->enrolperiod = clean_param($courseparams['enrolperiod'], PARAM_INT); + } + + if (array_key_exists('defaultrole', $courseparams)) { + $course->defaultrole = clean_param($courseparams['defaultrole'], PARAM_INT); + } + + if (array_key_exists('enrollable', $courseparams)) { + $course->enrollable = clean_param($courseparams['enrollable'], PARAM_INT); + } + + if (array_key_exists('numsections', $courseparams)) { + $course->numsections = clean_param($courseparams['numsections'], PARAM_INT); + } + + if (array_key_exists('expirynotify', $courseparams)) { + $course->expirynotify = clean_param($courseparams['expirynotify'], PARAM_INT); + } + + if (array_key_exists('notifystudents', $courseparams)) { + $course->notifystudents = clean_param($courseparams['notifystudents'], PARAM_INT); + } + + if (array_key_exists('expirythreshold', $courseparams)) { + $course->expirythreshold = clean_param($courseparams['expirythreshold'], PARAM_INT); + } + + if (array_key_exists('marker', $courseparams)) { + $course->marker = clean_param($courseparams['marker'], PARAM_INT); + } + + if (array_key_exists('maxbytes', $courseparams)) { + $course->maxbytes = clean_param($courseparams['maxbytes'], PARAM_INT); + } + + if (array_key_exists('showreports', $courseparams)) { + $course->showreports = clean_param($courseparams['showreports'], PARAM_INT); + } + + if (array_key_exists('visible', $courseparams)) { + $course->visible = clean_param($courseparams['visible'], PARAM_INT); + } + + if (array_key_exists('hiddensections', $courseparams)) { + $course->hiddensections = clean_param($courseparams['hiddensections'], PARAM_INT); + } + + if (array_key_exists('groupmode', $courseparams)) { + $course->groupmode = clean_param($courseparams['groupmode'], PARAM_INT); + } + + if (array_key_exists('groupmodeforce', $courseparams)) { + $course->groupmodeforce = clean_param($courseparams['groupmodeforce'], PARAM_INT); + } + + if (array_key_exists('defaultgroupingid', $courseparams)) { + $course->defaultgroupingid = clean_param($courseparams['defaultgroupingid'], PARAM_INT); + } + + if (array_key_exists('lang', $courseparams)) { + $course->lang = clean_param($courseparams['lang'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('theme', $courseparams)) { + $course->theme = clean_param($courseparams['theme'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('cost', $courseparams)) { + $course->cost = clean_param($courseparams['cost'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('currency', $courseparams)) { + $course->currency = clean_param($courseparams['currency'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('timecreated', $courseparams)) { + $course->timecreated = clean_param($courseparams['timecreated'], PARAM_INT); + } + + if (array_key_exists('timemodified', $courseparams)) { + $course->timemodified = clean_param($courseparams['timemodified'], PARAM_INT); + } + + if (array_key_exists('requested', $courseparams)) { + $course->requested = clean_param($courseparams['requested'], PARAM_INT); + } + + if (array_key_exists('restrictmodules', $courseparams)) { + $course->restrictmodules = clean_param($courseparams['restrictmodules'], PARAM_INT); + } + + if (array_key_exists('enrolstartdate', $courseparams)) { + $course->enrolstartdate = clean_param($courseparams['enrolstartdate'], PARAM_INT); + } + + if (array_key_exists('enrolenddate', $courseparams)) { + $course->enrolenddate = clean_param($courseparams['enrolenddate'], PARAM_INT); + } + + if (array_key_exists('enrol', $courseparams)) { + $course->enrol = clean_param($courseparams['enrol'], PARAM_ALPHANUMEXT); + } + + if (array_key_exists('enablecompletion', $courseparams)) { + $course->enablecompletion = clean_param($courseparams['enablecompletion'], PARAM_INT); } if (array_key_exists('id', $courseparams)) { @@ -266,6 +668,81 @@ final class course_external { } + /** + * Get course modules + * @global object $DB + * @param array|struct $params - need to be define as struct for XMLRPC + * @subparam string $params:course->id + * @return array $return course modules + * @subreturn string $return:id module id + * @subreturn string $return:name module name + * @subreturn string $return:type module type + */ + static function get_course_modules($params, $type=null) { + global $DB; + if (has_capability('moodle/course:view', get_context_instance(CONTEXT_SYSTEM))) { + $modules = array(); + foreach ($params as $courseparams) { + if (array_key_exists('id', $courseparams)) { + $id = clean_param($courseparams['id'], PARAM_INT); + } + + $activities = get_array_of_activities($id); + + foreach ($activities as $activity) { + if (empty($type)) { + $module = array('id' => $activity->id, 'courseid' => $id, 'name' => $activity->name, 'type' => $activity->mod); + $modules[] = $module; + } + else if ($type=="activities") { + if ($activity->mod != "resource" && $activity->mod != "label") { + $module = array('id' => $activity->id, 'courseid' => $id, 'name' => $activity->name, 'type' => $activity->mod); + $modules[] = $module; + } + } + else if ($type=="resources") { + if ($activity->mod == "resource" || $activity->mod == "label") { + $module = array('id' => $activity->id, 'courseid' => $id, 'resource' => $activity->name, 'type' => $activity->mod); + $modules[] = $module; + } + } + } + } + return $modules; + } + else { + throw new moodle_exception('wscouldnotgetcoursemodulesnopermission'); + } + } + + /** + * Get course activities + * @global object $DB + * @param array|struct $params - need to be define as struct for XMLRPC + * @subparam string $params:course->id + * @return array $return course activities + * @subreturn string $return:id activity id + * @subreturn string $return:name activity name + * @subreturn string $return:type activity type + */ + static function get_course_activities($params) { + course_external::get_course_modules($params, "activities"); + } + + /** + * Get course resources + * @global object $DB + * @param array|struct $params - need to be define as struct for XMLRPC + * @subparam string $params:course->id + * @return array $return course resources + * @subreturn integer $return:id resource id + * @subreturn string $return:name resource name + * @subreturn string $return:type resource type + */ + static function get_course_resources($params) { + course_external::get_course_modules($params, "resources"); + } + } ?> diff --git a/course/lib.php b/course/lib.php index 0ac2e622c6..cb1d073114 100644 --- a/course/lib.php +++ b/course/lib.php @@ -1007,9 +1007,16 @@ function get_array_of_activities($courseid) { require_once($CFG->libdir.'/conditionlib.php'); } + $course = $DB->get_record('course', array('id'=>$courseid)); + + if (empty($course)) { + throw new moodle_exception('courseidnotfound'); + } + $mod = array(); - if (!$rawmods = get_course_mods($courseid)) { + $rawmods = get_course_mods($courseid); + if (empty($rawmods)) { return $mod; // always return array } diff --git a/course/simpletest/testexternal.php b/course/simpletest/testexternal.php index e9fd1d1763..9d6adb8e4e 100644 --- a/course/simpletest/testexternal.php +++ b/course/simpletest/testexternal.php @@ -245,7 +245,7 @@ class course_external_test extends UnitTestCase { $course['startdate'] = mktime(); $course['fullname'] = "Test course for Course 2 update"; $course['shortname'] = "TestCourseForCourse2update"; - $course['idnumber'] = 8005007; + $course['idnumber'] = 8005008; $params[] = $course; $result = course_external::update_courses($params); $this->assertEqual($result, true); @@ -277,13 +277,56 @@ class course_external_test extends UnitTestCase { } function test_get_course_modules() { - //create two different modules -// $mod = new stdClass(); -// $mod->course = $this->course->id; -// $mod->module = 6; -// $mod->instance = 1; -// $mod->section = 1; - + global $DB; + + + //add two chat activities to the course + $chat = new stdClass(); + $chat->course = $this->course->id; + $chat->name = "chat to delete"; + $chat->intro = "introduction"; + $chat->keepdays = 0; + $chat->studentlogs = 0; + $chat->chattime = 0; + $chat->schedule = 0; + $chat->timemodified = 0 ; + $chatid = chat_add_instance($chat); + $chat->name = "chat to delete 2"; + $chat->intro = "introduction 2"; + $chatid2 = chat_add_instance($chat); + + $coursemoduleid = $DB->insert_record('course_modules',array('course' => $this->course->id, + 'module' => 2, + 'instance' => $chatid, + 'section' =>0)); + $coursemoduleid2 = $DB->insert_record('course_modules',array('course' => $this->course->id, + 'module' => 2, + 'instance' => $chatid2, + 'section' =>0)); + $section = $DB->get_record('course_sections',array('course' => $this->course->id)); + $section->sequence = $coursemoduleid.",".$coursemoduleid2; + $DB->update_record('course_sections', $section); + + + $params = array(); + $course = array(); + $course["id"] = $this->course->id; + $params[] = $course; + $activities = course_external::get_course_modules($params); + + $activities = course_external::get_course_activities($params); + varlog($activities); + chat_delete_instance($chatid); + chat_delete_instance($chatid2); + $DB->delete_records('course_modules',array('course' => $this->course->id, + 'module' => 2, + 'instance' => $chatid, + 'section' =>0)); + $DB->delete_records('course_modules',array('course' => $this->course->id, + 'module' => 2, + 'instance' => $chatid2, + 'section' =>0)); + } */ }