/** * Associates a cluster with a track. */ static function associate($cluster, $track, $autounenrol = true, $autoenrol = true) { global $CURMAN; $db = $CURMAN->db; // make sure we don't double-associate if ($db->record_exists(CLSTTRKTABLE, 'clusterid', $cluster, 'trackid', $track)) { return; } $record = new clustertrack(); $record->clusterid = $cluster; $record->trackid = $track; $record->autoenrol = $autoenrol; $record->autounenrol = $autounenrol; $record->data_insert_record(); // Enrol all users in the cluster into track. $sql = 'SELECT uc.* FROM ' . $CURMAN->db->prefix_table(CLSTASSTABLE) . ' as uc JOIN ' . $CURMAN->db->prefix_table(USRTABLE) . ' as u ON uc.userid = u.id WHERE uc.clusterid = ' . $cluster . ' AND uc.autoenrol = 1 ORDER BY u.lastname'; $users = $db->get_records_sql($sql); // $users = $db->get_records(CLSTUSERTABLE, 'clusterid', $cluster); if ($users && !empty($autoenrol)) { foreach ($users as $user) { usertrack::enrol($user->userid, $track); } } events_trigger('crlm_cluster_track_associated', $record); }