Using the EthosCE Web Services feature, users have the ability to update enrollment group course lists via a PUT update call.
Warning!
The list sent in field_enrollment_group_courses, is a complete update of values, it is not additive. For instance, given an enrollment group with 6 courses associated, node ids 101 - 106, if an update is made containing only 3 values, node ids 201 - 203, only the 3 newly send courses will appear under Activities. The original 6 courses will no longer be associated with the Enrollment group, however, they will remain in the system, with all associated learner data.
The PHP/Curl script below will update the the enrollment group course list of node id 27 to the course list of nodes 15, 16, and 17.
Updating a course's title
<?php $domain = 'your-domain.com'; $userpass = 'restws_webservice:restws_webservice'; // Login to the site and request the access token $curl = curl_init('http://' . $domain . '/restws/session/token'); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_USERPWD, $userpass); // Your web service user credentials goes here. curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); $token = curl_exec($curl); // The token looks like "q71OBx05wtECfjA0KmXf6wiktewrywNhkMZv-OcfyOA%" print_r($token); // Build a course to send, in JSON. The fields and allowed values are available on the full documentation site. $course_list = array( "field_enrollment_group_courses" => array( array('id' => 15), array('id' => 16), array('id' => 17), ), ); $enrollment_group_nid = 3112; $json = json_encode($course_list); $curl = curl_init('http://' . $domain . '/node/' . $enrollment_group_nid); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_USERPWD, $userpass); //Your credentials go here curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); curl_setopt($curl, CURLOPT_POSTFIELDS, $json); curl_setopt($curl, CURLOPT_HTTPHEADER, array("X-CSRF-Token: $token", "Content-Type: application/json")); $http_return = curl_exec($curl); $response = json_decode($http_return); print_r($response);