Este post mostra código PHP para efetuar cadastro de usuário na Plataforma Moodle, 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 usuário. O retorno é um array com dados de username e id gerado para cada usuário.
//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']="core_user_create_users"; $user1=array(); $user1['username'] = 'loguinsuer1'; $user1['password'] = 'senhauser1'; $user1['firstname'] = 'Nome user1'; $user1['lastname'] = 'Sobrenome user1'; $user1['email'] = 'Email user1'; $user1['auth'] = 'manual'; //nome do plugin de autenticação $user2=array(); $user2['username'] = 'loguinsuer2'; $user2['password'] = 'senhauser2'; $user2['firstname'] = 'Nome user2'; $user2['lastname'] = 'Sobrenome user2'; $user2['email'] = 'Email user2'; $user2['auth'] = 'manual'; //nome do plugin de autenticação //adicionar lista de usuário nos parâmetros $param['users'][0]=$user1; $param['users'][1]=$user2; //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 {
username string //Username policy is defined in Moodle security config.
password string Opcional //Plain text password consisting of any characters
createpassword int Opcional //True if password should be created and mailed to user.
firstname string //The first name(s) of the user
lastname string //The family name of the user
email string //A valid and unique email address
auth string Padrão para "manual" //Auth plugins include manual, ldap, etc
idnumber string Padrão para "" //An arbitrary ID code number perhaps from the institution
lang string Padrão para "pt_br" //Language code such as "en", must exist on server
calendartype string Padrão para "gregorian" //Calendar type such as "gregorian", must exist on server
theme string Opcional //Theme name such as "standard", must exist on server
timezone string Opcional //Timezone code such as Australia/Perth, or 99 for default
mailformat int Opcional //Mail format code is 0 for plain text, 1 for HTML etc
description string Opcional //User profile description, no HTML
city string Opcional //Home city of the user
country string Opcional //Home country code of the user, such as AU or CZ
firstnamephonetic string Opcional //The first name(s) phonetically of the user
lastnamephonetic string Opcional //The family name phonetically of the user
middlename string Opcional //The middle name of the user
alternatename string Opcional //The alternate name of the user
preferences Opcional //User preferences
list of (
object {
type string //The name of the preference
value string //The value of the preference
}
)customfields Opcional //User custom fields (also known as user profil fields)
list of (
object {
type string //The name of the custom field
value string //The value of the custom field
}
)}
)