/** * Associates a cluster with a curriculum. */ static function associate($cluster, $curriculum, $autoenrol = true) { global $CURMAN; $db = $CURMAN->db; // make sure we don't double-associate if ($db->record_exists(CLSTCURTABLE, 'clusterid', $cluster, 'curriculumid', $curriculum)) { return; } $record = new clustercurriculum(); $record->clusterid = $cluster; $record->autoenrol = !empty($autoenrol) ? 1 : 0; $record->curriculumid = $curriculum; $record->data_insert_record(); /* Assign all users in the cluster with curriculum. Don't assign users * if already assigned */ /** * @todo we may need to change this if associating a user with a * curriculum does anything more complicated */ //only insert users if we are auto-enrolling if (!empty($autoenrol)) { $timenow = time(); $sql = 'INSERT INTO ' . $db->prefix_table(CURASSTABLE) . ' ' . '(userid, curriculumid, timecreated, timemodified) ' . 'SELECT DISTINCT u.id, ' . $curriculum . ', ' . $timenow . ', ' . $timenow . ' ' . 'FROM ' . $db->prefix_table(CLSTUSERTABLE) . ' clu ' . 'INNER JOIN ' . $db->prefix_table(USRTABLE) . ' u ON u.id = clu.userid ' . 'LEFT OUTER JOIN ' . $db->prefix_table(CURASSTABLE) . ' ca ON ca.userid = u.id AND ca.curriculumid = \'' . $curriculum . '\' ' . 'WHERE clu.clusterid = \'' . $cluster . '\' AND ca.curriculumid IS NULL'; $db->execute_sql($sql, false); } events_trigger('crlm_cluster_curriculum_associated', $record); }