File: /home/eblama1/sms.karnplayinland.com/plugins/Moodle/Custom/CreateParents.php
<?php
//FJ Moodle integrator
//core_user_create_users function
function core_user_create_users_object()
{
//first, gather the necessary variables
global $id, $username, $password, $locale, $user, $students;
//then, convert variables for the Moodle object:
/*
list of (
object {
username string //Username policy is defined in Moodle security config. Must be lowercase.
password string //Plain text password consisting of any characters
//note Francois: the password must respect the Moodle policy: 8 chars min., 1 number, 1 min, 1 maj and 1 non-alphanum at least.
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 Default to "manual" //Auth plugins include manual, ldap, imap, etc
idnumber string Default to "" //An arbitrary ID code number perhaps from the institution
lang string Default to "fr" //Language code such as "en", must exist on server
theme string Optional //Theme name such as "standard", must exist on server
timezone string Optional //Timezone code such as Australia/Perth, or 99 for default
mailformat int Optional //Mail format code is 0 for plain text, 1 for HTML etc
description string Optional //User profile description, no HTML
city string Optional //Home city of the user
country string Optional //Home country code of the user, such as AU or CZ
preferences Optional //User preferences
list of (
object {
type string //The name of the preference
value string //The value of the preference
}
)customfields Optional //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
}
)}
)
*/
$username = mb_strtolower( $username );
$password = $password;
$firstname = $user['FIRST_NAME'];
$lastname = $user['LAST_NAME'];
$email = $students[1]['EMAIL'];
$auth = 'manual';
$idnumber = (string) $id;
$users = [
[
'username' => $username,
'password' => $password,
'firstname' => $firstname,
'lastname' => $lastname,
'email' => $email,
'auth' => $auth,
'idnumber' => $idnumber,
],
];
if ( MOODLE_API_PROTOCOL === 'rest' )
{
return [ 'users' => $users ];
}
return [ $users ];
}
/**
* @param $response
*/
function core_user_create_users_response( $response )
{
//first, gather the necessary variables
global $id;
//then, save the ID in the moodlexrosario cross-reference table:
/*
Array
(
[0] =>
Array
(
[id] => int
[username] => string
)
)
*/
if ( empty( $response[0]['id'] ) )
{
// Fix SQL error when no ID returned.
return null;
}
DBQuery( "INSERT INTO moodlexrosario (" . DBEscapeIdentifier( 'column' ) . ", rosario_id, moodle_id)
VALUES('staff_id', '" . $id . "', " . $response[0]['id'] . ")" );
return null;
}
//core_role_assign_roles function
function core_role_assign_roles_object()
{
//first, gather the necessary variables
global $id, $student;
//then, convert variables for the Moodle object:
/*
list of (
object {
roleid int //Role to assign to the user
userid int //The user that is going to be assigned
contextid int Optional //The context to assign the user role in
contextlevel string Optional //The context level to assign the user role in
(block, course, coursecat, system, user, module)
instanceid int Optional //The Instance id of item where the role needs to be assigned
}
)*/
// Gather the Moodle user ID.
$userid = MoodleXRosarioGet( 'staff_id', $id );
if ( empty( $userid ) )
{
return null;
}
// Gather the Moodle student ID.
$studentid = MoodleXRosarioGet( 'student_id', $student['STUDENT_ID'] );
if ( empty( $studentid ) )
{
return null;
}
$contextlevel = 'user';
$roleid = MOODLE_PARENT_ROLE_ID;
$instanceid = $studentid;
$assignments = [
[
'roleid' => $roleid,
'userid' => $userid,
'contextlevel' => $contextlevel,
'instanceid' => $instanceid,
],
];
if ( MOODLE_API_PROTOCOL === 'rest' )
{
return [ 'assignments' => $assignments ];
}
return [ $assignments ];
}
/**
* @param $response
*/
function core_role_assign_roles_response( $response )
{
return null;
}