'max-width:60%'); //$attributes = array(); //get study groups $query = db_select('booking_studygroup_list', 's') ->fields('s') ->condition('s.booking_eventid', $event->eid, '='); $result = $query->execute(); foreach ($result as $group) { $rows[] = array( $group->booking_studygroup_descrip, $group->booking_num_group_sessions, $group->booking_is_readinggroup == 'Y' ? 'Yes' : 'No', l(t('Edit Group Definition', array('!id' => $group->sid)), t('admin/config/booking/studygroups/!id/edit', array('!id' => $group->sid))), ); } //output everything $output .= t("

!event Study Groups

", array('!event' => $event->booking_eventname)); $output .= theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => $attributes)); return $output; } /** * Function to generate early access codes for the current event */ function booking_earlyaccess_generate_codes() { global $event; $num_codes_to_add = 0; $num_codes_available = 0; $code_length = 6; //determine number of currently available access codes for this event $codecount_query = db_query("SELECT count(*) as num_codes FROM {booking_regn_earlyaccess_codes} where booking_eventid = :eventid and booking_regn_earlyaccess_code_avail = 'Y'", array(':eventid' => $event->eid)) ->fetchObject(); $num_codes_available = $codecount_query->num_codes; //get the number of codes we need to have available from variable_get('booking_earlyaccess_codes_count') $num_codes_to_add = variable_get('booking_earlyaccess_codes_count', 0) - $num_codes_available; //add required number of codes to database table watchdog('booking_debug', "Creating $num_codes_to_add early access codes."); //use the multi-insert query type at https://drupal.org/node/310079 $insert_query = db_insert('booking_regn_earlyaccess_codes') ->fields(array( 'booking_eventid', 'booking_regn_earlyaccess_code', 'booking_regn_earlyaccess_code_avail', )); for ($i = 0; $i < $num_codes_to_add; $i++) { $insert_query->values(array( 'booking_eventid' => $event->eid, 'booking_regn_earlyaccess_code' => booking_getToken(code_length), 'booking_regn_earlyaccess_code_avail' => 'Y', )); } $insert_query->execute(); return t("Created $num_codes_to_add early access codes."); } /** * Function to calculate unique code * @see https://stackoverflow.com/questions/1846202/php-how-to-generate-a-random-unique-alphanumeric-string * Requires PHP7 */ function booking_getToken($length){ $token = ""; $codeAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //$codeAlphabet.= "abcdefghijklmnopqrstuvwxyz"; $codeAlphabet.= "0123456789"; $max = strlen($codeAlphabet); // edited for ($i=0; $i < $length; $i++) { $token .= $codeAlphabet[random_int(0, $max-1)]; } return $token; }