You are here

function commons_events_node_form_submit in Drupal Commons 7.3

Custom node form submit handler.

1 string reference to 'commons_events_node_form_submit'
commons_events_form_node_form_alter in modules/commons/commons_events/commons_events.module
Implements hook_form_BASE_FORM_ID_alter().

File

modules/commons/commons_events/commons_events.module, line 359

Code

function commons_events_node_form_submit($form, $form_state) {
  $node = $form_state['node'];
  $language = isset($form_state['language']) ? $form_state['language'] : LANGUAGE_NONE;
  if (isset($node->nid)) {
    $settings = registration_entity_settings('node', $node->nid);
    $settings['status'] = (int) $form_state['values']['field_status'];
    if ($form_state['values']['field_registration_type'][$language]['0']['value'] == 'external') {
      $settings['status'] = 0;
    }
    if (!empty($form_state['values']['field_number_of_attendees'][$language]['0']['value']) && is_numeric($form_state['values']['field_number_of_attendees'][$language]['0']['value'])) {
      $settings['capacity'] = (int) $form_state['values']['field_number_of_attendees'][$language]['0']['value'];
    }
    $settings['settings'] = serialize($settings['settings']);
    registration_update_entity_settings('node', $node->nid, $settings);

    // Automatically register the node creator for the event.
    $registration_type = registration_get_entity_registration_type('node', $node);
    $values = array(
      'entity_type' => 'node',
      'entity_id' => $node->nid,
      'type' => $registration_type,
    );
    $registration = entity_create('registration', $values);
    if (!isset($node->uid)) {
      global $user;
      $uid = $user->uid;
    }
    else {
      $uid = $node->uid;
    }
    if ($settings['status'] == 1 && !registration_is_registered($registration, NULL, $uid)) {
      $registration->user_uid = $uid;
      $registration->author_uid = $uid;
      $registration->state = NULL;
      $registration->count = 1;
      registration_save($registration);
    }
  }
}