var $log;
-/*
+/**
* For the given user, let's go out and look in an external database
* for an authoritative list of enrolments, and then adjust the
* local Moodle assignments to match.
*/
function setup_enrolments(&$user) {
- global $CFG;
+ global $CFG, $DB;
// NOTE: if $this->enrol_connect() succeeds you MUST remember to call
// $this->enrol_disconnect() as it is doing some nasty vodoo with $CFG->prefix
// we execute the below code for every role type. Otherwise we just
// execute it once with null (hence the dummy array).
$roles = !empty($CFG->enrol_db_remoterolefield) && !empty($CFG->enrol_db_localrolefield)
- ? get_records('role')
+ ? $DB->get_records('role')
: array(null);
//error_log('[ENROL_DB] found ' . count($roles) . ' roles:');
/// Check if a particular role has been forced by the plugin site-wide
/// (if we aren't doing a role-based select)
if (!$have_role && $CFG->enrol_db_defaultcourseroleid) {
- $role = get_record('role', 'id', $CFG->enrol_db_defaultcourseroleid);
+ $role = $DB->get_record('role', array('id'=>$CFG->enrol_db_defaultcourseroleid));
}
/// Whether to fetch the default role on a per-course basis (below) or not.
// We'll use this to see what to add and remove
$existing = $role
- ? get_records_sql("
- SELECT * FROM {$CFG->prefix}role_assignments
- WHERE userid = {$user->id}
- AND roleid = {$role->id}")
- : get_records('role_assignments', 'userid', $user->id);
+ ? $DB->get_records_sql("SELECT *
+ FROM {role_assignments}
+ WHERE userid = ? AND roleid = ?",
+ array($user->id, $role->id))
+ : $DB->get_records('role_assignments', array('userid'=>$user->id));
if (!$existing) {
$existing = array();
//error_log('[ENROL_DB] Found '.count($existing).' existing roles and '.$count.' in external database');
foreach ($courselist as $coursefield) { /// Check the list of courses against existing
- $course = get_record('course', $CFG->enrol_localcoursefield, $coursefield);
+ $course = $DB->get_record('course', array($CFG->enrol_localcoursefield=>$coursefield));
if (!is_object($course)) {
if (empty($CFG->enrol_db_autocreate)) { // autocreation not allowed
if (debugging('',DEBUG_ALL)) {
$course->fullname = $coursefield;
$course->shortname = $coursefield;
if (!($newcourseid = $this->create_course($course, true)
- and $course = get_record( 'course', 'id', $newcourseid))) {
+ and $course = $DB->get_record( 'course', array('id'=>$newcourseid)))) {
error_log( "Creating course $coursefield failed");
continue; // nothing left to do...
}
* used.
*/
function sync_enrolments($role = null) {
- global $CFG;
- global $db;
+ global $CFG, $db, $DB;
error_reporting(E_ALL);
// Connect to the external database
if (!$have_role) {
if (!empty($CFG->enrol_db_defaultcourseroleid)
- and $role = get_record('role', 'id', $CFG->enrol_db_defaultcourseroleid)) {
+ and $role = $DB->get_record('role', array('id'=>$CFG->enrol_db_defaultcourseroleid))) {
echo "=== Using enrol_db_defaultcourseroleid: {$role->id} ({$role->shortname}) ===\n";
} elseif (isset($role)) {
echo "!!! WARNING: Role specified by caller, but no (or invalid) role configuration !!!\n";
return true;
}
- begin_sql();
+ $DB->begin_sql();
$extcourses = array();
while ($extcourse_obj = rs_fetch_next_record($rs)) { // there are more course records
$extcourse = $extcourse_obj->{$CFG->enrol_remotecoursefield};
// does the course exist in moodle already?
$course = false;
- $course = get_record( 'course',
- $CFG->enrol_localcoursefield,
- $extcourse );
+ $course = $DB->get_record('course', array($CFG->enrol_localcoursefield=>$extcourse));
if (!is_object($course)) {
if (empty($CFG->enrol_db_autocreate)) { // autocreation not allowed
$course->fullname = $extcourse;
$course->shortname = $extcourse;
if (!($newcourseid = $this->create_course($course, true)
- and $course = get_record( 'course', 'id', $newcourseid))) {
+ and $course = $DB->get_record('course', array('id'=>$newcourseid)))) {
error_log( "Creating course $extcourse failed");
continue; // nothing left to do...
}
// correctly.
//
if (!$CFG->enrol_db_disableunenrol) {
- $to_prune = get_records_sql("
- SELECT ra.*
- FROM {$CFG->prefix}role_assignments ra
- JOIN {$CFG->prefix}user u ON ra.userid = u.id
- WHERE ra.enrol = 'database'
- AND ra.contextid = {$context->id}
- AND ra.roleid = ". $role->id . ($extenrolments
- ? " AND u.{$CFG->enrol_localuserfield} NOT IN (".join(", ", array_map(array(&$db, 'quote'), $extenrolments)).")"
- : ''));
+ if ($extenrolments) {
+ list($extlist, $params) = $DB->get_in_or_equal($extenrolments, SQL_PARAMS_NAMED, 'e0', false);
+ $extsql = "AND u.{$CFG->enrol_localuserfield} $extlist";
+ } else {
+ $extsql = "";
+ $params = array();
+ }
+ $params['roleid'] = $role->id;
+ $params['contextid'] = $context->id;
+
+ $to_prune = $DB->get_records_sql("
+ SELECT ra.*
+ FROM {role_assignments} ra
+ JOIN {user} u ON ra.userid = u.id
+ WHERE ra.enrol = 'database'
+ AND ra.contextid = :contextid
+ AND ra.roleid = :roleid", $params);
if ($to_prune) {
foreach ($to_prune as $role_assignment) {
foreach ($extenrolments as $member) {
// Get the user id and whether is enrolled in one fell swoop
$sql = "
- SELECT u.id AS userid, ra.id AS enrolmentid
- FROM {$CFG->prefix}user u
- LEFT OUTER JOIN {$CFG->prefix}role_assignments ra ON u.id = ra.userid
- AND ra.roleid = {$role->id}
- AND ra.contextid = {$context->id}
- WHERE u.{$CFG->enrol_localuserfield} = ".$db->quote($member) .
- " AND (u.deleted IS NULL OR u.deleted=0) ";
-
- $ers = $db->Execute($sql);
- if (!$ers) {
- trigger_error($db->ErrorMsg() .' STATEMENT: '. $sql);
+ SELECT u.id, ra.id AS enrolmentid
+ FROM {user} u
+ LEFT JOIN {role_assignments} ra ON u.id = ra.userid
+ AND ra.roleid = ?
+ AND ra.contextid = ?
+ WHERE u.{$CFG->enrol_localuserfield} = ?
+ AND (u.deleted IS NULL OR u.deleted=0)";
+
+ $eusers = $DB->get_records($sql, array($role->id, $context->id, $member));
+ if ($eusers === false) {
+ trigger_error('error STATEMENT: '. $sql);
return false;
}
- if ( $ers->EOF ) { // if this returns empty, it means we don't have the student record.
+ if (!$eusers) { // if this returns empty, it means we don't have the student record.
// should not happen -- but skip it anyway
trigger_error('weird! no user record entry?');
continue;
}
- $user_obj = rs_fetch_record($ers);
- $userid = $user_obj->userid;
+ $userid = $user_obj->id;
$enrolmentid = $user_obj->enrolmentid;
- rs_close($ers); // release the handle
if ($enrolmentid) { // already enrolled - skip
continue;
// correctly.
//
if (!$CFG->enrol_db_disableunenrol) {
+ if ($extcourses) {
+ list($extlist, $params) = $DB->get_in_or_equal($extcourses, SQL_PARAMS_QM, 'e0', false);
+ $extsql = "AND u.{$CFG->enrol_localcoursefield} $extlist";
+ } else {
+ $extsql = "";
+ $params = array();
+ }
+ $params['roleid'] = $role->id;
+ $params['contextid'] = $context->id;
+
$sql = "
SELECT ra.roleid, ra.userid, ra.contextid
- FROM {$CFG->prefix}role_assignments ra
- JOIN {$CFG->prefix}context cn ON cn.id = ra.contextid
- JOIN {$CFG->prefix}course c ON c.id = cn.instanceid
- WHERE ra.enrol = 'database'
- AND cn.contextlevel = ".CONTEXT_COURSE." " .
- ($have_role ? ' AND ra.roleid = '.$role->id : '') .
- ($extcourses
- ? " AND c.{$CFG->enrol_localcoursefield} NOT IN (" . join(",", array_map(array(&$db, 'quote'), $extcourses)) . ")"
- : '');
-
- $ers = $db->Execute($sql);
- if (!$ers) {
- trigger_error($db->ErrorMsg() .' STATEMENT: '. $sql);
+ FROM {role_assignments} ra
+ JOIN {context} cn ON cn.id = ra.contextid
+ JOIN {course} c ON c.id = cn.instanceid
+ WHERE ra.enrol = 'database'
+ AND cn.contextlevel = ".CONTEXT_COURSE." " .
+ ($have_role ? " AND ra.roleid = :roleid " : '') ."
+ $extsql";
+
+ if (!$ers = $DB->get_recordset_sql($sql, $params)) {
+ trigger_error('error STATEMENT: '. $sql);
return false;
}
- if ( !$ers->EOF ) {
- while ($user_obj = rs_fetch_next_record($ers)) {
- $roleid = $user_obj->roleid;
- $user = $user_obj->userid;
- $contextid = $user_obj->contextid;
- if (role_unassign($roleid, $user, 0, $contextid)){
- error_log( "Unassigned role {$roleid} from user $user in context $contextid");
- } else {
- error_log( "Failed unassign role {$roleid} from user $user in context $contextid");
- }
+ foreach ($ers as $user_obj) {
+ $roleid = $user_obj->roleid;
+ $user = $user_obj->userid;
+ $contextid = $user_obj->contextid;
+ if (role_unassign($roleid, $user, 0, $contextid)){
+ error_log( "Unassigned role {$roleid} from user $user in context $contextid");
+ } else {
+ error_log( "Failed unassign role {$roleid} from user $user in context $contextid");
}
- rs_close($ers); // release the handle
}
+ $ers->close(); // release the handle
}
- commit_sql();
+ $DB->commit_sql();
// we are done now, a bit of housekeeping
fix_course_sortorder();
// you will want to call fix_course_sortorder() after your are done
// with course creation
function create_course ($course,$skip_fix_course_sortorder=0){
- global $CFG;
+ global $CFG, $DB;
// define a template
if(!empty($CFG->enrol_db_template)){
- $template = get_record("course", 'shortname', $CFG->enrol_db_template);
+ $template = $DB->get_record("course", array('shortname'=>$CFG->enrol_db_template));
$template = (array)$template;
} else {
$site = get_site();
}
// define the sortorder
- $sort = get_field_sql('SELECT COALESCE(MAX(sortorder)+1, 100) AS max ' .
- ' FROM ' . $CFG->prefix . 'course ' .
- ' WHERE category=' . $course->category);
+ $sort = $DB->get_field_sql('SELECT COALESCE(MAX(sortorder)+1, 100) AS max FROM {course} WHERE category= ?', array($course->category));
$course->sortorder = $sort;
// override with local data
$course->shortname = substr($course->shortname, 0, 100);
// store it and log
- if ($newcourseid = insert_record("course", addslashes_object($course))) { // Set up new course
+ if ($newcourseid = $DB->insert_record("course", $course)) { // Set up new course
$section = NULL;
$section->course = $newcourseid; // Create a default section.
$section->section = 0;
- $section->id = insert_record("course_sections", $section);
+ $section->id = $DB->insert_record("course_sections", $section);
$page = page_create_object(PAGE_COURSE_VIEW, $newcourseid);
blocks_repopulate_page($page); // Return value no
// role and update it. Otherwise, just got through once (with no role
// specified).
$roles = !empty($CFG->enrol_db_remoterolefield) && !empty($CFG->enrol_db_localrolefield)
- ? get_records('role')
+ ? $DB->get_records('role')
: array(null);
foreach ($roles as $role) {
/// Override the base config_form() function
function config_form($frm) {
- global $CFG;
+ global $CFG, $DB;
$vars = array('enrol_flatfilelocation', 'enrol_mailstudents', 'enrol_mailteachers', 'enrol_mailadmins');
foreach ($vars as $var) {
}
}
- $roles = get_records('role', '', '', '', 'id, name, shortname');
+ $roles = $DB->get_records('role', null, '', 'id, name, shortname');
$ffconfig = get_config('enrol_flatfile');
$frm->enrol_flatfilemapping = array();
/// Override the base process_config() function
function process_config($config) {
+ global $DB;
if (!isset($config->enrol_flatfilelocation)) {
$config->enrol_flatfilelocation = '';
}
set_config('enrol_mailadmins', $config->enrol_mailadmins);
- foreach(get_records('role', '', '', '', 'id, shortname') as $id => $role) {
+ foreach($DB->get_records('role', null, '', 'id, shortname') as $id => $role) {
if (isset($config->{"enrol_flatfilemapping_{$id}"})) {
set_config('map_'.$role->shortname, $config->{"enrol_flatfilemapping_{$id}"}, 'enrol_flatfile');
} else {
* endtime = end time (in seconds since epoch) - optional
*/
function cron() {
- global $CFG;
+ global $CFG, $DB;
if (empty($CFG->enrol_flatfilelocation)) {
$filename = "$CFG->dataroot/1/enrolments.txt"; // Default location
continue;
}
- if (! $user = get_record("user", "idnumber", $fields[2]) ) {
+ if (! $user = $DB->get_record("user", array("idnumber"=>$fields[2]))) {
$this->log .= "Unknown user idnumber in field 3 - ignoring line\n";
continue;
}
- if (! $course = get_record("course", "idnumber", $fields[3]) ) {
+ if (! $course = $DB->get_record("course", array("idnumber"=>$fields[3]))) {
$this->log .= "Unknown course idnumber in field 4 - ignoring line\n";
continue;
}
* @return array ($roles, $rolemap)
*/
function get_roles() {
+ global $DB;
+
// Get a list of all the roles in the database, indexed by their short names.
- $roles = get_records('role', '', '', '', 'shortname, id');
+ $roles = $DB->get_records('role', null, '', 'shortname, id');
array_walk($roles, create_function('&$value', '$value = $value->id;'));
// Get any name mappings. These will be of the form 'map_shortname' => 'flatfilename'.
* @param string $tagconents The raw contents of the XML element
*/
function process_group_tag($tagcontents){
- global $CFG;
+ global $CFG, $DB;
// Process tag contents
unset($group);
// Third, check if the course(s) exist
foreach($group->coursecode as $coursecode){
$coursecode = trim($coursecode);
- if(!get_field('course', 'id', 'idnumber', $coursecode)) {
+ if(!$DB->get_field('course', 'id', array('idnumber'=>$coursecode))) {
if(!$CFG->enrol_createnewcourses) {
$this->log_line("Course $coursecode not found in Moodle's course idnumbers.");
} else {
// Handle course categorisation (taken from the group.org.orgunit field if present)
if(strlen($group->category)>0){
// If the category is defined and exists in Moodle, we want to store it in that one
- if($catid = get_field('course_categories', 'id', 'name', addslashes($group->category))){
+ if($catid = $DB->get_field('course_categories', 'id', array('name'=>$group->category))){
$course->category = $catid;
}elseif($CFG->enrol_createnewcategories){
// Else if we're allowed to create new categories, let's create this one
$newcat->name = $group->category;
$newcat->visible = 0;
- if($catid = insert_record('course_categories', $newcat)){
+ if($catid = $DB->insert_record('course_categories', $newcat)){
$course->category = $catid;
$this->log_line("Created new (hidden) category, #$catid: $newcat->name");
}else{
$course->startdate = time();
$course->numsections = 1;
// Choose a sort order that puts us at the start of the list!
- $sortinfo = get_record_sql('SELECT MIN(sortorder) AS min,
- MAX(sortorder) AS max
- FROM ' . $CFG->prefix . 'course WHERE category<>0');
+ $sortinfo = $DB->get_record_sql('SELECT MIN(sortorder) AS min, MAX(sortorder) AS max FROM {course} WHERE category<>0');
if (is_object($sortinfo)) { // no courses?
$max = $sortinfo->max;
$min = $sortinfo->min;
}else{
$course->sortorder = 1000;
}
- if($course->id = insert_record('course', addslashes_object($course))){
+ if($course->id = $DB->insert_record('course', $course)){
// Setup the blocks
$page = page_create_object(PAGE_COURSE_VIEW, $course->id);
$section = new object();
$section->course = $course->id; // Create a default section.
$section->section = 0;
- $section->id = insert_record("course_sections", $section);
+ $section->id = $DB->insert_record("course_sections", $section);
add_to_log(SITEID, "course", "new", "view.php?id=$course->id", "$course->fullname (ID $course->id)");
}
}elseif($recstatus==3 && ($courseid = get_field('course', 'id', 'idnumber', $coursecode))){
// If course does exist, but recstatus==3 (delete), then set the course as hidden
- set_field('course', 'visible', '0', 'id', $courseid);
+ $DB->set_field('course', 'visible', '0', array('id'=>$courseid));
}
} // End of foreach(coursecode)
}
* @param string $tagconents The raw contents of the XML element
*/
function process_person_tag($tagcontents){
- global $CFG;
+ global $CFG, $DB;
if(preg_match('{<sourcedid>.*?<id>(.+?)</id>.*?</sourcedid>}is', $tagcontents, $matches)){
$person->idnumber = trim($matches[1]);
if($CFG->enrol_imsdeleteusers){ // If we're allowed to delete user records
// Make sure their "deleted" field is set to one
- set_field('user', 'deleted', 1, 'username', $person->username);
+ $DB->set_field('user', 'deleted', 1, array('username'=>$person->username));
$this->log_line("Marked user record for user '$person->username' (ID number $person->idnumber) as deleted.");
}else{
$this->log_line("Ignoring deletion request for user '$person->username' (ID number $person->idnumber).");
// If the user exists (matching sourcedid) then we don't need to do anything.
- if(!get_field('user', 'id', 'idnumber', $person->idnumber) && $CFG->enrol_createnewusers){
+ if(!$DB->get_field('user', 'id', array('idnumber'=>$person->idnumber)) && $CFG->enrol_createnewusers){
// If they don't exist and haven't a defined username, we log this as a potential problem.
if((!isset($person->username)) || (strlen($person->username)==0)){
$this->log_line("Cannot create new user for ID # $person->idnumber - no username listed in IMS data for this person.");
- }elseif(get_field('user', 'id', 'username', $person->username)){
+ } else if ($DB->get_field('user', 'id', array('username'=>$person->username))){
// If their idnumber is not registered but their user ID is, then add their idnumber to their record
- set_field('user', 'idnumber', addslashes($person->idnumber), 'username', $person->username);
- }else{
+ $DB->set_field('user', 'idnumber', $person->idnumber, array('username'=>$person->username));
+ } else {
// If they don't exist and they have a defined username, and $CFG->enrol_createnewusers == true, we create them.
$person->lang = 'manual'; //TODO: this needs more work due tu multiauth changes
$person->confirmed = 1;
$person->timemodified = time();
$person->mnethostid = $CFG->mnet_localhost_id;
- if($id = insert_record('user', addslashes_object($person))){
+ if($id = $DB->insert_record('user', addslashes_object($person))){
/*
Photo processing is deactivated until we hear from Moodle dev forum about modification to gdlib.
//Llibreria creada per nosaltres mateixos.
require_once($CFG->dirroot.'/lib/gdlib.php');
if ($usernew->picture = save_profile_image($id, $person->urlphoto,'user')) {
- set_field('user', 'picture', $usernew->picture, 'id', $id); /// Note picture in DB
+ $DB->set_field('user', 'picture', $usernew->picture, array('id'=>$id)); /// Note picture in DB
}
}
*/
$this->log_line("User record already exists for user '$person->username' (ID number $person->idnumber).");
// Make sure their "deleted" field is set to zero.
- set_field('user', 'deleted', 0, 'idnumber', $person->idnumber);
+ $DB->set_field('user', 'deleted', 0, array('idnumber'=>$person->idnumber));
}else{
$this->log_line("No user record found for '$person->username' (ID number $person->idnumber).");
}
* @param string $tagconents The raw contents of the XML element
*/
function process_membership_tag($tagcontents){
- global $CFG;
+ global $CFG, $DB;
$memberstally = 0;
$membersuntally = 0;
$ship->coursecode = ($CFG->enrol_truncatecoursecodes > 0)
? substr(trim($matches[1]), 0, intval($CFG->enrol_truncatecoursecodes))
: trim($matches[1]);
- $ship->courseid = get_field('course', 'id', 'idnumber', $ship->coursecode);
+ $ship->courseid = $DB->get_field('course', 'id', array('idnumber'=>$ship->coursecode));
}
if($ship->courseid && preg_match_all('{<member>(.*?)</member>}is', $tagcontents, $membermatches, PREG_SET_ORDER)){
foreach($membermatches as $mmatch){
//print_r($rolecontext);
// Add or remove this student or teacher to the course...
- $memberstoreobj->userid = get_field('user', 'id', 'idnumber', $member->idnumber);
+ $memberstoreobj->userid = $DB->get_field('user', 'id', array('idnumber'=>$member->idnumber));
$memberstoreobj->enrol = 'imsenterprise';
$memberstoreobj->course = $ship->courseid;
$memberstoreobj->time = time();
if(isset($groupids[$member->groupname])){
$member->groupid = $groupids[$member->groupname]; // Recall the group ID from cache if available
}else{
- if($groupid = get_field('groups', 'id', 'name', addslashes($member->groupname), 'courseid', $ship->courseid)){
+ if($groupid = $DB->get_field('groups', 'id', 'name', $member->groupname, array('courseid'=>$ship->courseid))){
$member->groupid = $groupid;
$groupids[$member->groupname] = $groupid; // Store ID in cache
}else{
// Attempt to create the group
- $group->name = addslashes($member->groupname);
+ $group->name = $member->groupname;
$group->courseid = $ship->courseid;
$group->timecreated = time();
$group->timemodified = time();
- $groupid = insert_record('groups', $group);
+ $groupid = $DB->insert_record('groups', $group);
$this->log_line('Added a new group for this course: '.$group->name);
$groupids[$member->groupname] = $groupid; // Store ID in cache
$member->groupid = $groupid;
* how an IMS-E role corresponds to a Moodle role
*/
function load_role_mappings() {
+ global $DB;
+
$this->rolemappings = array();
foreach($this->imsroles as $imsrolenum=>$imsrolename) {
$this->rolemappings[$imsrolenum] = $this->rolemappings[$imsrolename]
- = get_field('config', 'value', 'name', 'enrol_imse_imsrolemap' . $imsrolenum);
+ = $DB->get_field('config', 'value', array('name'=>'enrol_imse_imsrolemap' . $imsrolenum));
}
}
}
// Roles
-$roles = get_records('role');
+$roles = $DB->get_records('role');
foreach($roles as $role) {
if (!isset($frm->{'enrol_ldap_contexts_role'.$role->id})) {
$frm->{'enrol_ldap_contexts_role'.$role->id} = '';
* This function syncs a user's enrolments with those on the LDAP server.
*/
function setup_enrolments(&$user) {
- global $CFG;
+ global $CFG, $DB;
//error_log('[ENROL_LDAP] setup_enrolments called');
// we are connected OK, continue...
// Get all the possible roles
- $roles = get_records('role');
+ $roles = $DB->get_records('role');
// Make sure the config settings have been upgraded.
$this->check_legacy_config();
// Get the entire list of role assignments that currently exist for this user.
- $roleassignments = get_records('role_assignments', 'userid', $user->id);
+ $roleassignments = $DB->get_records('role_assignments', array('userid'=>$user->id));
if (!$roleassignments) {
$roleassignments = array();
}
}
// create the course ir required
- $course_obj = get_record( 'course',
- $this->enrol_localcoursefield,
- $course_ext_id );
+ $course_obj = $DB->get_record('course', array($this->enrol_localcoursefield, $course_ext_id));
if (empty($course_obj)){ // course doesn't exist
if($CFG->enrol_ldap_autocreate){ // autocreate
error_log("[ENROL_LDAP] CREATE User $user->username enrolled to a nonexistant course $course_ext_id \n");
$newcourseid = $this->create_course($enrol);
- $course_obj = get_record( 'course',
- $this->enrol_localcoursefield,
- $newcourseid);
+ $course_obj = $DB->get_record('course', array($this->enrol_localcoursefield=>$newcourseid));
} else {
error_log("[ENROL_LDAP] User $user->username enrolled to a nonexistant course $course_ext_id \n");
}
$context = get_context_instance(CONTEXT_COURSE, $course_obj->id);
//$courseroles = get_user_roles($context, $user->id);
- if (!get_record('role_assignments', 'roleid', $role->id, 'userid', $user->id, 'contextid', $context->id)) {
+ if (!$DB->get_record('role_assignments', array('roleid'=>$role->id, 'userid'=>$user->id, 'contextid'=>$context->id))) {
//error_log("[ENROL_LDAP] Assigning role '{$role->name}' to {$user->id} ({$user->username}) in course {$course_obj->id} ({$course_obj->shortname})");
if (!role_assign($role->id, $user->id, 0, $context->id, 0, 0, 0, 'ldap')){
error_log("[ENROL_LDAP] Failed to assign role '{$role->name}' to $user->id ($user->username) into course $course_obj->id ($course_obj->shortname)");
/// sync enrolments with ldap, create courses if required.
function sync_enrolments($type, $enrol = false) {
- global $CFG;
+ global $CFG, $DB;
// Get the role. If it doesn't exist, that is bad.
- $role = get_record('role', 'shortname', $type);
+ $role = $DB->get_record('role', array('shortname'=>$type));
if (!$role) {
notify("No such role: $type");
return false;
print "== Synching $idnumber\n";
// does the course exist in moodle already?
$course_obj = false;
- $course_obj = get_record( 'course',
- $this->enrol_localcoursefield,
- $idnumber );
+ $course_obj = $DB->get_record('course', array($this->enrol_localcoursefield=>$idnumber));
if (!is_object($course_obj)) {
// ok, now then let's create it!
print "Creating Course $idnumber...";
$newcourseid = $this->create_course($course, true); // we are skipping fix_course_sortorder()
- $course_obj = get_record( 'course', 'id', $newcourseid);
+ $course_obj = $DB->get_record('course', array('id'=>$newcourseid));
if (is_object($course_obj)) {
print "OK!\n";
} else {
// hopefully they'll fit in the max buffer size for the RDBMS
$sql = '
SELECT enr.userid AS user, 1
- FROM '.$CFG->prefix.'role_assignments enr
- JOIN '.$CFG->prefix.'user usr ON usr.id=enr.userid
+ FROM {role_assignments} enr
+ JOIN {user} usr ON usr.id=enr.userid
WHERE enr.roleid = '.$role->id.'
AND enr.contextid = '.$context->id.'
AND enr.enrol = \'ldap\' ';
if (!empty($ldapmembers)) {
- $sql .= 'AND usr.idnumber NOT IN (\''. join('\',\'', $ldapmembers).'\')';
+ list($ldapml, $params) = $DB->get_in_or_equal($ldapmembers, SQL_PARAMS_NAMED, 'm0', false);
+ $sql .= "AND usr.idnumber $ldapml";
} else {
print ("Empty enrolment for $course_obj->shortname \n");
+ $params = array();
}
- $todelete = get_records_sql($sql);
+ $todelete = $DB->get_records_sql($sql, $params);
if(!empty($todelete)){
foreach ($todelete as $member) {
$member = $member->user;
// insert current enrolments
// bad we can't do INSERT IGNORE with postgres...
foreach ($ldapmembers as $ldapmember) {
- $sql = 'SELECT id,1 FROM '.$CFG->prefix.'user '
- ." WHERE idnumber='$ldapmember'";
- $member = get_record_sql($sql);
+ $sql = 'SELECT id,1 FROM {user} '
+ ." WHERE idnumber=?";
+ $member = $DB->get_record_sql($sql, array($ldapmember));
// print "sql: $sql \nidnumber = $ldapmember \n" . var_dump($member);
if(empty($member) || empty($member->id)){
print "Could not find user $ldapmember, skipping\n";
continue;
}
$member = $member->id;
- if (!get_record('role_assignments', 'roleid', $role->id,
- 'contextid', $context->id,
- 'userid', $member, 'enrol', 'ldap')){
+ if (!$DB->get_record('role_assignments', array('roleid'=>$role->id,
+ 'contextid'=>$context->id, 'userid'=>$member, 'enrol'=>'ldap'))){
if (role_assign($role->id, $member, 0, $context->id, 0, 0, 0, 'ldap')){
print "Assigned role $type to $member ($ldapmember) for course $course_obj->id ($course_obj->shortname)\n";
} else {
/// Override the base process_config() function
function process_config($config) {
+ global $DB;
$this->check_legacy_config();
}
set_config('enrol_ldap_autocreate', $config->enrol_ldap_autocreate);
- $roles = get_records('role');
+ $roles = $DB->get_records('role');
foreach ($roles as $role) {
if (!isset($config->{'enrol_ldap_contexts_role'.$role->id})) {
$config->{'enrol_ldap_contexts_role'.$role->id} = '';
// you will want to call fix_course_sortorder() after your are done
// with course creation
function create_course ($course_ext,$skip_fix_course_sortorder=0){
- global $CFG;
+ global $CFG, $DB;
// override defaults with template course
if(!empty($CFG->enrol_ldap_template)){
- $course = get_record("course", 'shortname', $CFG->enrol_ldap_template);
+ $course = $DB->get_record("course", array('shortname'=>$CFG->enrol_ldap_template));
unset($course->id); // so we are clear to reinsert the record
unset($course->sortorder);
} else {
}
// define the sortorder (yuck)
- $sort = get_record_sql('SELECT MAX(sortorder) AS max, 1 FROM ' . $CFG->prefix . 'course WHERE category=' . $course->category);
+ $sort = $DB->get_record_sql('SELECT MAX(sortorder) AS max, 1 FROM {course} WHERE category=?', array($course->category));
$sort = $sort->max;
$sort++;
$course->sortorder = $sort;
$course->startdate = time();
$course->timecreated = time();
$course->visible = 1;
-
- $course = addslashes_recursive($course);
// store it and log
- if ($newcourseid = insert_record("course", $course)) { // Set up new course
+ if ($newcourseid = $DB->insert_record("course", $course)) { // Set up new course
$section = new object();
$section->course = $newcourseid; // Create a default section.
$section->section = 0;
- $section->id = insert_record("course_sections", $section);
+ $section->id = $DB->insert_record("course_sections", $section);
$page = page_create_object(PAGE_COURSE_VIEW, $newcourseid);
blocks_repopulate_page($page); // Return value no
* @uses $CFG
*/
function check_legacy_config () {
- global $CFG;
+ global $CFG, $DB;
if (isset($CFG->enrol_ldap_student_contexts)) {
- if ($student_role = get_record('role', 'shortname', 'student')) {
+ if ($student_role = $DB->get_record('role', array('shortname'=>'student'))) {
set_config('enrol_ldap_contexts_role'.$student_role->id, $CFG->enrol_ldap_student_contexts);
}
if (isset($CFG->enrol_ldap_student_memberattribute)) {
if (isset($student_role)
- or $student_role = get_record('role', 'shortname', 'student')) {
+ or $student_role = $DB->get_record('role', array('shortname'=>'student'))) {
set_config('enrol_ldap_memberattribute_role'.$student_role->id, $CFG->enrol_ldap_student_memberattribute);
}
}
if (isset($CFG->enrol_ldap_teacher_contexts)) {
- if ($teacher_role = get_record('role', 'shortname', 'teacher')) {
+ if ($teacher_role = $DB->get_record('role', array('shortname'=>'teacher'))) {
set_config('enrol_ldap_contexts_role'.$teacher_role->id, $CFG->enrol_ldap_student_contexts);
}
if (isset($CFG->enrol_ldap_teacher_memberattribute)) {
if (isset($teacher_role)
- or $teacher_role = get_record('role', 'shortname', 'teacher')) {
+ or $teacher_role = $DB->get_record('role', array('shortname'=>'teacher'))) {
set_config('enrol_ldap_memberattribute_role'.$teacher_role->id, $CFG->enrol_ldap_teacher_memberattribute);
}
$enrol->check_legacy_config();
- $roles = get_records('role');
+ $roles = $DB->get_records('role');
foreach ($roles as $role) {
$enrol->sync_enrolments($role->shortname, true);
}
* @return void
*/
function cron() {
- global $CFG, $USER, $SITE;
+ global $CFG, $USER, $SITE, $DB;
if (!isset($CFG->lastexpirynotify)) {
set_config('lastexpirynotify', 0);
return;
}
- if ($rs = get_recordset_select('course', 'enrolperiod > 0 AND expirynotify > 0 AND expirythreshold > 0')) {
+ if ($rs = $DB->get_recordset_select('course', 'enrolperiod > 0 AND expirynotify > 0 AND expirythreshold > 0')) {
$cronuser = clone($USER);
$admin = get_admin();
- while($course = rs_fetch_next_record($rs)) {
+ foreach ($rs as $course) {
$a = new object();
$a->coursename = $course->shortname .'/'. $course->fullname; // must be processed by format_string later
$a->threshold = $course->expirythreshold / 86400;
continue;
}
- if ($oldenrolments = get_records_sql("
+ if ($oldenrolments = $DB->get_records_sql("
SELECT u.*, ra.timeend
- FROM {$CFG->prefix}user u
- JOIN {$CFG->prefix}role_assignments ra ON (ra.userid = u.id)
+ FROM {user} u
+ JOIN {role_assignments} ra ON (ra.userid = u.id)
WHERE ra.contextid = $context->id
AND ra.timeend > 0 AND ra.timeend <= $expiry
AND ra.enrol = 'manual'")) {
}
$USER = $cronuser;
course_setup($course); // More environment
+ $rs->close();
}
set_config('lastexpirynotify', date('Ymd'));
// setup arrays for allowed categories and courses
$categories = array();
-if ($categories = get_records('course_categories', '', '', 'name', 'id, name')) {
+if ($categories = $DB->get_records('course_categories', null, 'name', 'id, name')) {
$allowedcategories = array();
if (empty($CFG->enrol_mnet_allowed_categories)) {
$potentialcategories = $categories;
}
}
$courses = array();
-if ($courses = get_records('course', '', '', 'shortname', 'id, shortname')) {
+if ($courses = $DB->get_records('course', null, 'shortname', 'id, shortname')) {
unset($courses[SITEID]); // never list or offer the siteid
$allowedcourses = array();
if (empty($CFG->enrol_mnet_allowed_courses)) {
* @return bool Whether the user can login from the remote host
*/
function available_courses() {
- global $CFG;
+ global $CFG, $DB;
if (!empty($CFG->enrol_mnet_allow_allcourses)) {
co.defaultrole AS defaultroleid,
r.name AS defaultrolename
FROM
- {$CFG->prefix}course_categories ca
+ {course_categories} ca
JOIN
- {$CFG->prefix}course co ON
- ca.id = co.category
+ {course} co ON ca.id = co.category
LEFT JOIN
- {$CFG->prefix}role r ON
- r.id = co.defaultrole
+ {role} r ON r.id = co.defaultrole
WHERE
- co.visible = '1' AND
- co.enrollable = '1'
+ co.visible = 1 AND
+ co.enrollable = 1
ORDER BY
sortorder ASC
";
- return get_records_sql($query);
+ return $DB->get_records_sql($query);
} elseif (!empty($CFG->enrol_mnet_allowed_categories)) {
"SELECT
id, name
FROM
- {$CFG->prefix}course_categories ca
+ {course_categories} ca
WHERE
ca.id IN ({$CFG->enrol_mnet_allowed_categories})
OR ( $cats )
";
unset($cats);
- $rs = get_records_sql($query);
+ $rs = $DB->get_records_sql($query);
if (!empty($rs)) {
$cats = array_keys($rs);
co.defaultrole as defaultroleid,
r.name
FROM
- {$CFG->prefix}course_categories ca
+ {course_categories} ca
JOIN
- {$CFG->prefix}course co ON
- ca.id = co.category
+ {course} co ON ca.id = co.category
LEFT JOIN
- {$CFG->prefix}role r ON
- r.id = co.defaultrole
+ {role} r ON r.id = co.defaultrole
WHERE
- co.visible = '1' AND
- co.enrollable = '1' $where
+ co.visible = 1 AND
+ co.enrollable = 1 $where
ORDER BY
sortorder ASC
";
- return get_records_sql($query);
+ return $DB->get_records_sql($query);
} elseif (!empty($CFG->enrol_mnet_allowed_courses)) {
co.defaultrole as defaultroleid,
r.name
FROM
- {$CFG->prefix}course_categories ca
+ {course_categories} ca
JOIN
- {$CFG->prefix}course co ON
- ca.id = co.category
+ {course} co ON ca.id = co.category
LEFT JOIN
- {$CFG->prefix}role r ON
- r.id = co.defaultrole
+ {role} r ON r.id = co.defaultrole
WHERE
- co.visible = '1' AND
- co.enrollable = '1' AND
- co.id in ({$CFG->enrol_mnet_allowed_courses})
+ co.visible = 1 AND
+ co.enrollable = 1 AND
+ co.id IN ({$CFG->enrol_mnet_allowed_courses})
ORDER BY
sortorder ASC
";
- return get_records_sql($query);
+ return $DB->get_records_sql($query);
}
* client machine
*/
function course_enrolments($courseid, $roles = '') {
- global $MNET_REMOTE_CLIENT, $CFG;
+ global $MNET_REMOTE_CLIENT, $CFG, $DB;
- if (! $course = get_record('course', 'id', $courseid) ) {
+ if (! $course = $DB->get_record('course', array('id'=>$courseid))) {
return 'no course';
//error("That's an invalid course id");
}
r.name,
r.shortname
FROM
- {$CFG->prefix}role_assignments a,
- {$CFG->prefix}role r,
- {$CFG->prefix}user u
+ {role_assignments} a,
+ {role} r,
+ {user} u
WHERE
- a.contextid = '{$context->id}' AND
+ a.contextid = {$context->id} AND
a.roleid = r.id AND
a.userid = u.id AND
u.mnethostid = '{$MNET_REMOTE_CLIENT->id}'
a.roleid in ('".str_replace(',', "', '", $roles)."')";
}
- $enrolments = get_records_sql($sql);
+ $enrolments = $DB->get_records_sql($sql);
$returnarray = array();
foreach($enrolments as $user) {
* @return bool Whether the enrolment has been successful
*/
function enrol_user($user, $courseid) {
- global $MNET, $MNET_REMOTE_CLIENT;
+ global $MNET, $MNET_REMOTE_CLIENT, $DB;
- $userrecord = get_record('user','username',addslashes($user['username']), 'mnethostid',$MNET_REMOTE_CLIENT->id);
+ $userrecord = $DB->get_record('user',array('username'=>$user['username'], 'mnethostid'=>$MNET_REMOTE_CLIENT->id));
if ($userrecord == false) {
$userrecord = new stdClass();
- $userrecord->username = addslashes($user['username']);
- $userrecord->email = addslashes($user['email']);
- $userrecord->firstname = addslashes($user['firstname']);
- $userrecord->lastname = addslashes($user['lastname']);
+ $userrecord->username = $user['username'];
+ $userrecord->email = $user['email'];
+ $userrecord->firstname = $user['firstname'];
+ $userrecord->lastname = $user['lastname'];
$userrecord->mnethostid = $MNET_REMOTE_CLIENT->id;
- if ($userrecord->id = insert_record('user', $userrecord)) {
- $userrecord = get_record('user','id', $userrecord->id);
+ if ($userrecord->id = $DB->insert_record('user', $userrecord)) {
+ $userrecord = $DB->get_record('user', array('id'=>$userrecord->id));
} else {
// TODO: Error out
return false;
}
}
- if (! $course = get_record('course', 'id', $courseid) ) {
+ if (! $course = $DB->get_record('course', array('id'=>$courseid))) {
// TODO: Error out
return false;
}
* @return bool Whether the user can login from the remote host
*/
function unenrol_user($user, $courseid) {
- global $MNET_REMOTE_CLIENT;
+ global $MNET_REMOTE_CLIENT, $DB;
- $userrecord = get_record('user','username',$user['username'], 'mnethostid',$MNET_REMOTE_CLIENT->id);
+ $userrecord = $DB->get_record('user', array('username'=>$user['username'], 'mnethostid'=>$MNET_REMOTE_CLIENT->id));
if ($userrecord == false) {
// TODO: Error out
}
- if (! $course = get_record('course', 'id', $courseid) ) {
+ if (! $course = $DB->get_record('course', array('id'=>$courseid))) {
// TODO: Error out
}
* @return array
*/
function list_remote_servers() {
- global $CFG;
+ global $CFG, $DB;
$sql = "
SELECT DISTINCT
h.id,
h.name
FROM
- {$CFG->prefix}mnet_host h,
- {$CFG->prefix}mnet_host2service h2s,
- {$CFG->prefix}mnet_service s
+ {mnet_host} h,
+ {mnet_host2service} h2s,
+ {mnet_service} s
WHERE
h.id = h2s.hostid AND
h2s.serviceid = s.id AND
s.name = 'mnet_enrol' AND
h2s.subscribe = 1";
- $res = get_records_sql($sql);
+ $res = $DB->get_records_sql($sql);
if (is_array($res)) {
return $res;
} else {
* @return array Whether the user can login from the remote host
*/
function fetch_remote_courses($mnethostid) {
- global $CFG;
- global $USER;
- global $MNET;
+ global $CFG, $USER, $MNET, $DB;
require_once $CFG->dirroot . '/mnet/xmlrpc/client.php';
// get the Service Provider info
$courses = $mnetrequest->response;
// get the cached courses key'd on remote id - only need remoteid and id fields
- $cachedcourses = get_records('mnet_enrol_course',
- 'hostid', $mnethostid,
- 'remoteid', 'remoteid, id' );
+ $cachedcourses = $DB->get_records('mnet_enrol_course', array('hostid'=>$mnethostid), 'remoteid', 'remoteid, id' );
// Update cache and transform $courses into objects
// in-place for the benefit of our caller...
// sanitise strings for DB NOTE - these are not sane
// for printing, so we'll use a different object
$dbcourse = clone($course);
- $dbcourse->cat_name = addslashes($dbcourse->cat_name);
- $dbcourse->cat_description = addslashes($dbcourse->cat_description);
- $dbcourse->fullname = addslashes($dbcourse->fullname);
- $dbcourse->shortname = addslashes($dbcourse->shortname);
- $dbcourse->idnumber = addslashes($dbcourse->idnumber);
- $dbcourse->summary = addslashes($dbcourse->summary);
- $dbcourse->currency = addslashes($dbcourse->currency);
- $dbcourse->defaultrolename = addslashes($dbcourse->defaultrolename);
+ $dbcourse->cat_name = $dbcourse->cat_name;
+ $dbcourse->cat_description = $dbcourse->cat_description;
+ $dbcourse->fullname = $dbcourse->fullname;
+ $dbcourse->shortname = $dbcourse->shortname;
+ $dbcourse->idnumber = $dbcourse->idnumber;
+ $dbcourse->summary = $dbcourse->summary;
+ $dbcourse->currency = $dbcourse->currency;
+ $dbcourse->defaultrolename = $dbcourse->defaultrolename;
// insert or update
if (empty($cachedcourses[$course->remoteid])) {
- $course->id = insert_record('mnet_enrol_course', $dbcourse);
+ $course->id = $DB->insert_record('mnet_enrol_course', $dbcourse);
} else {
$course->id = $cachedcourses[$course->remoteid]->id;
$cachedcourses[$course->remoteid]->seen=true;
- update_record('mnet_enrol_course', $dbcourse);
+ $DB->update_record('mnet_enrol_course', $dbcourse);
}
// free tmp obj
unset($dbcourse);
}
}
if (!empty($stale)) {
- delete_records_select('mnet_enrol_course', 'id IN ('.join(',',$stale).')');
+ $DB->delete_records_select('mnet_enrol_course', 'id IN ('.join(',',$stale).')');
}
}
* @return array Whether the user can login from the remote host
*/
function req_enrol_user($userid, $courseid) {
- global $CFG;
- global $USER;
- global $MNET;
+ global $CFG, $USER, $MNET, $DB;
require_once $CFG->dirroot . '/mnet/xmlrpc/client.php';
// Prepare a basic user record
// in case the remote host doesn't have it
- $user = get_record('user', 'id', $userid, '','','','', 'username, email, firstname, lastname');
+ $user = $DB->get_record('user', array('id'=>$userid), 'username, email, firstname, lastname');
$user = (array)$user;
- $course = get_record('mnet_enrol_course', 'id', $courseid);
+ $course = $DB->get_record('mnet_enrol_course', array('id'=>$courseid));
// get the Service Provider info
$mnet_sp = new mnet_peer();
$assignment->courseid = $course->id;
$assignment->enroltype = 'mnet';
// TODO: other fields
- if (insert_record('mnet_enrol_assignments', $assignment)) {
+ if ($DB->insert_record('mnet_enrol_assignments', $assignment)) {
return true;
}
}
* @return array Whether the user can login from the remote host
*/
function req_unenrol_user($userid, $courseid) {
- global $CFG;
- global $USER;
- global $MNET;
+ global $CFG, $USER, $MNET, $DB;
require_once $CFG->dirroot . '/mnet/xmlrpc/client.php';
// in case the remote host doesn't have it
- $user = get_record('user', 'id', $userid, '','','','', 'username, email');
+ $user = $DB->get_record('user', array('id'=>$userid), 'username, email');
$user = $user->username;
- $course = get_record('mnet_enrol_course', 'id', $courseid);
+ $course = $DB->get_record('mnet_enrol_course', array('id'=>$courseid));
// get the Service Provider info
$mnet_sp = new mnet_peer();
if ($mnetrequest->send($mnet_sp) === true) {
if ($mnetrequest->response == true) {
// remove enrolment cached in mnet_enrol_assignments
- delete_records_select('mnet_enrol_assignments',
- "userid={$userid} AND courseid={$course->id}");
+ $DB->delete_records_select('mnet_enrol_assignments',
+ "userid=? AND courseid=?", array($userid, $course->id));
return true;
}
/// get the user and course records
- if (! $user = get_record("user", "id", $data->userid) ) {
+ if (! $user = $DB->get_record("user", array("id"=>$data->userid))) {
email_paypal_error_to_admin("Not a valid user id", $data);
die;
}
- if (! $course = get_record("course", "id", $data->courseid) ) {
+ if (! $course = $DB->get_record("course", array("id"=>$data->courseid))) {
email_paypal_error_to_admin("Not a valid course id", $data);
die;
}
- if ($existing = get_record("enrol_paypal", "txn_id", addslashes($data->txn_id))) { // Make sure this transaction doesn't exist already
+ if ($existing = $DB->get_record("enrol_paypal", array("txn_id"=>$data->txn_id))) { // Make sure this transaction doesn't exist already
email_paypal_error_to_admin("Transaction $data->txn_id is being repeated!", $data);
die;
}
- if (!$user = get_record('user', 'id', $data->userid)) { // Check that user exists
+ if (!$user = $DB->get_record('user', array('id'=>$data->userid))) { // Check that user exists
email_paypal_error_to_admin("User $data->userid doesn't exist", $data);
die;
}
- if (!$course = get_record('course', 'id', $data->courseid)) { // Check that course exists
+ if (!$course = $DB->get_record('course', array('id'=>$data->courseid))) { // Check that course exists
email_paypal_error_to_admin("Course $data->courseid doesn't exist", $data);;
die;
}
// ALL CLEAR !
- if (!insert_record("enrol_paypal", addslashes_object($data))) { // Insert a transaction record
+ if (!$DB->insert_record("enrol_paypal", $data)) { // Insert a transaction record
email_paypal_error_to_admin("Error while trying to insert valid transaction", $data);
}
} else if (strcmp ($result, "INVALID") == 0) { // ERROR
- insert_record("enrol_paypal", addslashes_object($data), false);
+ $DB->insert_record("enrol_paypal", $data, false);
email_paypal_error_to_admin("Received an invalid payment notification!! (Fake payment?)", $data);
}
}
$id = required_param('id', PARAM_INT);
- if (!$course = get_record("course", "id", $id)) {
+ if (!$course = $DB->get_record("course", array("id"=>$id))) {
redirect($CFG->wwwroot);
}
$confirm = optional_param('confirm', 0, PARAM_BOOL);
- if (! $course = get_record("course", "id", $id) ) {
+ if (! $course = $DB->get_record("course", array("id"=>$id))) {
print_error('invalidcourseid');
}
$confirm = optional_param('confirm', 0, PARAM_BOOL);\r
\r
\r
- if (! $course = get_record("course", "id", $id) ) {\r
+ if (! $course = $DB->get_record("course", array("id"=>$id))) {\r
print_error("invalidcourseid");\r
}\r
\r
$this->assertTrue(method_exists($category, 'generate_grades'));
$category->load_grade_item();
- $grades = get_records('grade_grades', 'itemid', $category->grade_item->id);
+ $grades = $DB->get_records('grade_grades', array('itemid'=>$category->grade_item->id));
$this->assertFalse($grades);
$category->generate_grades();
- $grades = get_records('grade_grades', 'itemid', $category->grade_item->id);
+ $grades = $DB->get_records('grade_grades', array('itemid'=>$category->grade_item->id));
$this->assertEqual(3, count($grades));
$rawvalues = array();
*/
function test__events_update_definition__update() {
// first modify directly existing handler
- $handler = get_record('events_handlers', 'handlermodule', 'unittest', 'eventname', 'test_instant');
+ $handler = $DB->get_record('events_handlers', array('handlermodule'=>'unittest', 'eventname'=>'test_instant'));
$original = $handler->handlerfunction;
// change handler in db
- set_field('events_handlers', 'handlerfunction', serialize('some_other_function_handler'), 'id', $handler->id);
+ $DB->set_field('events_handlers', 'handlerfunction', serialize('some_other_function_handler'), array('id'=>$handler->id));
// update the definition, it should revert the handler back
events_update_definition('unittest');
- $handler = get_record('events_handlers', 'handlermodule', 'unittest', 'eventname', 'test_instant');
+ $handler = $DB->get_record('events_handlers', array('handlermodule'=>'unittest', 'eventname'=>'test_instant'));
$this->assertEqual($handler->handlerfunction, $original, 'update should sync db with file definition: %s');
}