Este post mostra código PHP para efetuar matrícula aluno, tutor ou qualquer outro participantes no curso, usando função webservice do Moodle.
Para usar este código, instale no Moodle o plugin restjonson, protocolo de comunicação json para webservice.
Segue código do cliente PHP. Nesse código você pode cadastrar uma ou mais participantes. O código a seguir usa função que realiza inscrição pelo método manual. Se inscrição for efetuado com sucesso, retorna vazio.
//url de acesso $remotemoodle="xxxxxxxxxxx"; //MOODLE_URL - endereço do Moodle $url=$remotemoodle . '/webservice/restjson/server.php'; //parametros a ser passado ao webservice $param=array(); $param['wstoken']="xxxxxx"; //token de acesso ao webservice $param['wsfunction']="enrol_manual_enrol_users"; $enrol1=array(); $enrol1['roleid'] = 5; //Altere o parâmetro para id do perfil $enrol1['userid'] = 10; //Altere o parâmetro para id do usuário $enrol1['courseid'] =2; // Altere o parâmetro para id do curso $enrol1['timestart'] =time(); // Altere o parâmetro da data de início da inscrição $enrol2=array(); $enrol2['roleid'] = 4; //Altere o parâmetro para id do perfil $enrol2['userid'] = 11; //Altere o parâmetro para id do usuário $enrol2['courseid'] =3; // Altere o parâmetro para id do curso $enrol2['timestart'] =time(); // Altere o parâmetro da data de início da inscrição $param['enrolments'][0]=$enrol1; $param['enrolments'][1]=$enrol2; //converter array para json $paramjson = json_encode($param); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, $paramjson); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); $result =json_decode($result); //imprimindo resultado print_r($result);
Veja layout da dados que webservice pode receber
Estrutura geral list of ( object { roleid int //Role to assign to the user userid int //The user that is going to be enrolled courseid int //The course to enrol the user role in timestart int Opcional //Timestamp when the enrolment start timeend int Opcional //Timestamp when the enrolment end suspend int Opcional //set to 1 to suspend the enrolment } )