/**
  * 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);
 }