I am trying to integrate Moodle with my student information system. When a course is created in the SIS, I want to pass the data onto Moodle. Here is my code:
function moodle($title,$short_title,$course_sec,$desc,$sDate) { $token = _h(Hooks::get_option('moodle_token')); $domainname = _h(Hooks::get_option('moodle_install_url')); $functionname = 'core_course_create_courses'; $restformat = 'json'; $Moodle_course = new stdClass(); $Moodle_course->fullname = $title; $Moodle_course->shortname = $short_title; $Moodle_course->categoryid = 1; $Moodle_course->idnumber = $course_sec; $Moodle_course->summary = $desc; $Moodle_course->summaryformat = 0; $Moodle_course->format = 'weeks'; $Moodle_course->showgrades = 1; $Moodle_course->newsitems = 0; $Moodle_course->startdate = strtotime($sDate); $Moodle_course->numsections = ''; $Moodle_course->maxbytes = 20971520; $Moodle_course->showreports = 1; $Moodle_course->visible = 1; $Moodle_course->hiddensections = ''; $Moodle_course->groupmode = 1; $Moodle_course->groupmodeforce = 0; $Moodle_course->defaultgroupingid = 0; $Moodle_course->enablecompletion = 1; $Moodle_course->completionnotify = 1; $Moodle_course->lang = 'eng'; $Moodle_course->forcetheme = ''; $Moodle_course->courseformatoptions = ''; $MoodleCourses = array($Moodle_course); $params = array($MoodleCourses); /// REST CALL header('Content-Type: text/plain'); $serverurl = $domainname . '/webservice/rest/server.php'. '?wstoken=' . $token . '&wsfunction='.$functionname; require_once('curl.php'); $curl = new curl; //if rest format == 'xml', then we do not add the param for backward compatibility with Moodle < 2.2 $restformat = ($restformat == 'json')?'&moodlewsrestformat=' . $restformat:''; $resp = $curl->post($serverurl . $restformat, $params); print_r($resp); return $resp; } Hooks::add_action('create_course_section','moodle',10,5); ?>
However, I am getting the following error message, but I am not sure how to resolve it. Any help in the right direction is much appreciated.
{"exception":"invalid_parameter_exception","errorcode":"invalidparameter","message":"Invalid parameter value detected","debuginfo":"Missing required key in single structure: courses"}