!link

", array ('!link' => l('Add New Event', 'admin/config/booking/events/create'))); $header = array ( 'booking_eventid' => t('Event ID'), 'booking_eventname' => t('Event Name'), 'booking_event_active' => t('Event currently active'), 'booking_event_start' => t('Event Start Date'), 'booking_event_end' => t('Event End Date'), 'booking_register_open' => t('Registrations open'), 'booking_register_close' => t('Registrations close'), 'booking_earlybird_close' => t('Early discounted rate closes'), 'booking_edit' => t('Edit event'), ); $result = db_query("SELECT * from {booking_event}"); foreach($result as $data) { $options[$data->eid] = array ( 'booking_eventid' => $data->eid, 'booking_eventname' => $data->booking_eventname, 'booking_event_active' => $data->booking_event_active == 1 ? 'Yes' : 'No', 'booking_event_start' => date("Y-m-d H:i", $data->booking_event_start), 'booking_event_end' => date("Y-m-d H:i", $data->booking_event_end), 'booking_register_open' => date("Y-m-d H:i", $data->booking_register_open), 'booking_register_close' => date("Y-m-d H:i", $data->booking_register_close), 'booking_earlybird_close' => date("Y-m-d H:i", $data->booking_earlybird_close), 'booking_edit' => l('Edit', t('admin/config/booking/events/!eid/edit', array('!eid' => $data->eid))), ); } $form['table'] = array ( '#type' => 'tableselect', '#header' => $header, '#options' => $options, '#multiple' => false, ); $form['submit_active'] = array ( '#type' => 'submit', '#value' => t('Set Active'), ); //watchdog('booking', 'Setting button form: @info', array ('@info' => var_export($form, TRUE))); return array ( /* 'first_para' => array ( '#type' => 'markup', '#markup' => $prefix, //'#theme' => 'system_settings_form', ), */ 'form' => $form, ); } function booking_event_admin_submit($form, &$form_state) { $selected_event = $form_state['values']['table']; //$values['booking_price_active']; //watchdog('booking', 'Formstate when setting event active: @info', array ('@info' => var_export($form_state['values'], TRUE))); //watchdog('booking', 'Checkboxes when setting event active: @info', array ('@info' => var_export($selected_event, TRUE))); //First set all other event IDs to not active db_update('booking_event') ->fields(array ( 'booking_event_active' => 0, )) ->condition('eid', $selected_event, '!=') ->execute(); //then set our target event id to be active db_update('booking_event') ->fields(array ( 'booking_event_active' => 1, )) ->condition('eid', $selected_event) ->execute(); //update menus variable_set('menu_rebuild_needed', TRUE); menu_router_build(TRUE); menu_cache_clear_all(); menu_rebuild(); } function booking_event_form($node, &$form_state, $create, $editid = 0) { $form = array (); $prefix = "

Add a new event to the bookings module.

"; if ($create == true) { $data = $node; } else { //verify that $editid is a number if (! preg_match('/^[0-9]+$/', $editid)) { drupal_set_message("Error: Invalid event ID supplied. Unable to update event information.", 'error', FALSE); drupal_goto('admin/config/booking/events'); return ""; } $data = db_query("SELECT * FROM {booking_event} WHERE eid = :eventid", array(':eventid' => $editid)) ->fetchObject(); $prefix = t("

Update the !event event details.

", array('!event' => $data->booking_eventname)); //add this to the form in a hidden field so we can update the right event $form['booking_eid'] = array ( '#type' => 'hidden', '#value' => $editid, ); } $form['booking_eventname'] = array ( '#type' => 'textfield', '#title' => t('The name of this event'), '#size' => 60, '#maxlength' => 150, '#required' => TRUE, '#default_value' => !empty($data->booking_eventname) ? $data->booking_eventname : '', ); $form['booking_event_active'] = array( '#type' => 'checkbox', '#title' => t('Make this event active'), '#default_value' => 1 ); $form['booking_event_start'] = array( '#type' => 'date_select', '#title' => t('Date that this event will start'), '#default_value' => empty($data->booking_event_start) ? date("Y-m-d H:i:s") : date("Y-m-d H:i:s", $data->booking_event_start), '#date_format' => 'd/m/Y H:i', '#date_label_position' => 'within', '#date_year_range' => '0:+5' ); $form['booking_event_end'] = array( '#type' => 'date_select', '#title' => t('Date that this event will conclude'), '#default_value' => empty($data->booking_event_end) ? date("Y-m-d H:i:s") : date("Y-m-d H:i:s", $data->booking_event_end), '#date_format' => 'd/m/Y H:i', '#date_label_position' => 'within', '#date_year_range' => '0:+5' ); $form['booking_register_open'] = array( '#type' => 'date_select', '#title' => t('Date that registrations will open for this event'), '#default_value' => empty($data->booking_register_open) ? date("Y-m-d H:i:s") : date("Y-m-d H:i:s", $data->booking_register_open), '#date_format' => 'd/m/Y H:i', '#date_label_position' => 'within', '#date_year_range' => '0:+5' ); $form['booking_earlybird_close'] = array( '#type' => 'date_select', '#title' => t('Date that the early discounted rate will close for this event (if not applicable, set to registration close date)'), '#default_value' => empty($data->booking_earlybird_close) ? date("Y-m-d H:i:s") : date("Y-m-d H:i:s", $data->booking_earlybird_close), '#date_format' => 'd/m/Y H:i', '#date_label_position' => 'within', '#date_year_range' => '0:+5' ); $form['booking_register_close'] = array( '#type' => 'date_select', '#title' => t('Date that registrations will close for this event'), '#default_value' => empty($data->booking_register_close) ? date("Y-m-d H:i:s") : date("Y-m-d H:i:s", $data->booking_register_close), '#date_format' => 'd/m/Y H:i', '#date_label_position' => 'within', '#date_year_range' => '0:+5' ); if ($create == true) { $form['submit'] = array ( '#type' => 'submit', '#value' => t('Create'), ); } else { $form['Update'] = array ( '#type' => 'submit', '#value' => t('Update'), ); $form['Delete'] = array ( '#type' => 'submit', '#value' => t('Delete'), ); } return array ( 'first_para' => array ( '#type' => 'markup', '#markup' => $prefix, ), 'form' => $form, ); } function booking_event_form_submit($form, &$form_state) { global $event; $values = $form_state['input']; //date_default_timezone_set(date_default_timezone(FALSE)); //$tz = new DateTimeZone(date_default_timezone(FALSE)); //watchdog('booking', 'Checkboxes when setting buttons: @info', array ('@info' => var_export($checkboxes, TRUE))); //check if this event is active. If it is, all other events should be made inactive if ($values['booking_event_active'] == 1) { db_update('booking_event') ->fields(array ( 'booking_event_active' => 0, )) ->execute(); } if ($form_state['values']['op'] == 'Create') { db_insert('booking_event') ->fields(array( 'booking_eventname' => $values['booking_eventname'], 'booking_event_active' => $values['booking_event_active'] == 1 ? 1 : 0, 'booking_register_open' => _datetime_array_to_ts($values['booking_register_open']), 'booking_register_close' => _datetime_array_to_ts($values['booking_register_close']), 'booking_earlybird_close' => _datetime_array_to_ts($values['booking_earlybird_close']), 'booking_event_start' => _datetime_array_to_ts($values['booking_event_start']), 'booking_event_end' => _datetime_array_to_ts($values['booking_event_end']), )) ->execute(); } elseif ($form_state['values']['op'] == 'Delete') { //verify that booking_eid is a number if (! preg_match('/^[0-9]+$/', $values['booking_eid'])) { drupal_set_message("Error: Invalid event ID supplied. Unable to delete event entry.", 'error', FALSE); return ""; } $num_deleted = db_delete('booking_event') ->condition('eid', $values['booking_eid']) ->execute(); $message = t("Successfully deleted !num row(s), corresponding to event '!event'", array('!num' => $num_deleted, '!event' => $values['booking_eventname'])); drupal_set_message($message, $type = 'status'); } else { //verify that booking_eid is a number if (! preg_match('/^[0-9]+$/', $values['booking_eid'])) { drupal_set_message("Error: Invalid event ID supplied. Unable to update event entry.", 'error', FALSE); return ""; } //update the event db_update('booking_event') ->fields(array ( 'booking_eventname' => $values['booking_eventname'], 'booking_event_active' => $values['booking_event_active'] == 1 ? 1 : 0, 'booking_register_open' => _datetime_array_to_ts($values['booking_register_open']), 'booking_register_close' => _datetime_array_to_ts($values['booking_register_close']), 'booking_earlybird_close' => _datetime_array_to_ts($values['booking_earlybird_close']), 'booking_event_start' => _datetime_array_to_ts($values['booking_event_start']), 'booking_event_end' => _datetime_array_to_ts($values['booking_event_end']), )) ->condition('eid', $values['booking_eid']) ->execute(); } $form_state['redirect'] = array('admin/config/booking/events'); }